atrium_api/
client.rs

1// @generated - This file is generated by atrium-codegen. DO NOT EDIT.
2//!Structs for ATP client, implements all HTTP APIs of XRPC.
3///Client struct for the ATP service.
4pub struct AtpServiceClient<T>
5where
6    T: atrium_xrpc::XrpcClient + Send + Sync,
7{
8    pub service: Service<T>,
9}
10impl<T> AtpServiceClient<T>
11where
12    T: atrium_xrpc::XrpcClient + Send + Sync,
13{
14    pub fn new(xrpc: T) -> Self {
15        Self { service: Service::new(std::sync::Arc::new(xrpc)) }
16    }
17}
18pub struct Service<T>
19where
20    T: atrium_xrpc::XrpcClient + Send + Sync,
21{
22    pub app: app::Service<T>,
23    pub chat: chat::Service<T>,
24    pub com: com::Service<T>,
25    pub tools: tools::Service<T>,
26    pub(crate) _phantom: core::marker::PhantomData<T>,
27}
28pub mod app {
29    pub struct Service<T>
30    where
31        T: atrium_xrpc::XrpcClient + Send + Sync,
32    {
33        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-appbsky")))]
34        #[cfg(feature = "namespace-appbsky")]
35        pub bsky: bsky::Service<T>,
36        pub(crate) _phantom: core::marker::PhantomData<T>,
37    }
38    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-appbsky")))]
39    #[cfg(feature = "namespace-appbsky")]
40    pub mod bsky {
41        pub struct Service<T>
42        where
43            T: atrium_xrpc::XrpcClient + Send + Sync,
44        {
45            pub actor: actor::Service<T>,
46            pub bookmark: bookmark::Service<T>,
47            pub feed: feed::Service<T>,
48            pub graph: graph::Service<T>,
49            pub labeler: labeler::Service<T>,
50            pub notification: notification::Service<T>,
51            pub unspecced: unspecced::Service<T>,
52            pub video: video::Service<T>,
53            pub(crate) _phantom: core::marker::PhantomData<T>,
54        }
55        pub mod actor {
56            pub struct Service<T>
57            where
58                T: atrium_xrpc::XrpcClient + Send + Sync,
59            {
60                pub(crate) xrpc: std::sync::Arc<T>,
61                pub(crate) _phantom: core::marker::PhantomData<T>,
62            }
63        }
64        pub mod bookmark {
65            pub struct Service<T>
66            where
67                T: atrium_xrpc::XrpcClient + Send + Sync,
68            {
69                pub(crate) xrpc: std::sync::Arc<T>,
70                pub(crate) _phantom: core::marker::PhantomData<T>,
71            }
72        }
73        pub mod feed {
74            pub struct Service<T>
75            where
76                T: atrium_xrpc::XrpcClient + Send + Sync,
77            {
78                pub(crate) xrpc: std::sync::Arc<T>,
79                pub(crate) _phantom: core::marker::PhantomData<T>,
80            }
81        }
82        pub mod graph {
83            pub struct Service<T>
84            where
85                T: atrium_xrpc::XrpcClient + Send + Sync,
86            {
87                pub(crate) xrpc: std::sync::Arc<T>,
88                pub(crate) _phantom: core::marker::PhantomData<T>,
89            }
90        }
91        pub mod labeler {
92            pub struct Service<T>
93            where
94                T: atrium_xrpc::XrpcClient + Send + Sync,
95            {
96                pub(crate) xrpc: std::sync::Arc<T>,
97                pub(crate) _phantom: core::marker::PhantomData<T>,
98            }
99        }
100        pub mod notification {
101            pub struct Service<T>
102            where
103                T: atrium_xrpc::XrpcClient + Send + Sync,
104            {
105                pub(crate) xrpc: std::sync::Arc<T>,
106                pub(crate) _phantom: core::marker::PhantomData<T>,
107            }
108        }
109        pub mod unspecced {
110            pub struct Service<T>
111            where
112                T: atrium_xrpc::XrpcClient + Send + Sync,
113            {
114                pub(crate) xrpc: std::sync::Arc<T>,
115                pub(crate) _phantom: core::marker::PhantomData<T>,
116            }
117        }
118        pub mod video {
119            pub struct Service<T>
120            where
121                T: atrium_xrpc::XrpcClient + Send + Sync,
122            {
123                pub(crate) xrpc: std::sync::Arc<T>,
124                pub(crate) _phantom: core::marker::PhantomData<T>,
125            }
126        }
127    }
128}
129pub mod chat {
130    pub struct Service<T>
131    where
132        T: atrium_xrpc::XrpcClient + Send + Sync,
133    {
134        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-chatbsky")))]
135        #[cfg(feature = "namespace-chatbsky")]
136        pub bsky: bsky::Service<T>,
137        pub(crate) _phantom: core::marker::PhantomData<T>,
138    }
139    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-chatbsky")))]
140    #[cfg(feature = "namespace-chatbsky")]
141    pub mod bsky {
142        pub struct Service<T>
143        where
144            T: atrium_xrpc::XrpcClient + Send + Sync,
145        {
146            pub actor: actor::Service<T>,
147            pub convo: convo::Service<T>,
148            pub moderation: moderation::Service<T>,
149            pub(crate) _phantom: core::marker::PhantomData<T>,
150        }
151        pub mod actor {
152            pub struct Service<T>
153            where
154                T: atrium_xrpc::XrpcClient + Send + Sync,
155            {
156                pub(crate) xrpc: std::sync::Arc<T>,
157                pub(crate) _phantom: core::marker::PhantomData<T>,
158            }
159        }
160        pub mod convo {
161            pub struct Service<T>
162            where
163                T: atrium_xrpc::XrpcClient + Send + Sync,
164            {
165                pub(crate) xrpc: std::sync::Arc<T>,
166                pub(crate) _phantom: core::marker::PhantomData<T>,
167            }
168        }
169        pub mod moderation {
170            pub struct Service<T>
171            where
172                T: atrium_xrpc::XrpcClient + Send + Sync,
173            {
174                pub(crate) xrpc: std::sync::Arc<T>,
175                pub(crate) _phantom: core::marker::PhantomData<T>,
176            }
177        }
178    }
179}
180pub mod com {
181    pub struct Service<T>
182    where
183        T: atrium_xrpc::XrpcClient + Send + Sync,
184    {
185        pub atproto: atproto::Service<T>,
186        pub(crate) _phantom: core::marker::PhantomData<T>,
187    }
188    pub mod atproto {
189        pub struct Service<T>
190        where
191            T: atrium_xrpc::XrpcClient + Send + Sync,
192        {
193            pub admin: admin::Service<T>,
194            pub identity: identity::Service<T>,
195            pub label: label::Service<T>,
196            pub moderation: moderation::Service<T>,
197            pub repo: repo::Service<T>,
198            pub server: server::Service<T>,
199            pub sync: sync::Service<T>,
200            pub temp: temp::Service<T>,
201            pub(crate) _phantom: core::marker::PhantomData<T>,
202        }
203        pub mod admin {
204            pub struct Service<T>
205            where
206                T: atrium_xrpc::XrpcClient + Send + Sync,
207            {
208                pub(crate) xrpc: std::sync::Arc<T>,
209                pub(crate) _phantom: core::marker::PhantomData<T>,
210            }
211        }
212        pub mod identity {
213            pub struct Service<T>
214            where
215                T: atrium_xrpc::XrpcClient + Send + Sync,
216            {
217                pub(crate) xrpc: std::sync::Arc<T>,
218                pub(crate) _phantom: core::marker::PhantomData<T>,
219            }
220        }
221        pub mod label {
222            pub struct Service<T>
223            where
224                T: atrium_xrpc::XrpcClient + Send + Sync,
225            {
226                pub(crate) xrpc: std::sync::Arc<T>,
227                pub(crate) _phantom: core::marker::PhantomData<T>,
228            }
229        }
230        pub mod moderation {
231            pub struct Service<T>
232            where
233                T: atrium_xrpc::XrpcClient + Send + Sync,
234            {
235                pub(crate) xrpc: std::sync::Arc<T>,
236                pub(crate) _phantom: core::marker::PhantomData<T>,
237            }
238        }
239        pub mod repo {
240            pub struct Service<T>
241            where
242                T: atrium_xrpc::XrpcClient + Send + Sync,
243            {
244                pub(crate) xrpc: std::sync::Arc<T>,
245                pub(crate) _phantom: core::marker::PhantomData<T>,
246            }
247        }
248        pub mod server {
249            pub struct Service<T>
250            where
251                T: atrium_xrpc::XrpcClient + Send + Sync,
252            {
253                pub(crate) xrpc: std::sync::Arc<T>,
254                pub(crate) _phantom: core::marker::PhantomData<T>,
255            }
256        }
257        pub mod sync {
258            pub struct Service<T>
259            where
260                T: atrium_xrpc::XrpcClient + Send + Sync,
261            {
262                pub(crate) xrpc: std::sync::Arc<T>,
263                pub(crate) _phantom: core::marker::PhantomData<T>,
264            }
265        }
266        pub mod temp {
267            pub struct Service<T>
268            where
269                T: atrium_xrpc::XrpcClient + Send + Sync,
270            {
271                pub(crate) xrpc: std::sync::Arc<T>,
272                pub(crate) _phantom: core::marker::PhantomData<T>,
273            }
274        }
275    }
276}
277pub mod tools {
278    pub struct Service<T>
279    where
280        T: atrium_xrpc::XrpcClient + Send + Sync,
281    {
282        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-toolsozone")))]
283        #[cfg(feature = "namespace-toolsozone")]
284        pub ozone: ozone::Service<T>,
285        pub(crate) _phantom: core::marker::PhantomData<T>,
286    }
287    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-toolsozone")))]
288    #[cfg(feature = "namespace-toolsozone")]
289    pub mod ozone {
290        pub struct Service<T>
291        where
292            T: atrium_xrpc::XrpcClient + Send + Sync,
293        {
294            pub communication: communication::Service<T>,
295            pub hosting: hosting::Service<T>,
296            pub moderation: moderation::Service<T>,
297            pub safelink: safelink::Service<T>,
298            pub server: server::Service<T>,
299            pub set: set::Service<T>,
300            pub setting: setting::Service<T>,
301            pub signature: signature::Service<T>,
302            pub team: team::Service<T>,
303            pub verification: verification::Service<T>,
304            pub(crate) _phantom: core::marker::PhantomData<T>,
305        }
306        pub mod communication {
307            pub struct Service<T>
308            where
309                T: atrium_xrpc::XrpcClient + Send + Sync,
310            {
311                pub(crate) xrpc: std::sync::Arc<T>,
312                pub(crate) _phantom: core::marker::PhantomData<T>,
313            }
314        }
315        pub mod hosting {
316            pub struct Service<T>
317            where
318                T: atrium_xrpc::XrpcClient + Send + Sync,
319            {
320                pub(crate) xrpc: std::sync::Arc<T>,
321                pub(crate) _phantom: core::marker::PhantomData<T>,
322            }
323        }
324        pub mod moderation {
325            pub struct Service<T>
326            where
327                T: atrium_xrpc::XrpcClient + Send + Sync,
328            {
329                pub(crate) xrpc: std::sync::Arc<T>,
330                pub(crate) _phantom: core::marker::PhantomData<T>,
331            }
332        }
333        pub mod safelink {
334            pub struct Service<T>
335            where
336                T: atrium_xrpc::XrpcClient + Send + Sync,
337            {
338                pub(crate) xrpc: std::sync::Arc<T>,
339                pub(crate) _phantom: core::marker::PhantomData<T>,
340            }
341        }
342        pub mod server {
343            pub struct Service<T>
344            where
345                T: atrium_xrpc::XrpcClient + Send + Sync,
346            {
347                pub(crate) xrpc: std::sync::Arc<T>,
348                pub(crate) _phantom: core::marker::PhantomData<T>,
349            }
350        }
351        pub mod set {
352            pub struct Service<T>
353            where
354                T: atrium_xrpc::XrpcClient + Send + Sync,
355            {
356                pub(crate) xrpc: std::sync::Arc<T>,
357                pub(crate) _phantom: core::marker::PhantomData<T>,
358            }
359        }
360        pub mod setting {
361            pub struct Service<T>
362            where
363                T: atrium_xrpc::XrpcClient + Send + Sync,
364            {
365                pub(crate) xrpc: std::sync::Arc<T>,
366                pub(crate) _phantom: core::marker::PhantomData<T>,
367            }
368        }
369        pub mod signature {
370            pub struct Service<T>
371            where
372                T: atrium_xrpc::XrpcClient + Send + Sync,
373            {
374                pub(crate) xrpc: std::sync::Arc<T>,
375                pub(crate) _phantom: core::marker::PhantomData<T>,
376            }
377        }
378        pub mod team {
379            pub struct Service<T>
380            where
381                T: atrium_xrpc::XrpcClient + Send + Sync,
382            {
383                pub(crate) xrpc: std::sync::Arc<T>,
384                pub(crate) _phantom: core::marker::PhantomData<T>,
385            }
386        }
387        pub mod verification {
388            pub struct Service<T>
389            where
390                T: atrium_xrpc::XrpcClient + Send + Sync,
391            {
392                pub(crate) xrpc: std::sync::Arc<T>,
393                pub(crate) _phantom: core::marker::PhantomData<T>,
394            }
395        }
396    }
397}
398impl<T> self::Service<T>
399where
400    T: atrium_xrpc::XrpcClient + Send + Sync,
401{
402    #[allow(unused_variables)]
403    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
404        Self {
405            app: app::Service::new(std::sync::Arc::clone(&xrpc)),
406            chat: chat::Service::new(std::sync::Arc::clone(&xrpc)),
407            com: com::Service::new(std::sync::Arc::clone(&xrpc)),
408            tools: tools::Service::new(std::sync::Arc::clone(&xrpc)),
409            _phantom: core::marker::PhantomData,
410        }
411    }
412}
413impl<T> app::Service<T>
414where
415    T: atrium_xrpc::XrpcClient + Send + Sync,
416{
417    #[allow(unused_variables)]
418    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
419        Self {
420            #[cfg(feature = "namespace-appbsky")]
421            bsky: app::bsky::Service::new(std::sync::Arc::clone(&xrpc)),
422            _phantom: core::marker::PhantomData,
423        }
424    }
425}
426#[cfg(feature = "namespace-appbsky")]
427impl<T> app::bsky::Service<T>
428where
429    T: atrium_xrpc::XrpcClient + Send + Sync,
430{
431    #[allow(unused_variables)]
432    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
433        Self {
434            actor: app::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)),
435            bookmark: app::bsky::bookmark::Service::new(std::sync::Arc::clone(&xrpc)),
436            feed: app::bsky::feed::Service::new(std::sync::Arc::clone(&xrpc)),
437            graph: app::bsky::graph::Service::new(std::sync::Arc::clone(&xrpc)),
438            labeler: app::bsky::labeler::Service::new(std::sync::Arc::clone(&xrpc)),
439            notification: app::bsky::notification::Service::new(std::sync::Arc::clone(&xrpc)),
440            unspecced: app::bsky::unspecced::Service::new(std::sync::Arc::clone(&xrpc)),
441            video: app::bsky::video::Service::new(std::sync::Arc::clone(&xrpc)),
442            _phantom: core::marker::PhantomData,
443        }
444    }
445}
446#[cfg(feature = "namespace-appbsky")]
447impl<T> app::bsky::actor::Service<T>
448where
449    T: atrium_xrpc::XrpcClient + Send + Sync,
450{
451    #[allow(unused_variables)]
452    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
453        Self { xrpc, _phantom: core::marker::PhantomData }
454    }
455    ///Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.
456    pub async fn get_preferences(
457        &self,
458        params: crate::app::bsky::actor::get_preferences::Parameters,
459    ) -> atrium_xrpc::Result<
460        crate::app::bsky::actor::get_preferences::Output,
461        crate::app::bsky::actor::get_preferences::Error,
462    > {
463        let response = self
464            .xrpc
465            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
466                method: http::Method::GET,
467                nsid: crate::app::bsky::actor::get_preferences::NSID.into(),
468                parameters: Some(params),
469                input: None,
470                encoding: None,
471            })
472            .await?;
473        match response {
474            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
475            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
476        }
477    }
478    ///Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.
479    pub async fn get_profile(
480        &self,
481        params: crate::app::bsky::actor::get_profile::Parameters,
482    ) -> atrium_xrpc::Result<
483        crate::app::bsky::actor::get_profile::Output,
484        crate::app::bsky::actor::get_profile::Error,
485    > {
486        let response = self
487            .xrpc
488            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
489                method: http::Method::GET,
490                nsid: crate::app::bsky::actor::get_profile::NSID.into(),
491                parameters: Some(params),
492                input: None,
493                encoding: None,
494            })
495            .await?;
496        match response {
497            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
498            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
499        }
500    }
501    ///Get detailed profile views of multiple actors.
502    pub async fn get_profiles(
503        &self,
504        params: crate::app::bsky::actor::get_profiles::Parameters,
505    ) -> atrium_xrpc::Result<
506        crate::app::bsky::actor::get_profiles::Output,
507        crate::app::bsky::actor::get_profiles::Error,
508    > {
509        let response = self
510            .xrpc
511            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
512                method: http::Method::GET,
513                nsid: crate::app::bsky::actor::get_profiles::NSID.into(),
514                parameters: Some(params),
515                input: None,
516                encoding: None,
517            })
518            .await?;
519        match response {
520            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
521            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
522        }
523    }
524    ///Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.
525    pub async fn get_suggestions(
526        &self,
527        params: crate::app::bsky::actor::get_suggestions::Parameters,
528    ) -> atrium_xrpc::Result<
529        crate::app::bsky::actor::get_suggestions::Output,
530        crate::app::bsky::actor::get_suggestions::Error,
531    > {
532        let response = self
533            .xrpc
534            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
535                method: http::Method::GET,
536                nsid: crate::app::bsky::actor::get_suggestions::NSID.into(),
537                parameters: Some(params),
538                input: None,
539                encoding: None,
540            })
541            .await?;
542        match response {
543            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
544            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
545        }
546    }
547    ///Set the private preferences attached to the account.
548    pub async fn put_preferences(
549        &self,
550        input: crate::app::bsky::actor::put_preferences::Input,
551    ) -> atrium_xrpc::Result<(), crate::app::bsky::actor::put_preferences::Error> {
552        let response = self
553            .xrpc
554            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
555                method: http::Method::POST,
556                nsid: crate::app::bsky::actor::put_preferences::NSID.into(),
557                parameters: None,
558                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
559                encoding: Some(String::from("application/json")),
560            })
561            .await?;
562        match response {
563            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
564            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
565        }
566    }
567    ///Find actors (profiles) matching search criteria. Does not require auth.
568    pub async fn search_actors(
569        &self,
570        params: crate::app::bsky::actor::search_actors::Parameters,
571    ) -> atrium_xrpc::Result<
572        crate::app::bsky::actor::search_actors::Output,
573        crate::app::bsky::actor::search_actors::Error,
574    > {
575        let response = self
576            .xrpc
577            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
578                method: http::Method::GET,
579                nsid: crate::app::bsky::actor::search_actors::NSID.into(),
580                parameters: Some(params),
581                input: None,
582                encoding: None,
583            })
584            .await?;
585        match response {
586            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
587            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
588        }
589    }
590    ///Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.
591    pub async fn search_actors_typeahead(
592        &self,
593        params: crate::app::bsky::actor::search_actors_typeahead::Parameters,
594    ) -> atrium_xrpc::Result<
595        crate::app::bsky::actor::search_actors_typeahead::Output,
596        crate::app::bsky::actor::search_actors_typeahead::Error,
597    > {
598        let response = self
599            .xrpc
600            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
601                method: http::Method::GET,
602                nsid: crate::app::bsky::actor::search_actors_typeahead::NSID.into(),
603                parameters: Some(params),
604                input: None,
605                encoding: None,
606            })
607            .await?;
608        match response {
609            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
610            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
611        }
612    }
613}
614#[cfg(feature = "namespace-appbsky")]
615impl<T> app::bsky::bookmark::Service<T>
616where
617    T: atrium_xrpc::XrpcClient + Send + Sync,
618{
619    #[allow(unused_variables)]
620    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
621        Self { xrpc, _phantom: core::marker::PhantomData }
622    }
623    ///Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
624    pub async fn create_bookmark(
625        &self,
626        input: crate::app::bsky::bookmark::create_bookmark::Input,
627    ) -> atrium_xrpc::Result<(), crate::app::bsky::bookmark::create_bookmark::Error> {
628        let response = self
629            .xrpc
630            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
631                method: http::Method::POST,
632                nsid: crate::app::bsky::bookmark::create_bookmark::NSID.into(),
633                parameters: None,
634                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
635                encoding: Some(String::from("application/json")),
636            })
637            .await?;
638        match response {
639            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
640            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
641        }
642    }
643    ///Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
644    pub async fn delete_bookmark(
645        &self,
646        input: crate::app::bsky::bookmark::delete_bookmark::Input,
647    ) -> atrium_xrpc::Result<(), crate::app::bsky::bookmark::delete_bookmark::Error> {
648        let response = self
649            .xrpc
650            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
651                method: http::Method::POST,
652                nsid: crate::app::bsky::bookmark::delete_bookmark::NSID.into(),
653                parameters: None,
654                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
655                encoding: Some(String::from("application/json")),
656            })
657            .await?;
658        match response {
659            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
660            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
661        }
662    }
663    ///Gets views of records bookmarked by the authenticated user. Requires authentication.
664    pub async fn get_bookmarks(
665        &self,
666        params: crate::app::bsky::bookmark::get_bookmarks::Parameters,
667    ) -> atrium_xrpc::Result<
668        crate::app::bsky::bookmark::get_bookmarks::Output,
669        crate::app::bsky::bookmark::get_bookmarks::Error,
670    > {
671        let response = self
672            .xrpc
673            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
674                method: http::Method::GET,
675                nsid: crate::app::bsky::bookmark::get_bookmarks::NSID.into(),
676                parameters: Some(params),
677                input: None,
678                encoding: None,
679            })
680            .await?;
681        match response {
682            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
683            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
684        }
685    }
686}
687#[cfg(feature = "namespace-appbsky")]
688impl<T> app::bsky::feed::Service<T>
689where
690    T: atrium_xrpc::XrpcClient + Send + Sync,
691{
692    #[allow(unused_variables)]
693    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
694        Self { xrpc, _phantom: core::marker::PhantomData }
695    }
696    ///Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).
697    pub async fn describe_feed_generator(
698        &self,
699    ) -> atrium_xrpc::Result<
700        crate::app::bsky::feed::describe_feed_generator::Output,
701        crate::app::bsky::feed::describe_feed_generator::Error,
702    > {
703        let response = self
704            .xrpc
705            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
706                method: http::Method::GET,
707                nsid: crate::app::bsky::feed::describe_feed_generator::NSID.into(),
708                parameters: None,
709                input: None,
710                encoding: None,
711            })
712            .await?;
713        match response {
714            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
715            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
716        }
717    }
718    ///Get a list of feeds (feed generator records) created by the actor (in the actor's repo).
719    pub async fn get_actor_feeds(
720        &self,
721        params: crate::app::bsky::feed::get_actor_feeds::Parameters,
722    ) -> atrium_xrpc::Result<
723        crate::app::bsky::feed::get_actor_feeds::Output,
724        crate::app::bsky::feed::get_actor_feeds::Error,
725    > {
726        let response = self
727            .xrpc
728            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
729                method: http::Method::GET,
730                nsid: crate::app::bsky::feed::get_actor_feeds::NSID.into(),
731                parameters: Some(params),
732                input: None,
733                encoding: None,
734            })
735            .await?;
736        match response {
737            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
738            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
739        }
740    }
741    ///Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.
742    pub async fn get_actor_likes(
743        &self,
744        params: crate::app::bsky::feed::get_actor_likes::Parameters,
745    ) -> atrium_xrpc::Result<
746        crate::app::bsky::feed::get_actor_likes::Output,
747        crate::app::bsky::feed::get_actor_likes::Error,
748    > {
749        let response = self
750            .xrpc
751            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
752                method: http::Method::GET,
753                nsid: crate::app::bsky::feed::get_actor_likes::NSID.into(),
754                parameters: Some(params),
755                input: None,
756                encoding: None,
757            })
758            .await?;
759        match response {
760            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
761            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
762        }
763    }
764    ///Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.
765    pub async fn get_author_feed(
766        &self,
767        params: crate::app::bsky::feed::get_author_feed::Parameters,
768    ) -> atrium_xrpc::Result<
769        crate::app::bsky::feed::get_author_feed::Output,
770        crate::app::bsky::feed::get_author_feed::Error,
771    > {
772        let response = self
773            .xrpc
774            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
775                method: http::Method::GET,
776                nsid: crate::app::bsky::feed::get_author_feed::NSID.into(),
777                parameters: Some(params),
778                input: None,
779                encoding: None,
780            })
781            .await?;
782        match response {
783            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
784            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
785        }
786    }
787    ///Get a hydrated feed from an actor's selected feed generator. Implemented by App View.
788    pub async fn get_feed(
789        &self,
790        params: crate::app::bsky::feed::get_feed::Parameters,
791    ) -> atrium_xrpc::Result<
792        crate::app::bsky::feed::get_feed::Output,
793        crate::app::bsky::feed::get_feed::Error,
794    > {
795        let response = self
796            .xrpc
797            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
798                method: http::Method::GET,
799                nsid: crate::app::bsky::feed::get_feed::NSID.into(),
800                parameters: Some(params),
801                input: None,
802                encoding: None,
803            })
804            .await?;
805        match response {
806            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
807            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
808        }
809    }
810    ///Get information about a feed generator. Implemented by AppView.
811    pub async fn get_feed_generator(
812        &self,
813        params: crate::app::bsky::feed::get_feed_generator::Parameters,
814    ) -> atrium_xrpc::Result<
815        crate::app::bsky::feed::get_feed_generator::Output,
816        crate::app::bsky::feed::get_feed_generator::Error,
817    > {
818        let response = self
819            .xrpc
820            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
821                method: http::Method::GET,
822                nsid: crate::app::bsky::feed::get_feed_generator::NSID.into(),
823                parameters: Some(params),
824                input: None,
825                encoding: None,
826            })
827            .await?;
828        match response {
829            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
830            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
831        }
832    }
833    ///Get information about a list of feed generators.
834    pub async fn get_feed_generators(
835        &self,
836        params: crate::app::bsky::feed::get_feed_generators::Parameters,
837    ) -> atrium_xrpc::Result<
838        crate::app::bsky::feed::get_feed_generators::Output,
839        crate::app::bsky::feed::get_feed_generators::Error,
840    > {
841        let response = self
842            .xrpc
843            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
844                method: http::Method::GET,
845                nsid: crate::app::bsky::feed::get_feed_generators::NSID.into(),
846                parameters: Some(params),
847                input: None,
848                encoding: None,
849            })
850            .await?;
851        match response {
852            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
853            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
854        }
855    }
856    ///Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service.
857    pub async fn get_feed_skeleton(
858        &self,
859        params: crate::app::bsky::feed::get_feed_skeleton::Parameters,
860    ) -> atrium_xrpc::Result<
861        crate::app::bsky::feed::get_feed_skeleton::Output,
862        crate::app::bsky::feed::get_feed_skeleton::Error,
863    > {
864        let response = self
865            .xrpc
866            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
867                method: http::Method::GET,
868                nsid: crate::app::bsky::feed::get_feed_skeleton::NSID.into(),
869                parameters: Some(params),
870                input: None,
871                encoding: None,
872            })
873            .await?;
874        match response {
875            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
876            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
877        }
878    }
879    ///Get like records which reference a subject (by AT-URI and CID).
880    pub async fn get_likes(
881        &self,
882        params: crate::app::bsky::feed::get_likes::Parameters,
883    ) -> atrium_xrpc::Result<
884        crate::app::bsky::feed::get_likes::Output,
885        crate::app::bsky::feed::get_likes::Error,
886    > {
887        let response = self
888            .xrpc
889            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
890                method: http::Method::GET,
891                nsid: crate::app::bsky::feed::get_likes::NSID.into(),
892                parameters: Some(params),
893                input: None,
894                encoding: None,
895            })
896            .await?;
897        match response {
898            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
899            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
900        }
901    }
902    ///Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.
903    pub async fn get_list_feed(
904        &self,
905        params: crate::app::bsky::feed::get_list_feed::Parameters,
906    ) -> atrium_xrpc::Result<
907        crate::app::bsky::feed::get_list_feed::Output,
908        crate::app::bsky::feed::get_list_feed::Error,
909    > {
910        let response = self
911            .xrpc
912            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
913                method: http::Method::GET,
914                nsid: crate::app::bsky::feed::get_list_feed::NSID.into(),
915                parameters: Some(params),
916                input: None,
917                encoding: None,
918            })
919            .await?;
920        match response {
921            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
922            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
923        }
924    }
925    ///Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.
926    pub async fn get_post_thread(
927        &self,
928        params: crate::app::bsky::feed::get_post_thread::Parameters,
929    ) -> atrium_xrpc::Result<
930        crate::app::bsky::feed::get_post_thread::Output,
931        crate::app::bsky::feed::get_post_thread::Error,
932    > {
933        let response = self
934            .xrpc
935            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
936                method: http::Method::GET,
937                nsid: crate::app::bsky::feed::get_post_thread::NSID.into(),
938                parameters: Some(params),
939                input: None,
940                encoding: None,
941            })
942            .await?;
943        match response {
944            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
945            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
946        }
947    }
948    ///Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.
949    pub async fn get_posts(
950        &self,
951        params: crate::app::bsky::feed::get_posts::Parameters,
952    ) -> atrium_xrpc::Result<
953        crate::app::bsky::feed::get_posts::Output,
954        crate::app::bsky::feed::get_posts::Error,
955    > {
956        let response = self
957            .xrpc
958            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
959                method: http::Method::GET,
960                nsid: crate::app::bsky::feed::get_posts::NSID.into(),
961                parameters: Some(params),
962                input: None,
963                encoding: None,
964            })
965            .await?;
966        match response {
967            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
968            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
969        }
970    }
971    ///Get a list of quotes for a given post.
972    pub async fn get_quotes(
973        &self,
974        params: crate::app::bsky::feed::get_quotes::Parameters,
975    ) -> atrium_xrpc::Result<
976        crate::app::bsky::feed::get_quotes::Output,
977        crate::app::bsky::feed::get_quotes::Error,
978    > {
979        let response = self
980            .xrpc
981            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
982                method: http::Method::GET,
983                nsid: crate::app::bsky::feed::get_quotes::NSID.into(),
984                parameters: Some(params),
985                input: None,
986                encoding: None,
987            })
988            .await?;
989        match response {
990            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
991            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
992        }
993    }
994    ///Get a list of reposts for a given post.
995    pub async fn get_reposted_by(
996        &self,
997        params: crate::app::bsky::feed::get_reposted_by::Parameters,
998    ) -> atrium_xrpc::Result<
999        crate::app::bsky::feed::get_reposted_by::Output,
1000        crate::app::bsky::feed::get_reposted_by::Error,
1001    > {
1002        let response = self
1003            .xrpc
1004            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1005                method: http::Method::GET,
1006                nsid: crate::app::bsky::feed::get_reposted_by::NSID.into(),
1007                parameters: Some(params),
1008                input: None,
1009                encoding: None,
1010            })
1011            .await?;
1012        match response {
1013            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1014            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1015        }
1016    }
1017    ///Get a list of suggested feeds (feed generators) for the requesting account.
1018    pub async fn get_suggested_feeds(
1019        &self,
1020        params: crate::app::bsky::feed::get_suggested_feeds::Parameters,
1021    ) -> atrium_xrpc::Result<
1022        crate::app::bsky::feed::get_suggested_feeds::Output,
1023        crate::app::bsky::feed::get_suggested_feeds::Error,
1024    > {
1025        let response = self
1026            .xrpc
1027            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1028                method: http::Method::GET,
1029                nsid: crate::app::bsky::feed::get_suggested_feeds::NSID.into(),
1030                parameters: Some(params),
1031                input: None,
1032                encoding: None,
1033            })
1034            .await?;
1035        match response {
1036            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1037            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1038        }
1039    }
1040    ///Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.
1041    pub async fn get_timeline(
1042        &self,
1043        params: crate::app::bsky::feed::get_timeline::Parameters,
1044    ) -> atrium_xrpc::Result<
1045        crate::app::bsky::feed::get_timeline::Output,
1046        crate::app::bsky::feed::get_timeline::Error,
1047    > {
1048        let response = self
1049            .xrpc
1050            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1051                method: http::Method::GET,
1052                nsid: crate::app::bsky::feed::get_timeline::NSID.into(),
1053                parameters: Some(params),
1054                input: None,
1055                encoding: None,
1056            })
1057            .await?;
1058        match response {
1059            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1060            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1061        }
1062    }
1063    ///Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations.
1064    pub async fn search_posts(
1065        &self,
1066        params: crate::app::bsky::feed::search_posts::Parameters,
1067    ) -> atrium_xrpc::Result<
1068        crate::app::bsky::feed::search_posts::Output,
1069        crate::app::bsky::feed::search_posts::Error,
1070    > {
1071        let response = self
1072            .xrpc
1073            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1074                method: http::Method::GET,
1075                nsid: crate::app::bsky::feed::search_posts::NSID.into(),
1076                parameters: Some(params),
1077                input: None,
1078                encoding: None,
1079            })
1080            .await?;
1081        match response {
1082            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1083            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1084        }
1085    }
1086    ///Send information about interactions with feed items back to the feed generator that served them.
1087    pub async fn send_interactions(
1088        &self,
1089        input: crate::app::bsky::feed::send_interactions::Input,
1090    ) -> atrium_xrpc::Result<
1091        crate::app::bsky::feed::send_interactions::Output,
1092        crate::app::bsky::feed::send_interactions::Error,
1093    > {
1094        let response = self
1095            .xrpc
1096            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
1097                method: http::Method::POST,
1098                nsid: crate::app::bsky::feed::send_interactions::NSID.into(),
1099                parameters: None,
1100                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1101                encoding: Some(String::from("application/json")),
1102            })
1103            .await?;
1104        match response {
1105            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1106            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1107        }
1108    }
1109}
1110#[cfg(feature = "namespace-appbsky")]
1111impl<T> app::bsky::graph::Service<T>
1112where
1113    T: atrium_xrpc::XrpcClient + Send + Sync,
1114{
1115    #[allow(unused_variables)]
1116    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1117        Self { xrpc, _phantom: core::marker::PhantomData }
1118    }
1119    ///Get a list of starter packs created by the actor.
1120    pub async fn get_actor_starter_packs(
1121        &self,
1122        params: crate::app::bsky::graph::get_actor_starter_packs::Parameters,
1123    ) -> atrium_xrpc::Result<
1124        crate::app::bsky::graph::get_actor_starter_packs::Output,
1125        crate::app::bsky::graph::get_actor_starter_packs::Error,
1126    > {
1127        let response = self
1128            .xrpc
1129            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1130                method: http::Method::GET,
1131                nsid: crate::app::bsky::graph::get_actor_starter_packs::NSID.into(),
1132                parameters: Some(params),
1133                input: None,
1134                encoding: None,
1135            })
1136            .await?;
1137        match response {
1138            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1139            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1140        }
1141    }
1142    ///Enumerates which accounts the requesting account is currently blocking. Requires auth.
1143    pub async fn get_blocks(
1144        &self,
1145        params: crate::app::bsky::graph::get_blocks::Parameters,
1146    ) -> atrium_xrpc::Result<
1147        crate::app::bsky::graph::get_blocks::Output,
1148        crate::app::bsky::graph::get_blocks::Error,
1149    > {
1150        let response = self
1151            .xrpc
1152            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1153                method: http::Method::GET,
1154                nsid: crate::app::bsky::graph::get_blocks::NSID.into(),
1155                parameters: Some(params),
1156                input: None,
1157                encoding: None,
1158            })
1159            .await?;
1160        match response {
1161            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1162            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1163        }
1164    }
1165    ///Enumerates accounts which follow a specified account (actor).
1166    pub async fn get_followers(
1167        &self,
1168        params: crate::app::bsky::graph::get_followers::Parameters,
1169    ) -> atrium_xrpc::Result<
1170        crate::app::bsky::graph::get_followers::Output,
1171        crate::app::bsky::graph::get_followers::Error,
1172    > {
1173        let response = self
1174            .xrpc
1175            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1176                method: http::Method::GET,
1177                nsid: crate::app::bsky::graph::get_followers::NSID.into(),
1178                parameters: Some(params),
1179                input: None,
1180                encoding: None,
1181            })
1182            .await?;
1183        match response {
1184            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1185            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1186        }
1187    }
1188    ///Enumerates accounts which a specified account (actor) follows.
1189    pub async fn get_follows(
1190        &self,
1191        params: crate::app::bsky::graph::get_follows::Parameters,
1192    ) -> atrium_xrpc::Result<
1193        crate::app::bsky::graph::get_follows::Output,
1194        crate::app::bsky::graph::get_follows::Error,
1195    > {
1196        let response = self
1197            .xrpc
1198            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1199                method: http::Method::GET,
1200                nsid: crate::app::bsky::graph::get_follows::NSID.into(),
1201                parameters: Some(params),
1202                input: None,
1203                encoding: None,
1204            })
1205            .await?;
1206        match response {
1207            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1208            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1209        }
1210    }
1211    ///Enumerates accounts which follow a specified account (actor) and are followed by the viewer.
1212    pub async fn get_known_followers(
1213        &self,
1214        params: crate::app::bsky::graph::get_known_followers::Parameters,
1215    ) -> atrium_xrpc::Result<
1216        crate::app::bsky::graph::get_known_followers::Output,
1217        crate::app::bsky::graph::get_known_followers::Error,
1218    > {
1219        let response = self
1220            .xrpc
1221            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1222                method: http::Method::GET,
1223                nsid: crate::app::bsky::graph::get_known_followers::NSID.into(),
1224                parameters: Some(params),
1225                input: None,
1226                encoding: None,
1227            })
1228            .await?;
1229        match response {
1230            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1231            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1232        }
1233    }
1234    ///Gets a 'view' (with additional context) of a specified list.
1235    pub async fn get_list(
1236        &self,
1237        params: crate::app::bsky::graph::get_list::Parameters,
1238    ) -> atrium_xrpc::Result<
1239        crate::app::bsky::graph::get_list::Output,
1240        crate::app::bsky::graph::get_list::Error,
1241    > {
1242        let response = self
1243            .xrpc
1244            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1245                method: http::Method::GET,
1246                nsid: crate::app::bsky::graph::get_list::NSID.into(),
1247                parameters: Some(params),
1248                input: None,
1249                encoding: None,
1250            })
1251            .await?;
1252        match response {
1253            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1254            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1255        }
1256    }
1257    ///Get mod lists that the requesting account (actor) is blocking. Requires auth.
1258    pub async fn get_list_blocks(
1259        &self,
1260        params: crate::app::bsky::graph::get_list_blocks::Parameters,
1261    ) -> atrium_xrpc::Result<
1262        crate::app::bsky::graph::get_list_blocks::Output,
1263        crate::app::bsky::graph::get_list_blocks::Error,
1264    > {
1265        let response = self
1266            .xrpc
1267            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1268                method: http::Method::GET,
1269                nsid: crate::app::bsky::graph::get_list_blocks::NSID.into(),
1270                parameters: Some(params),
1271                input: None,
1272                encoding: None,
1273            })
1274            .await?;
1275        match response {
1276            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1277            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1278        }
1279    }
1280    ///Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.
1281    pub async fn get_list_mutes(
1282        &self,
1283        params: crate::app::bsky::graph::get_list_mutes::Parameters,
1284    ) -> atrium_xrpc::Result<
1285        crate::app::bsky::graph::get_list_mutes::Output,
1286        crate::app::bsky::graph::get_list_mutes::Error,
1287    > {
1288        let response = self
1289            .xrpc
1290            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1291                method: http::Method::GET,
1292                nsid: crate::app::bsky::graph::get_list_mutes::NSID.into(),
1293                parameters: Some(params),
1294                input: None,
1295                encoding: None,
1296            })
1297            .await?;
1298        match response {
1299            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1300            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1301        }
1302    }
1303    ///Enumerates the lists created by a specified account (actor).
1304    pub async fn get_lists(
1305        &self,
1306        params: crate::app::bsky::graph::get_lists::Parameters,
1307    ) -> atrium_xrpc::Result<
1308        crate::app::bsky::graph::get_lists::Output,
1309        crate::app::bsky::graph::get_lists::Error,
1310    > {
1311        let response = self
1312            .xrpc
1313            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1314                method: http::Method::GET,
1315                nsid: crate::app::bsky::graph::get_lists::NSID.into(),
1316                parameters: Some(params),
1317                input: None,
1318                encoding: None,
1319            })
1320            .await?;
1321        match response {
1322            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1323            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1324        }
1325    }
1326    ///Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth.
1327    pub async fn get_lists_with_membership(
1328        &self,
1329        params: crate::app::bsky::graph::get_lists_with_membership::Parameters,
1330    ) -> atrium_xrpc::Result<
1331        crate::app::bsky::graph::get_lists_with_membership::Output,
1332        crate::app::bsky::graph::get_lists_with_membership::Error,
1333    > {
1334        let response = self
1335            .xrpc
1336            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1337                method: http::Method::GET,
1338                nsid: crate::app::bsky::graph::get_lists_with_membership::NSID.into(),
1339                parameters: Some(params),
1340                input: None,
1341                encoding: None,
1342            })
1343            .await?;
1344        match response {
1345            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1346            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1347        }
1348    }
1349    ///Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.
1350    pub async fn get_mutes(
1351        &self,
1352        params: crate::app::bsky::graph::get_mutes::Parameters,
1353    ) -> atrium_xrpc::Result<
1354        crate::app::bsky::graph::get_mutes::Output,
1355        crate::app::bsky::graph::get_mutes::Error,
1356    > {
1357        let response = self
1358            .xrpc
1359            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1360                method: http::Method::GET,
1361                nsid: crate::app::bsky::graph::get_mutes::NSID.into(),
1362                parameters: Some(params),
1363                input: None,
1364                encoding: None,
1365            })
1366            .await?;
1367        match response {
1368            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1369            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1370        }
1371    }
1372    ///Enumerates public relationships between one account, and a list of other accounts. Does not require auth.
1373    pub async fn get_relationships(
1374        &self,
1375        params: crate::app::bsky::graph::get_relationships::Parameters,
1376    ) -> atrium_xrpc::Result<
1377        crate::app::bsky::graph::get_relationships::Output,
1378        crate::app::bsky::graph::get_relationships::Error,
1379    > {
1380        let response = self
1381            .xrpc
1382            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1383                method: http::Method::GET,
1384                nsid: crate::app::bsky::graph::get_relationships::NSID.into(),
1385                parameters: Some(params),
1386                input: None,
1387                encoding: None,
1388            })
1389            .await?;
1390        match response {
1391            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1392            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1393        }
1394    }
1395    ///Gets a view of a starter pack.
1396    pub async fn get_starter_pack(
1397        &self,
1398        params: crate::app::bsky::graph::get_starter_pack::Parameters,
1399    ) -> atrium_xrpc::Result<
1400        crate::app::bsky::graph::get_starter_pack::Output,
1401        crate::app::bsky::graph::get_starter_pack::Error,
1402    > {
1403        let response = self
1404            .xrpc
1405            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1406                method: http::Method::GET,
1407                nsid: crate::app::bsky::graph::get_starter_pack::NSID.into(),
1408                parameters: Some(params),
1409                input: None,
1410                encoding: None,
1411            })
1412            .await?;
1413        match response {
1414            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1415            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1416        }
1417    }
1418    ///Get views for a list of starter packs.
1419    pub async fn get_starter_packs(
1420        &self,
1421        params: crate::app::bsky::graph::get_starter_packs::Parameters,
1422    ) -> atrium_xrpc::Result<
1423        crate::app::bsky::graph::get_starter_packs::Output,
1424        crate::app::bsky::graph::get_starter_packs::Error,
1425    > {
1426        let response = self
1427            .xrpc
1428            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1429                method: http::Method::GET,
1430                nsid: crate::app::bsky::graph::get_starter_packs::NSID.into(),
1431                parameters: Some(params),
1432                input: None,
1433                encoding: None,
1434            })
1435            .await?;
1436        match response {
1437            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1438            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1439        }
1440    }
1441    ///Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth.
1442    pub async fn get_starter_packs_with_membership(
1443        &self,
1444        params: crate::app::bsky::graph::get_starter_packs_with_membership::Parameters,
1445    ) -> atrium_xrpc::Result<
1446        crate::app::bsky::graph::get_starter_packs_with_membership::Output,
1447        crate::app::bsky::graph::get_starter_packs_with_membership::Error,
1448    > {
1449        let response = self
1450            .xrpc
1451            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1452                method: http::Method::GET,
1453                nsid: crate::app::bsky::graph::get_starter_packs_with_membership::NSID.into(),
1454                parameters: Some(params),
1455                input: None,
1456                encoding: None,
1457            })
1458            .await?;
1459        match response {
1460            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1461            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1462        }
1463    }
1464    ///Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.
1465    pub async fn get_suggested_follows_by_actor(
1466        &self,
1467        params: crate::app::bsky::graph::get_suggested_follows_by_actor::Parameters,
1468    ) -> atrium_xrpc::Result<
1469        crate::app::bsky::graph::get_suggested_follows_by_actor::Output,
1470        crate::app::bsky::graph::get_suggested_follows_by_actor::Error,
1471    > {
1472        let response = self
1473            .xrpc
1474            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1475                method: http::Method::GET,
1476                nsid: crate::app::bsky::graph::get_suggested_follows_by_actor::NSID.into(),
1477                parameters: Some(params),
1478                input: None,
1479                encoding: None,
1480            })
1481            .await?;
1482        match response {
1483            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1484            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1485        }
1486    }
1487    ///Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth.
1488    pub async fn mute_actor(
1489        &self,
1490        input: crate::app::bsky::graph::mute_actor::Input,
1491    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor::Error> {
1492        let response = self
1493            .xrpc
1494            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1495                method: http::Method::POST,
1496                nsid: crate::app::bsky::graph::mute_actor::NSID.into(),
1497                parameters: None,
1498                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1499                encoding: Some(String::from("application/json")),
1500            })
1501            .await?;
1502        match response {
1503            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1504            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1505        }
1506    }
1507    ///Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.
1508    pub async fn mute_actor_list(
1509        &self,
1510        input: crate::app::bsky::graph::mute_actor_list::Input,
1511    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor_list::Error> {
1512        let response = self
1513            .xrpc
1514            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1515                method: http::Method::POST,
1516                nsid: crate::app::bsky::graph::mute_actor_list::NSID.into(),
1517                parameters: None,
1518                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1519                encoding: Some(String::from("application/json")),
1520            })
1521            .await?;
1522        match response {
1523            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1524            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1525        }
1526    }
1527    ///Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth.
1528    pub async fn mute_thread(
1529        &self,
1530        input: crate::app::bsky::graph::mute_thread::Input,
1531    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_thread::Error> {
1532        let response = self
1533            .xrpc
1534            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1535                method: http::Method::POST,
1536                nsid: crate::app::bsky::graph::mute_thread::NSID.into(),
1537                parameters: None,
1538                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1539                encoding: Some(String::from("application/json")),
1540            })
1541            .await?;
1542        match response {
1543            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1544            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1545        }
1546    }
1547    ///Find starter packs matching search criteria. Does not require auth.
1548    pub async fn search_starter_packs(
1549        &self,
1550        params: crate::app::bsky::graph::search_starter_packs::Parameters,
1551    ) -> atrium_xrpc::Result<
1552        crate::app::bsky::graph::search_starter_packs::Output,
1553        crate::app::bsky::graph::search_starter_packs::Error,
1554    > {
1555        let response = self
1556            .xrpc
1557            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1558                method: http::Method::GET,
1559                nsid: crate::app::bsky::graph::search_starter_packs::NSID.into(),
1560                parameters: Some(params),
1561                input: None,
1562                encoding: None,
1563            })
1564            .await?;
1565        match response {
1566            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1567            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1568        }
1569    }
1570    ///Unmutes the specified account. Requires auth.
1571    pub async fn unmute_actor(
1572        &self,
1573        input: crate::app::bsky::graph::unmute_actor::Input,
1574    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor::Error> {
1575        let response = self
1576            .xrpc
1577            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1578                method: http::Method::POST,
1579                nsid: crate::app::bsky::graph::unmute_actor::NSID.into(),
1580                parameters: None,
1581                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1582                encoding: Some(String::from("application/json")),
1583            })
1584            .await?;
1585        match response {
1586            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1587            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1588        }
1589    }
1590    ///Unmutes the specified list of accounts. Requires auth.
1591    pub async fn unmute_actor_list(
1592        &self,
1593        input: crate::app::bsky::graph::unmute_actor_list::Input,
1594    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor_list::Error> {
1595        let response = self
1596            .xrpc
1597            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1598                method: http::Method::POST,
1599                nsid: crate::app::bsky::graph::unmute_actor_list::NSID.into(),
1600                parameters: None,
1601                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1602                encoding: Some(String::from("application/json")),
1603            })
1604            .await?;
1605        match response {
1606            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1607            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1608        }
1609    }
1610    ///Unmutes the specified thread. Requires auth.
1611    pub async fn unmute_thread(
1612        &self,
1613        input: crate::app::bsky::graph::unmute_thread::Input,
1614    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_thread::Error> {
1615        let response = self
1616            .xrpc
1617            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1618                method: http::Method::POST,
1619                nsid: crate::app::bsky::graph::unmute_thread::NSID.into(),
1620                parameters: None,
1621                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1622                encoding: Some(String::from("application/json")),
1623            })
1624            .await?;
1625        match response {
1626            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1627            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1628        }
1629    }
1630}
1631#[cfg(feature = "namespace-appbsky")]
1632impl<T> app::bsky::labeler::Service<T>
1633where
1634    T: atrium_xrpc::XrpcClient + Send + Sync,
1635{
1636    #[allow(unused_variables)]
1637    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1638        Self { xrpc, _phantom: core::marker::PhantomData }
1639    }
1640    ///Get information about a list of labeler services.
1641    pub async fn get_services(
1642        &self,
1643        params: crate::app::bsky::labeler::get_services::Parameters,
1644    ) -> atrium_xrpc::Result<
1645        crate::app::bsky::labeler::get_services::Output,
1646        crate::app::bsky::labeler::get_services::Error,
1647    > {
1648        let response = self
1649            .xrpc
1650            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1651                method: http::Method::GET,
1652                nsid: crate::app::bsky::labeler::get_services::NSID.into(),
1653                parameters: Some(params),
1654                input: None,
1655                encoding: None,
1656            })
1657            .await?;
1658        match response {
1659            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1660            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1661        }
1662    }
1663}
1664#[cfg(feature = "namespace-appbsky")]
1665impl<T> app::bsky::notification::Service<T>
1666where
1667    T: atrium_xrpc::XrpcClient + Send + Sync,
1668{
1669    #[allow(unused_variables)]
1670    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1671        Self { xrpc, _phantom: core::marker::PhantomData }
1672    }
1673    ///Get notification-related preferences for an account. Requires auth.
1674    pub async fn get_preferences(
1675        &self,
1676        params: crate::app::bsky::notification::get_preferences::Parameters,
1677    ) -> atrium_xrpc::Result<
1678        crate::app::bsky::notification::get_preferences::Output,
1679        crate::app::bsky::notification::get_preferences::Error,
1680    > {
1681        let response = self
1682            .xrpc
1683            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1684                method: http::Method::GET,
1685                nsid: crate::app::bsky::notification::get_preferences::NSID.into(),
1686                parameters: Some(params),
1687                input: None,
1688                encoding: None,
1689            })
1690            .await?;
1691        match response {
1692            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1693            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1694        }
1695    }
1696    ///Count the number of unread notifications for the requesting account. Requires auth.
1697    pub async fn get_unread_count(
1698        &self,
1699        params: crate::app::bsky::notification::get_unread_count::Parameters,
1700    ) -> atrium_xrpc::Result<
1701        crate::app::bsky::notification::get_unread_count::Output,
1702        crate::app::bsky::notification::get_unread_count::Error,
1703    > {
1704        let response = self
1705            .xrpc
1706            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1707                method: http::Method::GET,
1708                nsid: crate::app::bsky::notification::get_unread_count::NSID.into(),
1709                parameters: Some(params),
1710                input: None,
1711                encoding: None,
1712            })
1713            .await?;
1714        match response {
1715            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1716            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1717        }
1718    }
1719    ///Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth.
1720    pub async fn list_activity_subscriptions(
1721        &self,
1722        params: crate::app::bsky::notification::list_activity_subscriptions::Parameters,
1723    ) -> atrium_xrpc::Result<
1724        crate::app::bsky::notification::list_activity_subscriptions::Output,
1725        crate::app::bsky::notification::list_activity_subscriptions::Error,
1726    > {
1727        let response = self
1728            .xrpc
1729            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1730                method: http::Method::GET,
1731                nsid: crate::app::bsky::notification::list_activity_subscriptions::NSID.into(),
1732                parameters: Some(params),
1733                input: None,
1734                encoding: None,
1735            })
1736            .await?;
1737        match response {
1738            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1739            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1740        }
1741    }
1742    ///Enumerate notifications for the requesting account. Requires auth.
1743    pub async fn list_notifications(
1744        &self,
1745        params: crate::app::bsky::notification::list_notifications::Parameters,
1746    ) -> atrium_xrpc::Result<
1747        crate::app::bsky::notification::list_notifications::Output,
1748        crate::app::bsky::notification::list_notifications::Error,
1749    > {
1750        let response = self
1751            .xrpc
1752            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1753                method: http::Method::GET,
1754                nsid: crate::app::bsky::notification::list_notifications::NSID.into(),
1755                parameters: Some(params),
1756                input: None,
1757                encoding: None,
1758            })
1759            .await?;
1760        match response {
1761            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1762            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1763        }
1764    }
1765    ///Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth.
1766    pub async fn put_activity_subscription(
1767        &self,
1768        input: crate::app::bsky::notification::put_activity_subscription::Input,
1769    ) -> atrium_xrpc::Result<
1770        crate::app::bsky::notification::put_activity_subscription::Output,
1771        crate::app::bsky::notification::put_activity_subscription::Error,
1772    > {
1773        let response = self
1774            .xrpc
1775            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
1776                method: http::Method::POST,
1777                nsid: crate::app::bsky::notification::put_activity_subscription::NSID.into(),
1778                parameters: None,
1779                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1780                encoding: Some(String::from("application/json")),
1781            })
1782            .await?;
1783        match response {
1784            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1785            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1786        }
1787    }
1788    ///Set notification-related preferences for an account. Requires auth.
1789    pub async fn put_preferences(
1790        &self,
1791        input: crate::app::bsky::notification::put_preferences::Input,
1792    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::put_preferences::Error> {
1793        let response = self
1794            .xrpc
1795            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1796                method: http::Method::POST,
1797                nsid: crate::app::bsky::notification::put_preferences::NSID.into(),
1798                parameters: None,
1799                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1800                encoding: Some(String::from("application/json")),
1801            })
1802            .await?;
1803        match response {
1804            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1805            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1806        }
1807    }
1808    ///Set notification-related preferences for an account. Requires auth.
1809    pub async fn put_preferences_v2(
1810        &self,
1811        input: crate::app::bsky::notification::put_preferences_v2::Input,
1812    ) -> atrium_xrpc::Result<
1813        crate::app::bsky::notification::put_preferences_v2::Output,
1814        crate::app::bsky::notification::put_preferences_v2::Error,
1815    > {
1816        let response = self
1817            .xrpc
1818            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
1819                method: http::Method::POST,
1820                nsid: crate::app::bsky::notification::put_preferences_v2::NSID.into(),
1821                parameters: None,
1822                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1823                encoding: Some(String::from("application/json")),
1824            })
1825            .await?;
1826        match response {
1827            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1828            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1829        }
1830    }
1831    ///Register to receive push notifications, via a specified service, for the requesting account. Requires auth.
1832    pub async fn register_push(
1833        &self,
1834        input: crate::app::bsky::notification::register_push::Input,
1835    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::register_push::Error> {
1836        let response = self
1837            .xrpc
1838            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1839                method: http::Method::POST,
1840                nsid: crate::app::bsky::notification::register_push::NSID.into(),
1841                parameters: None,
1842                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1843                encoding: Some(String::from("application/json")),
1844            })
1845            .await?;
1846        match response {
1847            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1848            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1849        }
1850    }
1851    ///The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth.
1852    pub async fn unregister_push(
1853        &self,
1854        input: crate::app::bsky::notification::unregister_push::Input,
1855    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::unregister_push::Error> {
1856        let response = self
1857            .xrpc
1858            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1859                method: http::Method::POST,
1860                nsid: crate::app::bsky::notification::unregister_push::NSID.into(),
1861                parameters: None,
1862                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1863                encoding: Some(String::from("application/json")),
1864            })
1865            .await?;
1866        match response {
1867            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1868            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1869        }
1870    }
1871    ///Notify server that the requesting account has seen notifications. Requires auth.
1872    pub async fn update_seen(
1873        &self,
1874        input: crate::app::bsky::notification::update_seen::Input,
1875    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::update_seen::Error> {
1876        let response = self
1877            .xrpc
1878            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
1879                method: http::Method::POST,
1880                nsid: crate::app::bsky::notification::update_seen::NSID.into(),
1881                parameters: None,
1882                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1883                encoding: Some(String::from("application/json")),
1884            })
1885            .await?;
1886        match response {
1887            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1888            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1889        }
1890    }
1891}
1892#[cfg(feature = "namespace-appbsky")]
1893impl<T> app::bsky::unspecced::Service<T>
1894where
1895    T: atrium_xrpc::XrpcClient + Send + Sync,
1896{
1897    #[allow(unused_variables)]
1898    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1899        Self { xrpc, _phantom: core::marker::PhantomData }
1900    }
1901    ///Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required.
1902    pub async fn get_age_assurance_state(
1903        &self,
1904    ) -> atrium_xrpc::Result<
1905        crate::app::bsky::unspecced::get_age_assurance_state::Output,
1906        crate::app::bsky::unspecced::get_age_assurance_state::Error,
1907    > {
1908        let response = self
1909            .xrpc
1910            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
1911                method: http::Method::GET,
1912                nsid: crate::app::bsky::unspecced::get_age_assurance_state::NSID.into(),
1913                parameters: None,
1914                input: None,
1915                encoding: None,
1916            })
1917            .await?;
1918        match response {
1919            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1920            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1921        }
1922    }
1923    ///Get miscellaneous runtime configuration.
1924    pub async fn get_config(
1925        &self,
1926    ) -> atrium_xrpc::Result<
1927        crate::app::bsky::unspecced::get_config::Output,
1928        crate::app::bsky::unspecced::get_config::Error,
1929    > {
1930        let response = self
1931            .xrpc
1932            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
1933                method: http::Method::GET,
1934                nsid: crate::app::bsky::unspecced::get_config::NSID.into(),
1935                parameters: None,
1936                input: None,
1937                encoding: None,
1938            })
1939            .await?;
1940        match response {
1941            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1942            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1943        }
1944    }
1945    ///Get a list of suggested starterpacks for onboarding
1946    pub async fn get_onboarding_suggested_starter_packs(
1947        &self,
1948        params: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Parameters,
1949    ) -> atrium_xrpc::Result<
1950        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Output,
1951        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Error,
1952    > {
1953        let response = self
1954            .xrpc
1955            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
1956                method: http::Method::GET,
1957                nsid: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::NSID
1958                    .into(),
1959                parameters: Some(params),
1960                input: None,
1961                encoding: None,
1962            })
1963            .await?;
1964        match response {
1965            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1966            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1967        }
1968    }
1969    ///Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks
1970    pub async fn get_onboarding_suggested_starter_packs_skeleton(
1971        &self,
1972        params: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Parameters,
1973    ) -> atrium_xrpc::Result<
1974        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Output,
1975        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Error,
1976    > {
1977        let response = self
1978            .xrpc
1979            .send_xrpc::<
1980                _,
1981                (),
1982                _,
1983                _,
1984            >(
1985                &atrium_xrpc::XrpcRequest {
1986                    method: http::Method::GET,
1987                    nsid: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::NSID
1988                        .into(),
1989                    parameters: Some(params),
1990                    input: None,
1991                    encoding: None,
1992                },
1993            )
1994            .await?;
1995        match response {
1996            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1997            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1998        }
1999    }
2000    ///An unspecced view of globally popular feed generators.
2001    pub async fn get_popular_feed_generators(
2002        &self,
2003        params: crate::app::bsky::unspecced::get_popular_feed_generators::Parameters,
2004    ) -> atrium_xrpc::Result<
2005        crate::app::bsky::unspecced::get_popular_feed_generators::Output,
2006        crate::app::bsky::unspecced::get_popular_feed_generators::Error,
2007    > {
2008        let response = self
2009            .xrpc
2010            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2011                method: http::Method::GET,
2012                nsid: crate::app::bsky::unspecced::get_popular_feed_generators::NSID.into(),
2013                parameters: Some(params),
2014                input: None,
2015                encoding: None,
2016            })
2017            .await?;
2018        match response {
2019            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2020            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2021        }
2022    }
2023    ///(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get additional posts under a thread e.g. replies hidden by threadgate. Based on an anchor post at any depth of the tree, returns top-level replies below that anchor. It does not include ancestors nor the anchor itself. This should be called after exhausting `app.bsky.unspecced.getPostThreadV2`. Does not require auth, but additional metadata and filtering will be applied for authed requests.
2024    pub async fn get_post_thread_other_v2(
2025        &self,
2026        params: crate::app::bsky::unspecced::get_post_thread_other_v2::Parameters,
2027    ) -> atrium_xrpc::Result<
2028        crate::app::bsky::unspecced::get_post_thread_other_v2::Output,
2029        crate::app::bsky::unspecced::get_post_thread_other_v2::Error,
2030    > {
2031        let response = self
2032            .xrpc
2033            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2034                method: http::Method::GET,
2035                nsid: crate::app::bsky::unspecced::get_post_thread_other_v2::NSID.into(),
2036                parameters: Some(params),
2037                input: None,
2038                encoding: None,
2039            })
2040            .await?;
2041        match response {
2042            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2043            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2044        }
2045    }
2046    ///(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests.
2047    pub async fn get_post_thread_v2(
2048        &self,
2049        params: crate::app::bsky::unspecced::get_post_thread_v2::Parameters,
2050    ) -> atrium_xrpc::Result<
2051        crate::app::bsky::unspecced::get_post_thread_v2::Output,
2052        crate::app::bsky::unspecced::get_post_thread_v2::Error,
2053    > {
2054        let response = self
2055            .xrpc
2056            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2057                method: http::Method::GET,
2058                nsid: crate::app::bsky::unspecced::get_post_thread_v2::NSID.into(),
2059                parameters: Some(params),
2060                input: None,
2061                encoding: None,
2062            })
2063            .await?;
2064        match response {
2065            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2066            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2067        }
2068    }
2069    ///Get a list of suggested feeds
2070    pub async fn get_suggested_feeds(
2071        &self,
2072        params: crate::app::bsky::unspecced::get_suggested_feeds::Parameters,
2073    ) -> atrium_xrpc::Result<
2074        crate::app::bsky::unspecced::get_suggested_feeds::Output,
2075        crate::app::bsky::unspecced::get_suggested_feeds::Error,
2076    > {
2077        let response = self
2078            .xrpc
2079            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2080                method: http::Method::GET,
2081                nsid: crate::app::bsky::unspecced::get_suggested_feeds::NSID.into(),
2082                parameters: Some(params),
2083                input: None,
2084                encoding: None,
2085            })
2086            .await?;
2087        match response {
2088            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2089            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2090        }
2091    }
2092    ///Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds
2093    pub async fn get_suggested_feeds_skeleton(
2094        &self,
2095        params: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Parameters,
2096    ) -> atrium_xrpc::Result<
2097        crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Output,
2098        crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Error,
2099    > {
2100        let response = self
2101            .xrpc
2102            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2103                method: http::Method::GET,
2104                nsid: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::NSID.into(),
2105                parameters: Some(params),
2106                input: None,
2107                encoding: None,
2108            })
2109            .await?;
2110        match response {
2111            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2112            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2113        }
2114    }
2115    ///Get a list of suggested starterpacks
2116    pub async fn get_suggested_starter_packs(
2117        &self,
2118        params: crate::app::bsky::unspecced::get_suggested_starter_packs::Parameters,
2119    ) -> atrium_xrpc::Result<
2120        crate::app::bsky::unspecced::get_suggested_starter_packs::Output,
2121        crate::app::bsky::unspecced::get_suggested_starter_packs::Error,
2122    > {
2123        let response = self
2124            .xrpc
2125            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2126                method: http::Method::GET,
2127                nsid: crate::app::bsky::unspecced::get_suggested_starter_packs::NSID.into(),
2128                parameters: Some(params),
2129                input: None,
2130                encoding: None,
2131            })
2132            .await?;
2133        match response {
2134            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2135            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2136        }
2137    }
2138    ///Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks
2139    pub async fn get_suggested_starter_packs_skeleton(
2140        &self,
2141        params: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Parameters,
2142    ) -> atrium_xrpc::Result<
2143        crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Output,
2144        crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Error,
2145    > {
2146        let response = self
2147            .xrpc
2148            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2149                method: http::Method::GET,
2150                nsid: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::NSID
2151                    .into(),
2152                parameters: Some(params),
2153                input: None,
2154                encoding: None,
2155            })
2156            .await?;
2157        match response {
2158            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2159            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2160        }
2161    }
2162    ///Get a list of suggested users
2163    pub async fn get_suggested_users(
2164        &self,
2165        params: crate::app::bsky::unspecced::get_suggested_users::Parameters,
2166    ) -> atrium_xrpc::Result<
2167        crate::app::bsky::unspecced::get_suggested_users::Output,
2168        crate::app::bsky::unspecced::get_suggested_users::Error,
2169    > {
2170        let response = self
2171            .xrpc
2172            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2173                method: http::Method::GET,
2174                nsid: crate::app::bsky::unspecced::get_suggested_users::NSID.into(),
2175                parameters: Some(params),
2176                input: None,
2177                encoding: None,
2178            })
2179            .await?;
2180        match response {
2181            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2182            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2183        }
2184    }
2185    ///Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers
2186    pub async fn get_suggested_users_skeleton(
2187        &self,
2188        params: crate::app::bsky::unspecced::get_suggested_users_skeleton::Parameters,
2189    ) -> atrium_xrpc::Result<
2190        crate::app::bsky::unspecced::get_suggested_users_skeleton::Output,
2191        crate::app::bsky::unspecced::get_suggested_users_skeleton::Error,
2192    > {
2193        let response = self
2194            .xrpc
2195            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2196                method: http::Method::GET,
2197                nsid: crate::app::bsky::unspecced::get_suggested_users_skeleton::NSID.into(),
2198                parameters: Some(params),
2199                input: None,
2200                encoding: None,
2201            })
2202            .await?;
2203        match response {
2204            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2205            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2206        }
2207    }
2208    ///Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions
2209    pub async fn get_suggestions_skeleton(
2210        &self,
2211        params: crate::app::bsky::unspecced::get_suggestions_skeleton::Parameters,
2212    ) -> atrium_xrpc::Result<
2213        crate::app::bsky::unspecced::get_suggestions_skeleton::Output,
2214        crate::app::bsky::unspecced::get_suggestions_skeleton::Error,
2215    > {
2216        let response = self
2217            .xrpc
2218            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2219                method: http::Method::GET,
2220                nsid: crate::app::bsky::unspecced::get_suggestions_skeleton::NSID.into(),
2221                parameters: Some(params),
2222                input: None,
2223                encoding: None,
2224            })
2225            .await?;
2226        match response {
2227            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2228            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2229        }
2230    }
2231    ///Get a list of suggestions (feeds and users) tagged with categories
2232    pub async fn get_tagged_suggestions(
2233        &self,
2234        params: crate::app::bsky::unspecced::get_tagged_suggestions::Parameters,
2235    ) -> atrium_xrpc::Result<
2236        crate::app::bsky::unspecced::get_tagged_suggestions::Output,
2237        crate::app::bsky::unspecced::get_tagged_suggestions::Error,
2238    > {
2239        let response = self
2240            .xrpc
2241            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2242                method: http::Method::GET,
2243                nsid: crate::app::bsky::unspecced::get_tagged_suggestions::NSID.into(),
2244                parameters: Some(params),
2245                input: None,
2246                encoding: None,
2247            })
2248            .await?;
2249        match response {
2250            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2251            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2252        }
2253    }
2254    ///Get a list of trending topics
2255    pub async fn get_trending_topics(
2256        &self,
2257        params: crate::app::bsky::unspecced::get_trending_topics::Parameters,
2258    ) -> atrium_xrpc::Result<
2259        crate::app::bsky::unspecced::get_trending_topics::Output,
2260        crate::app::bsky::unspecced::get_trending_topics::Error,
2261    > {
2262        let response = self
2263            .xrpc
2264            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2265                method: http::Method::GET,
2266                nsid: crate::app::bsky::unspecced::get_trending_topics::NSID.into(),
2267                parameters: Some(params),
2268                input: None,
2269                encoding: None,
2270            })
2271            .await?;
2272        match response {
2273            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2274            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2275        }
2276    }
2277    ///Get the current trends on the network
2278    pub async fn get_trends(
2279        &self,
2280        params: crate::app::bsky::unspecced::get_trends::Parameters,
2281    ) -> atrium_xrpc::Result<
2282        crate::app::bsky::unspecced::get_trends::Output,
2283        crate::app::bsky::unspecced::get_trends::Error,
2284    > {
2285        let response = self
2286            .xrpc
2287            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2288                method: http::Method::GET,
2289                nsid: crate::app::bsky::unspecced::get_trends::NSID.into(),
2290                parameters: Some(params),
2291                input: None,
2292                encoding: None,
2293            })
2294            .await?;
2295        match response {
2296            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2297            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2298        }
2299    }
2300    ///Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends
2301    pub async fn get_trends_skeleton(
2302        &self,
2303        params: crate::app::bsky::unspecced::get_trends_skeleton::Parameters,
2304    ) -> atrium_xrpc::Result<
2305        crate::app::bsky::unspecced::get_trends_skeleton::Output,
2306        crate::app::bsky::unspecced::get_trends_skeleton::Error,
2307    > {
2308        let response = self
2309            .xrpc
2310            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2311                method: http::Method::GET,
2312                nsid: crate::app::bsky::unspecced::get_trends_skeleton::NSID.into(),
2313                parameters: Some(params),
2314                input: None,
2315                encoding: None,
2316            })
2317            .await?;
2318        match response {
2319            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2320            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2321        }
2322    }
2323    ///Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.
2324    pub async fn init_age_assurance(
2325        &self,
2326        input: crate::app::bsky::unspecced::init_age_assurance::Input,
2327    ) -> atrium_xrpc::Result<
2328        crate::app::bsky::unspecced::init_age_assurance::Output,
2329        crate::app::bsky::unspecced::init_age_assurance::Error,
2330    > {
2331        let response = self
2332            .xrpc
2333            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2334                method: http::Method::POST,
2335                nsid: crate::app::bsky::unspecced::init_age_assurance::NSID.into(),
2336                parameters: None,
2337                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2338                encoding: Some(String::from("application/json")),
2339            })
2340            .await?;
2341        match response {
2342            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2343            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2344        }
2345    }
2346    ///Backend Actors (profile) search, returns only skeleton.
2347    pub async fn search_actors_skeleton(
2348        &self,
2349        params: crate::app::bsky::unspecced::search_actors_skeleton::Parameters,
2350    ) -> atrium_xrpc::Result<
2351        crate::app::bsky::unspecced::search_actors_skeleton::Output,
2352        crate::app::bsky::unspecced::search_actors_skeleton::Error,
2353    > {
2354        let response = self
2355            .xrpc
2356            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2357                method: http::Method::GET,
2358                nsid: crate::app::bsky::unspecced::search_actors_skeleton::NSID.into(),
2359                parameters: Some(params),
2360                input: None,
2361                encoding: None,
2362            })
2363            .await?;
2364        match response {
2365            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2366            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2367        }
2368    }
2369    ///Backend Posts search, returns only skeleton
2370    pub async fn search_posts_skeleton(
2371        &self,
2372        params: crate::app::bsky::unspecced::search_posts_skeleton::Parameters,
2373    ) -> atrium_xrpc::Result<
2374        crate::app::bsky::unspecced::search_posts_skeleton::Output,
2375        crate::app::bsky::unspecced::search_posts_skeleton::Error,
2376    > {
2377        let response = self
2378            .xrpc
2379            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2380                method: http::Method::GET,
2381                nsid: crate::app::bsky::unspecced::search_posts_skeleton::NSID.into(),
2382                parameters: Some(params),
2383                input: None,
2384                encoding: None,
2385            })
2386            .await?;
2387        match response {
2388            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2389            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2390        }
2391    }
2392    ///Backend Starter Pack search, returns only skeleton.
2393    pub async fn search_starter_packs_skeleton(
2394        &self,
2395        params: crate::app::bsky::unspecced::search_starter_packs_skeleton::Parameters,
2396    ) -> atrium_xrpc::Result<
2397        crate::app::bsky::unspecced::search_starter_packs_skeleton::Output,
2398        crate::app::bsky::unspecced::search_starter_packs_skeleton::Error,
2399    > {
2400        let response = self
2401            .xrpc
2402            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2403                method: http::Method::GET,
2404                nsid: crate::app::bsky::unspecced::search_starter_packs_skeleton::NSID.into(),
2405                parameters: Some(params),
2406                input: None,
2407                encoding: None,
2408            })
2409            .await?;
2410        match response {
2411            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2412            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2413        }
2414    }
2415}
2416#[cfg(feature = "namespace-appbsky")]
2417impl<T> app::bsky::video::Service<T>
2418where
2419    T: atrium_xrpc::XrpcClient + Send + Sync,
2420{
2421    #[allow(unused_variables)]
2422    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2423        Self { xrpc, _phantom: core::marker::PhantomData }
2424    }
2425    ///Get status details for a video processing job.
2426    pub async fn get_job_status(
2427        &self,
2428        params: crate::app::bsky::video::get_job_status::Parameters,
2429    ) -> atrium_xrpc::Result<
2430        crate::app::bsky::video::get_job_status::Output,
2431        crate::app::bsky::video::get_job_status::Error,
2432    > {
2433        let response = self
2434            .xrpc
2435            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2436                method: http::Method::GET,
2437                nsid: crate::app::bsky::video::get_job_status::NSID.into(),
2438                parameters: Some(params),
2439                input: None,
2440                encoding: None,
2441            })
2442            .await?;
2443        match response {
2444            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2445            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2446        }
2447    }
2448    ///Get video upload limits for the authenticated user.
2449    pub async fn get_upload_limits(
2450        &self,
2451    ) -> atrium_xrpc::Result<
2452        crate::app::bsky::video::get_upload_limits::Output,
2453        crate::app::bsky::video::get_upload_limits::Error,
2454    > {
2455        let response = self
2456            .xrpc
2457            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
2458                method: http::Method::GET,
2459                nsid: crate::app::bsky::video::get_upload_limits::NSID.into(),
2460                parameters: None,
2461                input: None,
2462                encoding: None,
2463            })
2464            .await?;
2465        match response {
2466            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2467            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2468        }
2469    }
2470    ///Upload a video to be processed then stored on the PDS.
2471    pub async fn upload_video(
2472        &self,
2473        input: Vec<u8>,
2474    ) -> atrium_xrpc::Result<
2475        crate::app::bsky::video::upload_video::Output,
2476        crate::app::bsky::video::upload_video::Error,
2477    > {
2478        let response = self
2479            .xrpc
2480            .send_xrpc::<(), Vec<u8>, _, _>(&atrium_xrpc::XrpcRequest {
2481                method: http::Method::POST,
2482                nsid: crate::app::bsky::video::upload_video::NSID.into(),
2483                parameters: None,
2484                input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
2485                encoding: Some(String::from("video/mp4")),
2486            })
2487            .await?;
2488        match response {
2489            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2490            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2491        }
2492    }
2493}
2494impl<T> chat::Service<T>
2495where
2496    T: atrium_xrpc::XrpcClient + Send + Sync,
2497{
2498    #[allow(unused_variables)]
2499    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2500        Self {
2501            #[cfg(feature = "namespace-chatbsky")]
2502            bsky: chat::bsky::Service::new(std::sync::Arc::clone(&xrpc)),
2503            _phantom: core::marker::PhantomData,
2504        }
2505    }
2506}
2507#[cfg(feature = "namespace-chatbsky")]
2508impl<T> chat::bsky::Service<T>
2509where
2510    T: atrium_xrpc::XrpcClient + Send + Sync,
2511{
2512    #[allow(unused_variables)]
2513    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2514        Self {
2515            actor: chat::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)),
2516            convo: chat::bsky::convo::Service::new(std::sync::Arc::clone(&xrpc)),
2517            moderation: chat::bsky::moderation::Service::new(std::sync::Arc::clone(&xrpc)),
2518            _phantom: core::marker::PhantomData,
2519        }
2520    }
2521}
2522#[cfg(feature = "namespace-chatbsky")]
2523impl<T> chat::bsky::actor::Service<T>
2524where
2525    T: atrium_xrpc::XrpcClient + Send + Sync,
2526{
2527    #[allow(unused_variables)]
2528    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2529        Self { xrpc, _phantom: core::marker::PhantomData }
2530    }
2531    pub async fn delete_account(
2532        &self,
2533    ) -> atrium_xrpc::Result<
2534        crate::chat::bsky::actor::delete_account::Output,
2535        crate::chat::bsky::actor::delete_account::Error,
2536    > {
2537        let response = self
2538            .xrpc
2539            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
2540                method: http::Method::POST,
2541                nsid: crate::chat::bsky::actor::delete_account::NSID.into(),
2542                parameters: None,
2543                input: None,
2544                encoding: None,
2545            })
2546            .await?;
2547        match response {
2548            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2549            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2550        }
2551    }
2552    pub async fn export_account_data(
2553        &self,
2554    ) -> atrium_xrpc::Result<Vec<u8>, crate::chat::bsky::actor::export_account_data::Error> {
2555        let response = self
2556            .xrpc
2557            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
2558                method: http::Method::GET,
2559                nsid: crate::chat::bsky::actor::export_account_data::NSID.into(),
2560                parameters: None,
2561                input: None,
2562                encoding: None,
2563            })
2564            .await?;
2565        match response {
2566            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
2567            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2568        }
2569    }
2570}
2571#[cfg(feature = "namespace-chatbsky")]
2572impl<T> chat::bsky::convo::Service<T>
2573where
2574    T: atrium_xrpc::XrpcClient + Send + Sync,
2575{
2576    #[allow(unused_variables)]
2577    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2578        Self { xrpc, _phantom: core::marker::PhantomData }
2579    }
2580    pub async fn accept_convo(
2581        &self,
2582        input: crate::chat::bsky::convo::accept_convo::Input,
2583    ) -> atrium_xrpc::Result<
2584        crate::chat::bsky::convo::accept_convo::Output,
2585        crate::chat::bsky::convo::accept_convo::Error,
2586    > {
2587        let response = self
2588            .xrpc
2589            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2590                method: http::Method::POST,
2591                nsid: crate::chat::bsky::convo::accept_convo::NSID.into(),
2592                parameters: None,
2593                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2594                encoding: Some(String::from("application/json")),
2595            })
2596            .await?;
2597        match response {
2598            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2599            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2600        }
2601    }
2602    ///Adds an emoji reaction to a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in a single reaction.
2603    pub async fn add_reaction(
2604        &self,
2605        input: crate::chat::bsky::convo::add_reaction::Input,
2606    ) -> atrium_xrpc::Result<
2607        crate::chat::bsky::convo::add_reaction::Output,
2608        crate::chat::bsky::convo::add_reaction::Error,
2609    > {
2610        let response = self
2611            .xrpc
2612            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2613                method: http::Method::POST,
2614                nsid: crate::chat::bsky::convo::add_reaction::NSID.into(),
2615                parameters: None,
2616                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2617                encoding: Some(String::from("application/json")),
2618            })
2619            .await?;
2620        match response {
2621            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2622            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2623        }
2624    }
2625    pub async fn delete_message_for_self(
2626        &self,
2627        input: crate::chat::bsky::convo::delete_message_for_self::Input,
2628    ) -> atrium_xrpc::Result<
2629        crate::chat::bsky::convo::delete_message_for_self::Output,
2630        crate::chat::bsky::convo::delete_message_for_self::Error,
2631    > {
2632        let response = self
2633            .xrpc
2634            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2635                method: http::Method::POST,
2636                nsid: crate::chat::bsky::convo::delete_message_for_self::NSID.into(),
2637                parameters: None,
2638                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2639                encoding: Some(String::from("application/json")),
2640            })
2641            .await?;
2642        match response {
2643            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2644            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2645        }
2646    }
2647    pub async fn get_convo(
2648        &self,
2649        params: crate::chat::bsky::convo::get_convo::Parameters,
2650    ) -> atrium_xrpc::Result<
2651        crate::chat::bsky::convo::get_convo::Output,
2652        crate::chat::bsky::convo::get_convo::Error,
2653    > {
2654        let response = self
2655            .xrpc
2656            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2657                method: http::Method::GET,
2658                nsid: crate::chat::bsky::convo::get_convo::NSID.into(),
2659                parameters: Some(params),
2660                input: None,
2661                encoding: None,
2662            })
2663            .await?;
2664        match response {
2665            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2666            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2667        }
2668    }
2669    ///Get whether the requester and the other members can chat. If an existing convo is found for these members, it is returned.
2670    pub async fn get_convo_availability(
2671        &self,
2672        params: crate::chat::bsky::convo::get_convo_availability::Parameters,
2673    ) -> atrium_xrpc::Result<
2674        crate::chat::bsky::convo::get_convo_availability::Output,
2675        crate::chat::bsky::convo::get_convo_availability::Error,
2676    > {
2677        let response = self
2678            .xrpc
2679            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2680                method: http::Method::GET,
2681                nsid: crate::chat::bsky::convo::get_convo_availability::NSID.into(),
2682                parameters: Some(params),
2683                input: None,
2684                encoding: None,
2685            })
2686            .await?;
2687        match response {
2688            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2689            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2690        }
2691    }
2692    pub async fn get_convo_for_members(
2693        &self,
2694        params: crate::chat::bsky::convo::get_convo_for_members::Parameters,
2695    ) -> atrium_xrpc::Result<
2696        crate::chat::bsky::convo::get_convo_for_members::Output,
2697        crate::chat::bsky::convo::get_convo_for_members::Error,
2698    > {
2699        let response = self
2700            .xrpc
2701            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2702                method: http::Method::GET,
2703                nsid: crate::chat::bsky::convo::get_convo_for_members::NSID.into(),
2704                parameters: Some(params),
2705                input: None,
2706                encoding: None,
2707            })
2708            .await?;
2709        match response {
2710            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2711            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2712        }
2713    }
2714    pub async fn get_log(
2715        &self,
2716        params: crate::chat::bsky::convo::get_log::Parameters,
2717    ) -> atrium_xrpc::Result<
2718        crate::chat::bsky::convo::get_log::Output,
2719        crate::chat::bsky::convo::get_log::Error,
2720    > {
2721        let response = self
2722            .xrpc
2723            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2724                method: http::Method::GET,
2725                nsid: crate::chat::bsky::convo::get_log::NSID.into(),
2726                parameters: Some(params),
2727                input: None,
2728                encoding: None,
2729            })
2730            .await?;
2731        match response {
2732            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2733            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2734        }
2735    }
2736    pub async fn get_messages(
2737        &self,
2738        params: crate::chat::bsky::convo::get_messages::Parameters,
2739    ) -> atrium_xrpc::Result<
2740        crate::chat::bsky::convo::get_messages::Output,
2741        crate::chat::bsky::convo::get_messages::Error,
2742    > {
2743        let response = self
2744            .xrpc
2745            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2746                method: http::Method::GET,
2747                nsid: crate::chat::bsky::convo::get_messages::NSID.into(),
2748                parameters: Some(params),
2749                input: None,
2750                encoding: None,
2751            })
2752            .await?;
2753        match response {
2754            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2755            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2756        }
2757    }
2758    pub async fn leave_convo(
2759        &self,
2760        input: crate::chat::bsky::convo::leave_convo::Input,
2761    ) -> atrium_xrpc::Result<
2762        crate::chat::bsky::convo::leave_convo::Output,
2763        crate::chat::bsky::convo::leave_convo::Error,
2764    > {
2765        let response = self
2766            .xrpc
2767            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2768                method: http::Method::POST,
2769                nsid: crate::chat::bsky::convo::leave_convo::NSID.into(),
2770                parameters: None,
2771                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2772                encoding: Some(String::from("application/json")),
2773            })
2774            .await?;
2775        match response {
2776            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2777            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2778        }
2779    }
2780    pub async fn list_convos(
2781        &self,
2782        params: crate::chat::bsky::convo::list_convos::Parameters,
2783    ) -> atrium_xrpc::Result<
2784        crate::chat::bsky::convo::list_convos::Output,
2785        crate::chat::bsky::convo::list_convos::Error,
2786    > {
2787        let response = self
2788            .xrpc
2789            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2790                method: http::Method::GET,
2791                nsid: crate::chat::bsky::convo::list_convos::NSID.into(),
2792                parameters: Some(params),
2793                input: None,
2794                encoding: None,
2795            })
2796            .await?;
2797        match response {
2798            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2799            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2800        }
2801    }
2802    pub async fn mute_convo(
2803        &self,
2804        input: crate::chat::bsky::convo::mute_convo::Input,
2805    ) -> atrium_xrpc::Result<
2806        crate::chat::bsky::convo::mute_convo::Output,
2807        crate::chat::bsky::convo::mute_convo::Error,
2808    > {
2809        let response = self
2810            .xrpc
2811            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2812                method: http::Method::POST,
2813                nsid: crate::chat::bsky::convo::mute_convo::NSID.into(),
2814                parameters: None,
2815                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2816                encoding: Some(String::from("application/json")),
2817            })
2818            .await?;
2819        match response {
2820            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2821            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2822        }
2823    }
2824    ///Removes an emoji reaction from a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in that reaction not being present, even if it already wasn't.
2825    pub async fn remove_reaction(
2826        &self,
2827        input: crate::chat::bsky::convo::remove_reaction::Input,
2828    ) -> atrium_xrpc::Result<
2829        crate::chat::bsky::convo::remove_reaction::Output,
2830        crate::chat::bsky::convo::remove_reaction::Error,
2831    > {
2832        let response = self
2833            .xrpc
2834            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2835                method: http::Method::POST,
2836                nsid: crate::chat::bsky::convo::remove_reaction::NSID.into(),
2837                parameters: None,
2838                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2839                encoding: Some(String::from("application/json")),
2840            })
2841            .await?;
2842        match response {
2843            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2844            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2845        }
2846    }
2847    pub async fn send_message(
2848        &self,
2849        input: crate::chat::bsky::convo::send_message::Input,
2850    ) -> atrium_xrpc::Result<
2851        crate::chat::bsky::convo::send_message::Output,
2852        crate::chat::bsky::convo::send_message::Error,
2853    > {
2854        let response = self
2855            .xrpc
2856            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2857                method: http::Method::POST,
2858                nsid: crate::chat::bsky::convo::send_message::NSID.into(),
2859                parameters: None,
2860                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2861                encoding: Some(String::from("application/json")),
2862            })
2863            .await?;
2864        match response {
2865            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2866            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2867        }
2868    }
2869    pub async fn send_message_batch(
2870        &self,
2871        input: crate::chat::bsky::convo::send_message_batch::Input,
2872    ) -> atrium_xrpc::Result<
2873        crate::chat::bsky::convo::send_message_batch::Output,
2874        crate::chat::bsky::convo::send_message_batch::Error,
2875    > {
2876        let response = self
2877            .xrpc
2878            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2879                method: http::Method::POST,
2880                nsid: crate::chat::bsky::convo::send_message_batch::NSID.into(),
2881                parameters: None,
2882                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2883                encoding: Some(String::from("application/json")),
2884            })
2885            .await?;
2886        match response {
2887            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2888            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2889        }
2890    }
2891    pub async fn unmute_convo(
2892        &self,
2893        input: crate::chat::bsky::convo::unmute_convo::Input,
2894    ) -> atrium_xrpc::Result<
2895        crate::chat::bsky::convo::unmute_convo::Output,
2896        crate::chat::bsky::convo::unmute_convo::Error,
2897    > {
2898        let response = self
2899            .xrpc
2900            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2901                method: http::Method::POST,
2902                nsid: crate::chat::bsky::convo::unmute_convo::NSID.into(),
2903                parameters: None,
2904                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2905                encoding: Some(String::from("application/json")),
2906            })
2907            .await?;
2908        match response {
2909            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2910            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2911        }
2912    }
2913    pub async fn update_all_read(
2914        &self,
2915        input: crate::chat::bsky::convo::update_all_read::Input,
2916    ) -> atrium_xrpc::Result<
2917        crate::chat::bsky::convo::update_all_read::Output,
2918        crate::chat::bsky::convo::update_all_read::Error,
2919    > {
2920        let response = self
2921            .xrpc
2922            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2923                method: http::Method::POST,
2924                nsid: crate::chat::bsky::convo::update_all_read::NSID.into(),
2925                parameters: None,
2926                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2927                encoding: Some(String::from("application/json")),
2928            })
2929            .await?;
2930        match response {
2931            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2932            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2933        }
2934    }
2935    pub async fn update_read(
2936        &self,
2937        input: crate::chat::bsky::convo::update_read::Input,
2938    ) -> atrium_xrpc::Result<
2939        crate::chat::bsky::convo::update_read::Output,
2940        crate::chat::bsky::convo::update_read::Error,
2941    > {
2942        let response = self
2943            .xrpc
2944            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
2945                method: http::Method::POST,
2946                nsid: crate::chat::bsky::convo::update_read::NSID.into(),
2947                parameters: None,
2948                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2949                encoding: Some(String::from("application/json")),
2950            })
2951            .await?;
2952        match response {
2953            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2954            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2955        }
2956    }
2957}
2958#[cfg(feature = "namespace-chatbsky")]
2959impl<T> chat::bsky::moderation::Service<T>
2960where
2961    T: atrium_xrpc::XrpcClient + Send + Sync,
2962{
2963    #[allow(unused_variables)]
2964    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2965        Self { xrpc, _phantom: core::marker::PhantomData }
2966    }
2967    pub async fn get_actor_metadata(
2968        &self,
2969        params: crate::chat::bsky::moderation::get_actor_metadata::Parameters,
2970    ) -> atrium_xrpc::Result<
2971        crate::chat::bsky::moderation::get_actor_metadata::Output,
2972        crate::chat::bsky::moderation::get_actor_metadata::Error,
2973    > {
2974        let response = self
2975            .xrpc
2976            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2977                method: http::Method::GET,
2978                nsid: crate::chat::bsky::moderation::get_actor_metadata::NSID.into(),
2979                parameters: Some(params),
2980                input: None,
2981                encoding: None,
2982            })
2983            .await?;
2984        match response {
2985            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2986            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2987        }
2988    }
2989    pub async fn get_message_context(
2990        &self,
2991        params: crate::chat::bsky::moderation::get_message_context::Parameters,
2992    ) -> atrium_xrpc::Result<
2993        crate::chat::bsky::moderation::get_message_context::Output,
2994        crate::chat::bsky::moderation::get_message_context::Error,
2995    > {
2996        let response = self
2997            .xrpc
2998            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
2999                method: http::Method::GET,
3000                nsid: crate::chat::bsky::moderation::get_message_context::NSID.into(),
3001                parameters: Some(params),
3002                input: None,
3003                encoding: None,
3004            })
3005            .await?;
3006        match response {
3007            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3008            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3009        }
3010    }
3011    pub async fn update_actor_access(
3012        &self,
3013        input: crate::chat::bsky::moderation::update_actor_access::Input,
3014    ) -> atrium_xrpc::Result<(), crate::chat::bsky::moderation::update_actor_access::Error> {
3015        let response = self
3016            .xrpc
3017            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3018                method: http::Method::POST,
3019                nsid: crate::chat::bsky::moderation::update_actor_access::NSID.into(),
3020                parameters: None,
3021                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3022                encoding: Some(String::from("application/json")),
3023            })
3024            .await?;
3025        match response {
3026            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3027            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3028        }
3029    }
3030}
3031impl<T> com::Service<T>
3032where
3033    T: atrium_xrpc::XrpcClient + Send + Sync,
3034{
3035    #[allow(unused_variables)]
3036    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3037        Self {
3038            atproto: com::atproto::Service::new(std::sync::Arc::clone(&xrpc)),
3039            _phantom: core::marker::PhantomData,
3040        }
3041    }
3042}
3043impl<T> com::atproto::Service<T>
3044where
3045    T: atrium_xrpc::XrpcClient + Send + Sync,
3046{
3047    #[allow(unused_variables)]
3048    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3049        Self {
3050            admin: com::atproto::admin::Service::new(std::sync::Arc::clone(&xrpc)),
3051            identity: com::atproto::identity::Service::new(std::sync::Arc::clone(&xrpc)),
3052            label: com::atproto::label::Service::new(std::sync::Arc::clone(&xrpc)),
3053            moderation: com::atproto::moderation::Service::new(std::sync::Arc::clone(&xrpc)),
3054            repo: com::atproto::repo::Service::new(std::sync::Arc::clone(&xrpc)),
3055            server: com::atproto::server::Service::new(std::sync::Arc::clone(&xrpc)),
3056            sync: com::atproto::sync::Service::new(std::sync::Arc::clone(&xrpc)),
3057            temp: com::atproto::temp::Service::new(std::sync::Arc::clone(&xrpc)),
3058            _phantom: core::marker::PhantomData,
3059        }
3060    }
3061}
3062impl<T> com::atproto::admin::Service<T>
3063where
3064    T: atrium_xrpc::XrpcClient + Send + Sync,
3065{
3066    #[allow(unused_variables)]
3067    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3068        Self { xrpc, _phantom: core::marker::PhantomData }
3069    }
3070    ///Delete a user account as an administrator.
3071    pub async fn delete_account(
3072        &self,
3073        input: crate::com::atproto::admin::delete_account::Input,
3074    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::delete_account::Error> {
3075        let response = self
3076            .xrpc
3077            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3078                method: http::Method::POST,
3079                nsid: crate::com::atproto::admin::delete_account::NSID.into(),
3080                parameters: None,
3081                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3082                encoding: Some(String::from("application/json")),
3083            })
3084            .await?;
3085        match response {
3086            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3087            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3088        }
3089    }
3090    ///Disable an account from receiving new invite codes, but does not invalidate existing codes.
3091    pub async fn disable_account_invites(
3092        &self,
3093        input: crate::com::atproto::admin::disable_account_invites::Input,
3094    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::disable_account_invites::Error> {
3095        let response = self
3096            .xrpc
3097            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3098                method: http::Method::POST,
3099                nsid: crate::com::atproto::admin::disable_account_invites::NSID.into(),
3100                parameters: None,
3101                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3102                encoding: Some(String::from("application/json")),
3103            })
3104            .await?;
3105        match response {
3106            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3107            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3108        }
3109    }
3110    ///Disable some set of codes and/or all codes associated with a set of users.
3111    pub async fn disable_invite_codes(
3112        &self,
3113        input: crate::com::atproto::admin::disable_invite_codes::Input,
3114    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::disable_invite_codes::Error> {
3115        let response = self
3116            .xrpc
3117            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3118                method: http::Method::POST,
3119                nsid: crate::com::atproto::admin::disable_invite_codes::NSID.into(),
3120                parameters: None,
3121                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3122                encoding: Some(String::from("application/json")),
3123            })
3124            .await?;
3125        match response {
3126            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3127            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3128        }
3129    }
3130    ///Re-enable an account's ability to receive invite codes.
3131    pub async fn enable_account_invites(
3132        &self,
3133        input: crate::com::atproto::admin::enable_account_invites::Input,
3134    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::enable_account_invites::Error> {
3135        let response = self
3136            .xrpc
3137            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3138                method: http::Method::POST,
3139                nsid: crate::com::atproto::admin::enable_account_invites::NSID.into(),
3140                parameters: None,
3141                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3142                encoding: Some(String::from("application/json")),
3143            })
3144            .await?;
3145        match response {
3146            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3147            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3148        }
3149    }
3150    ///Get details about an account.
3151    pub async fn get_account_info(
3152        &self,
3153        params: crate::com::atproto::admin::get_account_info::Parameters,
3154    ) -> atrium_xrpc::Result<
3155        crate::com::atproto::admin::get_account_info::Output,
3156        crate::com::atproto::admin::get_account_info::Error,
3157    > {
3158        let response = self
3159            .xrpc
3160            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3161                method: http::Method::GET,
3162                nsid: crate::com::atproto::admin::get_account_info::NSID.into(),
3163                parameters: Some(params),
3164                input: None,
3165                encoding: None,
3166            })
3167            .await?;
3168        match response {
3169            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3170            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3171        }
3172    }
3173    ///Get details about some accounts.
3174    pub async fn get_account_infos(
3175        &self,
3176        params: crate::com::atproto::admin::get_account_infos::Parameters,
3177    ) -> atrium_xrpc::Result<
3178        crate::com::atproto::admin::get_account_infos::Output,
3179        crate::com::atproto::admin::get_account_infos::Error,
3180    > {
3181        let response = self
3182            .xrpc
3183            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3184                method: http::Method::GET,
3185                nsid: crate::com::atproto::admin::get_account_infos::NSID.into(),
3186                parameters: Some(params),
3187                input: None,
3188                encoding: None,
3189            })
3190            .await?;
3191        match response {
3192            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3193            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3194        }
3195    }
3196    ///Get an admin view of invite codes.
3197    pub async fn get_invite_codes(
3198        &self,
3199        params: crate::com::atproto::admin::get_invite_codes::Parameters,
3200    ) -> atrium_xrpc::Result<
3201        crate::com::atproto::admin::get_invite_codes::Output,
3202        crate::com::atproto::admin::get_invite_codes::Error,
3203    > {
3204        let response = self
3205            .xrpc
3206            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3207                method: http::Method::GET,
3208                nsid: crate::com::atproto::admin::get_invite_codes::NSID.into(),
3209                parameters: Some(params),
3210                input: None,
3211                encoding: None,
3212            })
3213            .await?;
3214        match response {
3215            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3216            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3217        }
3218    }
3219    ///Get the service-specific admin status of a subject (account, record, or blob).
3220    pub async fn get_subject_status(
3221        &self,
3222        params: crate::com::atproto::admin::get_subject_status::Parameters,
3223    ) -> atrium_xrpc::Result<
3224        crate::com::atproto::admin::get_subject_status::Output,
3225        crate::com::atproto::admin::get_subject_status::Error,
3226    > {
3227        let response = self
3228            .xrpc
3229            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3230                method: http::Method::GET,
3231                nsid: crate::com::atproto::admin::get_subject_status::NSID.into(),
3232                parameters: Some(params),
3233                input: None,
3234                encoding: None,
3235            })
3236            .await?;
3237        match response {
3238            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3239            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3240        }
3241    }
3242    ///Get list of accounts that matches your search query.
3243    pub async fn search_accounts(
3244        &self,
3245        params: crate::com::atproto::admin::search_accounts::Parameters,
3246    ) -> atrium_xrpc::Result<
3247        crate::com::atproto::admin::search_accounts::Output,
3248        crate::com::atproto::admin::search_accounts::Error,
3249    > {
3250        let response = self
3251            .xrpc
3252            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3253                method: http::Method::GET,
3254                nsid: crate::com::atproto::admin::search_accounts::NSID.into(),
3255                parameters: Some(params),
3256                input: None,
3257                encoding: None,
3258            })
3259            .await?;
3260        match response {
3261            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3262            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3263        }
3264    }
3265    ///Send email to a user's account email address.
3266    pub async fn send_email(
3267        &self,
3268        input: crate::com::atproto::admin::send_email::Input,
3269    ) -> atrium_xrpc::Result<
3270        crate::com::atproto::admin::send_email::Output,
3271        crate::com::atproto::admin::send_email::Error,
3272    > {
3273        let response = self
3274            .xrpc
3275            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3276                method: http::Method::POST,
3277                nsid: crate::com::atproto::admin::send_email::NSID.into(),
3278                parameters: None,
3279                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3280                encoding: Some(String::from("application/json")),
3281            })
3282            .await?;
3283        match response {
3284            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3285            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3286        }
3287    }
3288    ///Administrative action to update an account's email.
3289    pub async fn update_account_email(
3290        &self,
3291        input: crate::com::atproto::admin::update_account_email::Input,
3292    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::update_account_email::Error> {
3293        let response = self
3294            .xrpc
3295            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3296                method: http::Method::POST,
3297                nsid: crate::com::atproto::admin::update_account_email::NSID.into(),
3298                parameters: None,
3299                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3300                encoding: Some(String::from("application/json")),
3301            })
3302            .await?;
3303        match response {
3304            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3305            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3306        }
3307    }
3308    ///Administrative action to update an account's handle.
3309    pub async fn update_account_handle(
3310        &self,
3311        input: crate::com::atproto::admin::update_account_handle::Input,
3312    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::update_account_handle::Error> {
3313        let response = self
3314            .xrpc
3315            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3316                method: http::Method::POST,
3317                nsid: crate::com::atproto::admin::update_account_handle::NSID.into(),
3318                parameters: None,
3319                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3320                encoding: Some(String::from("application/json")),
3321            })
3322            .await?;
3323        match response {
3324            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3325            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3326        }
3327    }
3328    ///Update the password for a user account as an administrator.
3329    pub async fn update_account_password(
3330        &self,
3331        input: crate::com::atproto::admin::update_account_password::Input,
3332    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::update_account_password::Error> {
3333        let response = self
3334            .xrpc
3335            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3336                method: http::Method::POST,
3337                nsid: crate::com::atproto::admin::update_account_password::NSID.into(),
3338                parameters: None,
3339                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3340                encoding: Some(String::from("application/json")),
3341            })
3342            .await?;
3343        match response {
3344            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3345            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3346        }
3347    }
3348    ///Administrative action to update an account's signing key in their Did document.
3349    pub async fn update_account_signing_key(
3350        &self,
3351        input: crate::com::atproto::admin::update_account_signing_key::Input,
3352    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::update_account_signing_key::Error>
3353    {
3354        let response = self
3355            .xrpc
3356            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3357                method: http::Method::POST,
3358                nsid: crate::com::atproto::admin::update_account_signing_key::NSID.into(),
3359                parameters: None,
3360                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3361                encoding: Some(String::from("application/json")),
3362            })
3363            .await?;
3364        match response {
3365            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3366            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3367        }
3368    }
3369    ///Update the service-specific admin status of a subject (account, record, or blob).
3370    pub async fn update_subject_status(
3371        &self,
3372        input: crate::com::atproto::admin::update_subject_status::Input,
3373    ) -> atrium_xrpc::Result<
3374        crate::com::atproto::admin::update_subject_status::Output,
3375        crate::com::atproto::admin::update_subject_status::Error,
3376    > {
3377        let response = self
3378            .xrpc
3379            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3380                method: http::Method::POST,
3381                nsid: crate::com::atproto::admin::update_subject_status::NSID.into(),
3382                parameters: None,
3383                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3384                encoding: Some(String::from("application/json")),
3385            })
3386            .await?;
3387        match response {
3388            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3389            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3390        }
3391    }
3392}
3393impl<T> com::atproto::identity::Service<T>
3394where
3395    T: atrium_xrpc::XrpcClient + Send + Sync,
3396{
3397    #[allow(unused_variables)]
3398    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3399        Self { xrpc, _phantom: core::marker::PhantomData }
3400    }
3401    ///Describe the credentials that should be included in the DID doc of an account that is migrating to this service.
3402    pub async fn get_recommended_did_credentials(
3403        &self,
3404    ) -> atrium_xrpc::Result<
3405        crate::com::atproto::identity::get_recommended_did_credentials::Output,
3406        crate::com::atproto::identity::get_recommended_did_credentials::Error,
3407    > {
3408        let response = self
3409            .xrpc
3410            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
3411                method: http::Method::GET,
3412                nsid: crate::com::atproto::identity::get_recommended_did_credentials::NSID.into(),
3413                parameters: None,
3414                input: None,
3415                encoding: None,
3416            })
3417            .await?;
3418        match response {
3419            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3420            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3421        }
3422    }
3423    ///Request that the server re-resolve an identity (DID and handle). The server may ignore this request, or require authentication, depending on the role, implementation, and policy of the server.
3424    pub async fn refresh_identity(
3425        &self,
3426        input: crate::com::atproto::identity::refresh_identity::Input,
3427    ) -> atrium_xrpc::Result<
3428        crate::com::atproto::identity::refresh_identity::Output,
3429        crate::com::atproto::identity::refresh_identity::Error,
3430    > {
3431        let response = self
3432            .xrpc
3433            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3434                method: http::Method::POST,
3435                nsid: crate::com::atproto::identity::refresh_identity::NSID.into(),
3436                parameters: None,
3437                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3438                encoding: Some(String::from("application/json")),
3439            })
3440            .await?;
3441        match response {
3442            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3443            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3444        }
3445    }
3446    ///Request an email with a code to in order to request a signed PLC operation. Requires Auth.
3447    pub async fn request_plc_operation_signature(
3448        &self,
3449    ) -> atrium_xrpc::Result<
3450        (),
3451        crate::com::atproto::identity::request_plc_operation_signature::Error,
3452    > {
3453        let response = self
3454            .xrpc
3455            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
3456                method: http::Method::POST,
3457                nsid: crate::com::atproto::identity::request_plc_operation_signature::NSID.into(),
3458                parameters: None,
3459                input: None,
3460                encoding: None,
3461            })
3462            .await?;
3463        match response {
3464            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3465            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3466        }
3467    }
3468    ///Resolves DID to DID document. Does not bi-directionally verify handle.
3469    pub async fn resolve_did(
3470        &self,
3471        params: crate::com::atproto::identity::resolve_did::Parameters,
3472    ) -> atrium_xrpc::Result<
3473        crate::com::atproto::identity::resolve_did::Output,
3474        crate::com::atproto::identity::resolve_did::Error,
3475    > {
3476        let response = self
3477            .xrpc
3478            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3479                method: http::Method::GET,
3480                nsid: crate::com::atproto::identity::resolve_did::NSID.into(),
3481                parameters: Some(params),
3482                input: None,
3483                encoding: None,
3484            })
3485            .await?;
3486        match response {
3487            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3488            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3489        }
3490    }
3491    ///Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document.
3492    pub async fn resolve_handle(
3493        &self,
3494        params: crate::com::atproto::identity::resolve_handle::Parameters,
3495    ) -> atrium_xrpc::Result<
3496        crate::com::atproto::identity::resolve_handle::Output,
3497        crate::com::atproto::identity::resolve_handle::Error,
3498    > {
3499        let response = self
3500            .xrpc
3501            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3502                method: http::Method::GET,
3503                nsid: crate::com::atproto::identity::resolve_handle::NSID.into(),
3504                parameters: Some(params),
3505                input: None,
3506                encoding: None,
3507            })
3508            .await?;
3509        match response {
3510            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3511            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3512        }
3513    }
3514    ///Resolves an identity (DID or Handle) to a full identity (DID document and verified handle).
3515    pub async fn resolve_identity(
3516        &self,
3517        params: crate::com::atproto::identity::resolve_identity::Parameters,
3518    ) -> atrium_xrpc::Result<
3519        crate::com::atproto::identity::resolve_identity::Output,
3520        crate::com::atproto::identity::resolve_identity::Error,
3521    > {
3522        let response = self
3523            .xrpc
3524            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3525                method: http::Method::GET,
3526                nsid: crate::com::atproto::identity::resolve_identity::NSID.into(),
3527                parameters: Some(params),
3528                input: None,
3529                encoding: None,
3530            })
3531            .await?;
3532        match response {
3533            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3534            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3535        }
3536    }
3537    ///Signs a PLC operation to update some value(s) in the requesting DID's document.
3538    pub async fn sign_plc_operation(
3539        &self,
3540        input: crate::com::atproto::identity::sign_plc_operation::Input,
3541    ) -> atrium_xrpc::Result<
3542        crate::com::atproto::identity::sign_plc_operation::Output,
3543        crate::com::atproto::identity::sign_plc_operation::Error,
3544    > {
3545        let response = self
3546            .xrpc
3547            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3548                method: http::Method::POST,
3549                nsid: crate::com::atproto::identity::sign_plc_operation::NSID.into(),
3550                parameters: None,
3551                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3552                encoding: Some(String::from("application/json")),
3553            })
3554            .await?;
3555        match response {
3556            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3557            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3558        }
3559    }
3560    ///Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the identity into a bad state, then submits it to the PLC registry
3561    pub async fn submit_plc_operation(
3562        &self,
3563        input: crate::com::atproto::identity::submit_plc_operation::Input,
3564    ) -> atrium_xrpc::Result<(), crate::com::atproto::identity::submit_plc_operation::Error> {
3565        let response = self
3566            .xrpc
3567            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3568                method: http::Method::POST,
3569                nsid: crate::com::atproto::identity::submit_plc_operation::NSID.into(),
3570                parameters: None,
3571                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3572                encoding: Some(String::from("application/json")),
3573            })
3574            .await?;
3575        match response {
3576            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3577            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3578        }
3579    }
3580    ///Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.
3581    pub async fn update_handle(
3582        &self,
3583        input: crate::com::atproto::identity::update_handle::Input,
3584    ) -> atrium_xrpc::Result<(), crate::com::atproto::identity::update_handle::Error> {
3585        let response = self
3586            .xrpc
3587            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3588                method: http::Method::POST,
3589                nsid: crate::com::atproto::identity::update_handle::NSID.into(),
3590                parameters: None,
3591                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3592                encoding: Some(String::from("application/json")),
3593            })
3594            .await?;
3595        match response {
3596            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3597            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3598        }
3599    }
3600}
3601impl<T> com::atproto::label::Service<T>
3602where
3603    T: atrium_xrpc::XrpcClient + Send + Sync,
3604{
3605    #[allow(unused_variables)]
3606    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3607        Self { xrpc, _phantom: core::marker::PhantomData }
3608    }
3609    ///Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth.
3610    pub async fn query_labels(
3611        &self,
3612        params: crate::com::atproto::label::query_labels::Parameters,
3613    ) -> atrium_xrpc::Result<
3614        crate::com::atproto::label::query_labels::Output,
3615        crate::com::atproto::label::query_labels::Error,
3616    > {
3617        let response = self
3618            .xrpc
3619            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3620                method: http::Method::GET,
3621                nsid: crate::com::atproto::label::query_labels::NSID.into(),
3622                parameters: Some(params),
3623                input: None,
3624                encoding: None,
3625            })
3626            .await?;
3627        match response {
3628            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3629            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3630        }
3631    }
3632}
3633impl<T> com::atproto::moderation::Service<T>
3634where
3635    T: atrium_xrpc::XrpcClient + Send + Sync,
3636{
3637    #[allow(unused_variables)]
3638    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3639        Self { xrpc, _phantom: core::marker::PhantomData }
3640    }
3641    ///Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.
3642    pub async fn create_report(
3643        &self,
3644        input: crate::com::atproto::moderation::create_report::Input,
3645    ) -> atrium_xrpc::Result<
3646        crate::com::atproto::moderation::create_report::Output,
3647        crate::com::atproto::moderation::create_report::Error,
3648    > {
3649        let response = self
3650            .xrpc
3651            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3652                method: http::Method::POST,
3653                nsid: crate::com::atproto::moderation::create_report::NSID.into(),
3654                parameters: None,
3655                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3656                encoding: Some(String::from("application/json")),
3657            })
3658            .await?;
3659        match response {
3660            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3661            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3662        }
3663    }
3664}
3665impl<T> com::atproto::repo::Service<T>
3666where
3667    T: atrium_xrpc::XrpcClient + Send + Sync,
3668{
3669    #[allow(unused_variables)]
3670    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3671        Self { xrpc, _phantom: core::marker::PhantomData }
3672    }
3673    ///Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.
3674    pub async fn apply_writes(
3675        &self,
3676        input: crate::com::atproto::repo::apply_writes::Input,
3677    ) -> atrium_xrpc::Result<
3678        crate::com::atproto::repo::apply_writes::Output,
3679        crate::com::atproto::repo::apply_writes::Error,
3680    > {
3681        let response = self
3682            .xrpc
3683            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3684                method: http::Method::POST,
3685                nsid: crate::com::atproto::repo::apply_writes::NSID.into(),
3686                parameters: None,
3687                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3688                encoding: Some(String::from("application/json")),
3689            })
3690            .await?;
3691        match response {
3692            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3693            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3694        }
3695    }
3696    ///Create a single new repository record. Requires auth, implemented by PDS.
3697    pub async fn create_record(
3698        &self,
3699        input: crate::com::atproto::repo::create_record::Input,
3700    ) -> atrium_xrpc::Result<
3701        crate::com::atproto::repo::create_record::Output,
3702        crate::com::atproto::repo::create_record::Error,
3703    > {
3704        let response = self
3705            .xrpc
3706            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3707                method: http::Method::POST,
3708                nsid: crate::com::atproto::repo::create_record::NSID.into(),
3709                parameters: None,
3710                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3711                encoding: Some(String::from("application/json")),
3712            })
3713            .await?;
3714        match response {
3715            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3716            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3717        }
3718    }
3719    ///Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.
3720    pub async fn delete_record(
3721        &self,
3722        input: crate::com::atproto::repo::delete_record::Input,
3723    ) -> atrium_xrpc::Result<
3724        crate::com::atproto::repo::delete_record::Output,
3725        crate::com::atproto::repo::delete_record::Error,
3726    > {
3727        let response = self
3728            .xrpc
3729            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3730                method: http::Method::POST,
3731                nsid: crate::com::atproto::repo::delete_record::NSID.into(),
3732                parameters: None,
3733                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3734                encoding: Some(String::from("application/json")),
3735            })
3736            .await?;
3737        match response {
3738            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3739            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3740        }
3741    }
3742    ///Get information about an account and repository, including the list of collections. Does not require auth.
3743    pub async fn describe_repo(
3744        &self,
3745        params: crate::com::atproto::repo::describe_repo::Parameters,
3746    ) -> atrium_xrpc::Result<
3747        crate::com::atproto::repo::describe_repo::Output,
3748        crate::com::atproto::repo::describe_repo::Error,
3749    > {
3750        let response = self
3751            .xrpc
3752            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3753                method: http::Method::GET,
3754                nsid: crate::com::atproto::repo::describe_repo::NSID.into(),
3755                parameters: Some(params),
3756                input: None,
3757                encoding: None,
3758            })
3759            .await?;
3760        match response {
3761            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3762            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3763        }
3764    }
3765    ///Get a single record from a repository. Does not require auth.
3766    pub async fn get_record(
3767        &self,
3768        params: crate::com::atproto::repo::get_record::Parameters,
3769    ) -> atrium_xrpc::Result<
3770        crate::com::atproto::repo::get_record::Output,
3771        crate::com::atproto::repo::get_record::Error,
3772    > {
3773        let response = self
3774            .xrpc
3775            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3776                method: http::Method::GET,
3777                nsid: crate::com::atproto::repo::get_record::NSID.into(),
3778                parameters: Some(params),
3779                input: None,
3780                encoding: None,
3781            })
3782            .await?;
3783        match response {
3784            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3785            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3786        }
3787    }
3788    ///Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set.
3789    pub async fn import_repo(
3790        &self,
3791        input: Vec<u8>,
3792    ) -> atrium_xrpc::Result<(), crate::com::atproto::repo::import_repo::Error> {
3793        let response = self
3794            .xrpc
3795            .send_xrpc::<(), Vec<u8>, (), _>(&atrium_xrpc::XrpcRequest {
3796                method: http::Method::POST,
3797                nsid: crate::com::atproto::repo::import_repo::NSID.into(),
3798                parameters: None,
3799                input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
3800                encoding: Some(String::from("application/vnd.ipld.car")),
3801            })
3802            .await?;
3803        match response {
3804            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3805            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3806        }
3807    }
3808    ///Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow.
3809    pub async fn list_missing_blobs(
3810        &self,
3811        params: crate::com::atproto::repo::list_missing_blobs::Parameters,
3812    ) -> atrium_xrpc::Result<
3813        crate::com::atproto::repo::list_missing_blobs::Output,
3814        crate::com::atproto::repo::list_missing_blobs::Error,
3815    > {
3816        let response = self
3817            .xrpc
3818            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3819                method: http::Method::GET,
3820                nsid: crate::com::atproto::repo::list_missing_blobs::NSID.into(),
3821                parameters: Some(params),
3822                input: None,
3823                encoding: None,
3824            })
3825            .await?;
3826        match response {
3827            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3828            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3829        }
3830    }
3831    ///List a range of records in a repository, matching a specific collection. Does not require auth.
3832    pub async fn list_records(
3833        &self,
3834        params: crate::com::atproto::repo::list_records::Parameters,
3835    ) -> atrium_xrpc::Result<
3836        crate::com::atproto::repo::list_records::Output,
3837        crate::com::atproto::repo::list_records::Error,
3838    > {
3839        let response = self
3840            .xrpc
3841            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
3842                method: http::Method::GET,
3843                nsid: crate::com::atproto::repo::list_records::NSID.into(),
3844                parameters: Some(params),
3845                input: None,
3846                encoding: None,
3847            })
3848            .await?;
3849        match response {
3850            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3851            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3852        }
3853    }
3854    ///Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.
3855    pub async fn put_record(
3856        &self,
3857        input: crate::com::atproto::repo::put_record::Input,
3858    ) -> atrium_xrpc::Result<
3859        crate::com::atproto::repo::put_record::Output,
3860        crate::com::atproto::repo::put_record::Error,
3861    > {
3862        let response = self
3863            .xrpc
3864            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3865                method: http::Method::POST,
3866                nsid: crate::com::atproto::repo::put_record::NSID.into(),
3867                parameters: None,
3868                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3869                encoding: Some(String::from("application/json")),
3870            })
3871            .await?;
3872        match response {
3873            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3874            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3875        }
3876    }
3877    ///Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS.
3878    pub async fn upload_blob(
3879        &self,
3880        input: Vec<u8>,
3881    ) -> atrium_xrpc::Result<
3882        crate::com::atproto::repo::upload_blob::Output,
3883        crate::com::atproto::repo::upload_blob::Error,
3884    > {
3885        let response = self
3886            .xrpc
3887            .send_xrpc::<(), Vec<u8>, _, _>(&atrium_xrpc::XrpcRequest {
3888                method: http::Method::POST,
3889                nsid: crate::com::atproto::repo::upload_blob::NSID.into(),
3890                parameters: None,
3891                input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
3892                encoding: Some(String::from("*/*")),
3893            })
3894            .await?;
3895        match response {
3896            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3897            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3898        }
3899    }
3900}
3901impl<T> com::atproto::server::Service<T>
3902where
3903    T: atrium_xrpc::XrpcClient + Send + Sync,
3904{
3905    #[allow(unused_variables)]
3906    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3907        Self { xrpc, _phantom: core::marker::PhantomData }
3908    }
3909    ///Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup.
3910    pub async fn activate_account(
3911        &self,
3912    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::activate_account::Error> {
3913        let response = self
3914            .xrpc
3915            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
3916                method: http::Method::POST,
3917                nsid: crate::com::atproto::server::activate_account::NSID.into(),
3918                parameters: None,
3919                input: None,
3920                encoding: None,
3921            })
3922            .await?;
3923        match response {
3924            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3925            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3926        }
3927    }
3928    ///Returns the status of an account, especially as pertaining to import or recovery. Can be called many times over the course of an account migration. Requires auth and can only be called pertaining to oneself.
3929    pub async fn check_account_status(
3930        &self,
3931    ) -> atrium_xrpc::Result<
3932        crate::com::atproto::server::check_account_status::Output,
3933        crate::com::atproto::server::check_account_status::Error,
3934    > {
3935        let response = self
3936            .xrpc
3937            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
3938                method: http::Method::GET,
3939                nsid: crate::com::atproto::server::check_account_status::NSID.into(),
3940                parameters: None,
3941                input: None,
3942                encoding: None,
3943            })
3944            .await?;
3945        match response {
3946            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3947            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3948        }
3949    }
3950    ///Confirm an email using a token from com.atproto.server.requestEmailConfirmation.
3951    pub async fn confirm_email(
3952        &self,
3953        input: crate::com::atproto::server::confirm_email::Input,
3954    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::confirm_email::Error> {
3955        let response = self
3956            .xrpc
3957            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
3958                method: http::Method::POST,
3959                nsid: crate::com::atproto::server::confirm_email::NSID.into(),
3960                parameters: None,
3961                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3962                encoding: Some(String::from("application/json")),
3963            })
3964            .await?;
3965        match response {
3966            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3967            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3968        }
3969    }
3970    ///Create an account. Implemented by PDS.
3971    pub async fn create_account(
3972        &self,
3973        input: crate::com::atproto::server::create_account::Input,
3974    ) -> atrium_xrpc::Result<
3975        crate::com::atproto::server::create_account::Output,
3976        crate::com::atproto::server::create_account::Error,
3977    > {
3978        let response = self
3979            .xrpc
3980            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
3981                method: http::Method::POST,
3982                nsid: crate::com::atproto::server::create_account::NSID.into(),
3983                parameters: None,
3984                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3985                encoding: Some(String::from("application/json")),
3986            })
3987            .await?;
3988        match response {
3989            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3990            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3991        }
3992    }
3993    ///Create an App Password.
3994    pub async fn create_app_password(
3995        &self,
3996        input: crate::com::atproto::server::create_app_password::Input,
3997    ) -> atrium_xrpc::Result<
3998        crate::com::atproto::server::create_app_password::Output,
3999        crate::com::atproto::server::create_app_password::Error,
4000    > {
4001        let response = self
4002            .xrpc
4003            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4004                method: http::Method::POST,
4005                nsid: crate::com::atproto::server::create_app_password::NSID.into(),
4006                parameters: None,
4007                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4008                encoding: Some(String::from("application/json")),
4009            })
4010            .await?;
4011        match response {
4012            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4013            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4014        }
4015    }
4016    ///Create an invite code.
4017    pub async fn create_invite_code(
4018        &self,
4019        input: crate::com::atproto::server::create_invite_code::Input,
4020    ) -> atrium_xrpc::Result<
4021        crate::com::atproto::server::create_invite_code::Output,
4022        crate::com::atproto::server::create_invite_code::Error,
4023    > {
4024        let response = self
4025            .xrpc
4026            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4027                method: http::Method::POST,
4028                nsid: crate::com::atproto::server::create_invite_code::NSID.into(),
4029                parameters: None,
4030                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4031                encoding: Some(String::from("application/json")),
4032            })
4033            .await?;
4034        match response {
4035            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4036            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4037        }
4038    }
4039    ///Create invite codes.
4040    pub async fn create_invite_codes(
4041        &self,
4042        input: crate::com::atproto::server::create_invite_codes::Input,
4043    ) -> atrium_xrpc::Result<
4044        crate::com::atproto::server::create_invite_codes::Output,
4045        crate::com::atproto::server::create_invite_codes::Error,
4046    > {
4047        let response = self
4048            .xrpc
4049            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4050                method: http::Method::POST,
4051                nsid: crate::com::atproto::server::create_invite_codes::NSID.into(),
4052                parameters: None,
4053                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4054                encoding: Some(String::from("application/json")),
4055            })
4056            .await?;
4057        match response {
4058            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4059            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4060        }
4061    }
4062    ///Create an authentication session.
4063    pub async fn create_session(
4064        &self,
4065        input: crate::com::atproto::server::create_session::Input,
4066    ) -> atrium_xrpc::Result<
4067        crate::com::atproto::server::create_session::Output,
4068        crate::com::atproto::server::create_session::Error,
4069    > {
4070        let response = self
4071            .xrpc
4072            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4073                method: http::Method::POST,
4074                nsid: crate::com::atproto::server::create_session::NSID.into(),
4075                parameters: None,
4076                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4077                encoding: Some(String::from("application/json")),
4078            })
4079            .await?;
4080        match response {
4081            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4082            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4083        }
4084    }
4085    ///Deactivates a currently active account. Stops serving of repo, and future writes to repo until reactivated. Used to finalize account migration with the old host after the account has been activated on the new host.
4086    pub async fn deactivate_account(
4087        &self,
4088        input: crate::com::atproto::server::deactivate_account::Input,
4089    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::deactivate_account::Error> {
4090        let response = self
4091            .xrpc
4092            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4093                method: http::Method::POST,
4094                nsid: crate::com::atproto::server::deactivate_account::NSID.into(),
4095                parameters: None,
4096                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4097                encoding: Some(String::from("application/json")),
4098            })
4099            .await?;
4100        match response {
4101            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4102            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4103        }
4104    }
4105    ///Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.
4106    pub async fn delete_account(
4107        &self,
4108        input: crate::com::atproto::server::delete_account::Input,
4109    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_account::Error> {
4110        let response = self
4111            .xrpc
4112            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4113                method: http::Method::POST,
4114                nsid: crate::com::atproto::server::delete_account::NSID.into(),
4115                parameters: None,
4116                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4117                encoding: Some(String::from("application/json")),
4118            })
4119            .await?;
4120        match response {
4121            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4122            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4123        }
4124    }
4125    ///Delete the current session. Requires auth.
4126    pub async fn delete_session(
4127        &self,
4128    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_session::Error> {
4129        let response = self
4130            .xrpc
4131            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
4132                method: http::Method::POST,
4133                nsid: crate::com::atproto::server::delete_session::NSID.into(),
4134                parameters: None,
4135                input: None,
4136                encoding: None,
4137            })
4138            .await?;
4139        match response {
4140            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4141            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4142        }
4143    }
4144    ///Describes the server's account creation requirements and capabilities. Implemented by PDS.
4145    pub async fn describe_server(
4146        &self,
4147    ) -> atrium_xrpc::Result<
4148        crate::com::atproto::server::describe_server::Output,
4149        crate::com::atproto::server::describe_server::Error,
4150    > {
4151        let response = self
4152            .xrpc
4153            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4154                method: http::Method::GET,
4155                nsid: crate::com::atproto::server::describe_server::NSID.into(),
4156                parameters: None,
4157                input: None,
4158                encoding: None,
4159            })
4160            .await?;
4161        match response {
4162            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4163            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4164        }
4165    }
4166    ///Get all invite codes for the current account. Requires auth.
4167    pub async fn get_account_invite_codes(
4168        &self,
4169        params: crate::com::atproto::server::get_account_invite_codes::Parameters,
4170    ) -> atrium_xrpc::Result<
4171        crate::com::atproto::server::get_account_invite_codes::Output,
4172        crate::com::atproto::server::get_account_invite_codes::Error,
4173    > {
4174        let response = self
4175            .xrpc
4176            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4177                method: http::Method::GET,
4178                nsid: crate::com::atproto::server::get_account_invite_codes::NSID.into(),
4179                parameters: Some(params),
4180                input: None,
4181                encoding: None,
4182            })
4183            .await?;
4184        match response {
4185            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4186            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4187        }
4188    }
4189    ///Get a signed token on behalf of the requesting DID for the requested service.
4190    pub async fn get_service_auth(
4191        &self,
4192        params: crate::com::atproto::server::get_service_auth::Parameters,
4193    ) -> atrium_xrpc::Result<
4194        crate::com::atproto::server::get_service_auth::Output,
4195        crate::com::atproto::server::get_service_auth::Error,
4196    > {
4197        let response = self
4198            .xrpc
4199            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4200                method: http::Method::GET,
4201                nsid: crate::com::atproto::server::get_service_auth::NSID.into(),
4202                parameters: Some(params),
4203                input: None,
4204                encoding: None,
4205            })
4206            .await?;
4207        match response {
4208            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4209            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4210        }
4211    }
4212    ///Get information about the current auth session. Requires auth.
4213    pub async fn get_session(
4214        &self,
4215    ) -> atrium_xrpc::Result<
4216        crate::com::atproto::server::get_session::Output,
4217        crate::com::atproto::server::get_session::Error,
4218    > {
4219        let response = self
4220            .xrpc
4221            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4222                method: http::Method::GET,
4223                nsid: crate::com::atproto::server::get_session::NSID.into(),
4224                parameters: None,
4225                input: None,
4226                encoding: None,
4227            })
4228            .await?;
4229        match response {
4230            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4231            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4232        }
4233    }
4234    ///List all App Passwords.
4235    pub async fn list_app_passwords(
4236        &self,
4237    ) -> atrium_xrpc::Result<
4238        crate::com::atproto::server::list_app_passwords::Output,
4239        crate::com::atproto::server::list_app_passwords::Error,
4240    > {
4241        let response = self
4242            .xrpc
4243            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4244                method: http::Method::GET,
4245                nsid: crate::com::atproto::server::list_app_passwords::NSID.into(),
4246                parameters: None,
4247                input: None,
4248                encoding: None,
4249            })
4250            .await?;
4251        match response {
4252            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4253            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4254        }
4255    }
4256    ///Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').
4257    pub async fn refresh_session(
4258        &self,
4259    ) -> atrium_xrpc::Result<
4260        crate::com::atproto::server::refresh_session::Output,
4261        crate::com::atproto::server::refresh_session::Error,
4262    > {
4263        let response = self
4264            .xrpc
4265            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4266                method: http::Method::POST,
4267                nsid: crate::com::atproto::server::refresh_session::NSID.into(),
4268                parameters: None,
4269                input: None,
4270                encoding: None,
4271            })
4272            .await?;
4273        match response {
4274            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4275            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4276        }
4277    }
4278    ///Initiate a user account deletion via email.
4279    pub async fn request_account_delete(
4280        &self,
4281    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::request_account_delete::Error> {
4282        let response = self
4283            .xrpc
4284            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
4285                method: http::Method::POST,
4286                nsid: crate::com::atproto::server::request_account_delete::NSID.into(),
4287                parameters: None,
4288                input: None,
4289                encoding: None,
4290            })
4291            .await?;
4292        match response {
4293            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4294            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4295        }
4296    }
4297    ///Request an email with a code to confirm ownership of email.
4298    pub async fn request_email_confirmation(
4299        &self,
4300    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::request_email_confirmation::Error>
4301    {
4302        let response = self
4303            .xrpc
4304            .send_xrpc::<(), (), (), _>(&atrium_xrpc::XrpcRequest {
4305                method: http::Method::POST,
4306                nsid: crate::com::atproto::server::request_email_confirmation::NSID.into(),
4307                parameters: None,
4308                input: None,
4309                encoding: None,
4310            })
4311            .await?;
4312        match response {
4313            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4314            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4315        }
4316    }
4317    ///Request a token in order to update email.
4318    pub async fn request_email_update(
4319        &self,
4320    ) -> atrium_xrpc::Result<
4321        crate::com::atproto::server::request_email_update::Output,
4322        crate::com::atproto::server::request_email_update::Error,
4323    > {
4324        let response = self
4325            .xrpc
4326            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4327                method: http::Method::POST,
4328                nsid: crate::com::atproto::server::request_email_update::NSID.into(),
4329                parameters: None,
4330                input: None,
4331                encoding: None,
4332            })
4333            .await?;
4334        match response {
4335            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4336            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4337        }
4338    }
4339    ///Initiate a user account password reset via email.
4340    pub async fn request_password_reset(
4341        &self,
4342        input: crate::com::atproto::server::request_password_reset::Input,
4343    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::request_password_reset::Error> {
4344        let response = self
4345            .xrpc
4346            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4347                method: http::Method::POST,
4348                nsid: crate::com::atproto::server::request_password_reset::NSID.into(),
4349                parameters: None,
4350                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4351                encoding: Some(String::from("application/json")),
4352            })
4353            .await?;
4354        match response {
4355            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4356            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4357        }
4358    }
4359    ///Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.
4360    pub async fn reserve_signing_key(
4361        &self,
4362        input: crate::com::atproto::server::reserve_signing_key::Input,
4363    ) -> atrium_xrpc::Result<
4364        crate::com::atproto::server::reserve_signing_key::Output,
4365        crate::com::atproto::server::reserve_signing_key::Error,
4366    > {
4367        let response = self
4368            .xrpc
4369            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4370                method: http::Method::POST,
4371                nsid: crate::com::atproto::server::reserve_signing_key::NSID.into(),
4372                parameters: None,
4373                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4374                encoding: Some(String::from("application/json")),
4375            })
4376            .await?;
4377        match response {
4378            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4379            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4380        }
4381    }
4382    ///Reset a user account password using a token.
4383    pub async fn reset_password(
4384        &self,
4385        input: crate::com::atproto::server::reset_password::Input,
4386    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::reset_password::Error> {
4387        let response = self
4388            .xrpc
4389            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4390                method: http::Method::POST,
4391                nsid: crate::com::atproto::server::reset_password::NSID.into(),
4392                parameters: None,
4393                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4394                encoding: Some(String::from("application/json")),
4395            })
4396            .await?;
4397        match response {
4398            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4399            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4400        }
4401    }
4402    ///Revoke an App Password by name.
4403    pub async fn revoke_app_password(
4404        &self,
4405        input: crate::com::atproto::server::revoke_app_password::Input,
4406    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::revoke_app_password::Error> {
4407        let response = self
4408            .xrpc
4409            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4410                method: http::Method::POST,
4411                nsid: crate::com::atproto::server::revoke_app_password::NSID.into(),
4412                parameters: None,
4413                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4414                encoding: Some(String::from("application/json")),
4415            })
4416            .await?;
4417        match response {
4418            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4419            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4420        }
4421    }
4422    ///Update an account's email.
4423    pub async fn update_email(
4424        &self,
4425        input: crate::com::atproto::server::update_email::Input,
4426    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::update_email::Error> {
4427        let response = self
4428            .xrpc
4429            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4430                method: http::Method::POST,
4431                nsid: crate::com::atproto::server::update_email::NSID.into(),
4432                parameters: None,
4433                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4434                encoding: Some(String::from("application/json")),
4435            })
4436            .await?;
4437        match response {
4438            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4439            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4440        }
4441    }
4442}
4443impl<T> com::atproto::sync::Service<T>
4444where
4445    T: atrium_xrpc::XrpcClient + Send + Sync,
4446{
4447    #[allow(unused_variables)]
4448    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4449        Self { xrpc, _phantom: core::marker::PhantomData }
4450    }
4451    ///Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.
4452    pub async fn get_blob(
4453        &self,
4454        params: crate::com::atproto::sync::get_blob::Parameters,
4455    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blob::Error> {
4456        let response = self
4457            .xrpc
4458            .send_xrpc::<_, (), (), _>(&atrium_xrpc::XrpcRequest {
4459                method: http::Method::GET,
4460                nsid: crate::com::atproto::sync::get_blob::NSID.into(),
4461                parameters: Some(params),
4462                input: None,
4463                encoding: None,
4464            })
4465            .await?;
4466        match response {
4467            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4468            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4469        }
4470    }
4471    ///Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.
4472    pub async fn get_blocks(
4473        &self,
4474        params: crate::com::atproto::sync::get_blocks::Parameters,
4475    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blocks::Error> {
4476        let response = self
4477            .xrpc
4478            .send_xrpc::<_, (), (), _>(&atrium_xrpc::XrpcRequest {
4479                method: http::Method::GET,
4480                nsid: crate::com::atproto::sync::get_blocks::NSID.into(),
4481                parameters: Some(params),
4482                input: None,
4483                encoding: None,
4484            })
4485            .await?;
4486        match response {
4487            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4488            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4489        }
4490    }
4491    ///DEPRECATED - please use com.atproto.sync.getRepo instead
4492    pub async fn get_checkout(
4493        &self,
4494        params: crate::com::atproto::sync::get_checkout::Parameters,
4495    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_checkout::Error> {
4496        let response = self
4497            .xrpc
4498            .send_xrpc::<_, (), (), _>(&atrium_xrpc::XrpcRequest {
4499                method: http::Method::GET,
4500                nsid: crate::com::atproto::sync::get_checkout::NSID.into(),
4501                parameters: Some(params),
4502                input: None,
4503                encoding: None,
4504            })
4505            .await?;
4506        match response {
4507            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4508            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4509        }
4510    }
4511    ///DEPRECATED - please use com.atproto.sync.getLatestCommit instead
4512    pub async fn get_head(
4513        &self,
4514        params: crate::com::atproto::sync::get_head::Parameters,
4515    ) -> atrium_xrpc::Result<
4516        crate::com::atproto::sync::get_head::Output,
4517        crate::com::atproto::sync::get_head::Error,
4518    > {
4519        let response = self
4520            .xrpc
4521            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4522                method: http::Method::GET,
4523                nsid: crate::com::atproto::sync::get_head::NSID.into(),
4524                parameters: Some(params),
4525                input: None,
4526                encoding: None,
4527            })
4528            .await?;
4529        match response {
4530            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4531            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4532        }
4533    }
4534    ///Returns information about a specified upstream host, as consumed by the server. Implemented by relays.
4535    pub async fn get_host_status(
4536        &self,
4537        params: crate::com::atproto::sync::get_host_status::Parameters,
4538    ) -> atrium_xrpc::Result<
4539        crate::com::atproto::sync::get_host_status::Output,
4540        crate::com::atproto::sync::get_host_status::Error,
4541    > {
4542        let response = self
4543            .xrpc
4544            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4545                method: http::Method::GET,
4546                nsid: crate::com::atproto::sync::get_host_status::NSID.into(),
4547                parameters: Some(params),
4548                input: None,
4549                encoding: None,
4550            })
4551            .await?;
4552        match response {
4553            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4554            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4555        }
4556    }
4557    ///Get the current commit CID & revision of the specified repo. Does not require auth.
4558    pub async fn get_latest_commit(
4559        &self,
4560        params: crate::com::atproto::sync::get_latest_commit::Parameters,
4561    ) -> atrium_xrpc::Result<
4562        crate::com::atproto::sync::get_latest_commit::Output,
4563        crate::com::atproto::sync::get_latest_commit::Error,
4564    > {
4565        let response = self
4566            .xrpc
4567            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4568                method: http::Method::GET,
4569                nsid: crate::com::atproto::sync::get_latest_commit::NSID.into(),
4570                parameters: Some(params),
4571                input: None,
4572                encoding: None,
4573            })
4574            .await?;
4575        match response {
4576            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4577            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4578        }
4579    }
4580    ///Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.
4581    pub async fn get_record(
4582        &self,
4583        params: crate::com::atproto::sync::get_record::Parameters,
4584    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_record::Error> {
4585        let response = self
4586            .xrpc
4587            .send_xrpc::<_, (), (), _>(&atrium_xrpc::XrpcRequest {
4588                method: http::Method::GET,
4589                nsid: crate::com::atproto::sync::get_record::NSID.into(),
4590                parameters: Some(params),
4591                input: None,
4592                encoding: None,
4593            })
4594            .await?;
4595        match response {
4596            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4597            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4598        }
4599    }
4600    ///Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.
4601    pub async fn get_repo(
4602        &self,
4603        params: crate::com::atproto::sync::get_repo::Parameters,
4604    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_repo::Error> {
4605        let response = self
4606            .xrpc
4607            .send_xrpc::<_, (), (), _>(&atrium_xrpc::XrpcRequest {
4608                method: http::Method::GET,
4609                nsid: crate::com::atproto::sync::get_repo::NSID.into(),
4610                parameters: Some(params),
4611                input: None,
4612                encoding: None,
4613            })
4614            .await?;
4615        match response {
4616            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4617            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4618        }
4619    }
4620    ///Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay.
4621    pub async fn get_repo_status(
4622        &self,
4623        params: crate::com::atproto::sync::get_repo_status::Parameters,
4624    ) -> atrium_xrpc::Result<
4625        crate::com::atproto::sync::get_repo_status::Output,
4626        crate::com::atproto::sync::get_repo_status::Error,
4627    > {
4628        let response = self
4629            .xrpc
4630            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4631                method: http::Method::GET,
4632                nsid: crate::com::atproto::sync::get_repo_status::NSID.into(),
4633                parameters: Some(params),
4634                input: None,
4635                encoding: None,
4636            })
4637            .await?;
4638        match response {
4639            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4640            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4641        }
4642    }
4643    ///List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS.
4644    pub async fn list_blobs(
4645        &self,
4646        params: crate::com::atproto::sync::list_blobs::Parameters,
4647    ) -> atrium_xrpc::Result<
4648        crate::com::atproto::sync::list_blobs::Output,
4649        crate::com::atproto::sync::list_blobs::Error,
4650    > {
4651        let response = self
4652            .xrpc
4653            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4654                method: http::Method::GET,
4655                nsid: crate::com::atproto::sync::list_blobs::NSID.into(),
4656                parameters: Some(params),
4657                input: None,
4658                encoding: None,
4659            })
4660            .await?;
4661        match response {
4662            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4663            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4664        }
4665    }
4666    ///Enumerates upstream hosts (eg, PDS or relay instances) that this service consumes from. Implemented by relays.
4667    pub async fn list_hosts(
4668        &self,
4669        params: crate::com::atproto::sync::list_hosts::Parameters,
4670    ) -> atrium_xrpc::Result<
4671        crate::com::atproto::sync::list_hosts::Output,
4672        crate::com::atproto::sync::list_hosts::Error,
4673    > {
4674        let response = self
4675            .xrpc
4676            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4677                method: http::Method::GET,
4678                nsid: crate::com::atproto::sync::list_hosts::NSID.into(),
4679                parameters: Some(params),
4680                input: None,
4681                encoding: None,
4682            })
4683            .await?;
4684        match response {
4685            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4686            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4687        }
4688    }
4689    ///Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.
4690    pub async fn list_repos(
4691        &self,
4692        params: crate::com::atproto::sync::list_repos::Parameters,
4693    ) -> atrium_xrpc::Result<
4694        crate::com::atproto::sync::list_repos::Output,
4695        crate::com::atproto::sync::list_repos::Error,
4696    > {
4697        let response = self
4698            .xrpc
4699            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4700                method: http::Method::GET,
4701                nsid: crate::com::atproto::sync::list_repos::NSID.into(),
4702                parameters: Some(params),
4703                input: None,
4704                encoding: None,
4705            })
4706            .await?;
4707        match response {
4708            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4709            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4710        }
4711    }
4712    ///Enumerates all the DIDs which have records with the given collection NSID.
4713    pub async fn list_repos_by_collection(
4714        &self,
4715        params: crate::com::atproto::sync::list_repos_by_collection::Parameters,
4716    ) -> atrium_xrpc::Result<
4717        crate::com::atproto::sync::list_repos_by_collection::Output,
4718        crate::com::atproto::sync::list_repos_by_collection::Error,
4719    > {
4720        let response = self
4721            .xrpc
4722            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4723                method: http::Method::GET,
4724                nsid: crate::com::atproto::sync::list_repos_by_collection::NSID.into(),
4725                parameters: Some(params),
4726                input: None,
4727                encoding: None,
4728            })
4729            .await?;
4730        match response {
4731            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4732            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4733        }
4734    }
4735    ///Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay. DEPRECATED: just use com.atproto.sync.requestCrawl
4736    pub async fn notify_of_update(
4737        &self,
4738        input: crate::com::atproto::sync::notify_of_update::Input,
4739    ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::notify_of_update::Error> {
4740        let response = self
4741            .xrpc
4742            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4743                method: http::Method::POST,
4744                nsid: crate::com::atproto::sync::notify_of_update::NSID.into(),
4745                parameters: None,
4746                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4747                encoding: Some(String::from("application/json")),
4748            })
4749            .await?;
4750        match response {
4751            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4752            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4753        }
4754    }
4755    ///Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth.
4756    pub async fn request_crawl(
4757        &self,
4758        input: crate::com::atproto::sync::request_crawl::Input,
4759    ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::request_crawl::Error> {
4760        let response = self
4761            .xrpc
4762            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4763                method: http::Method::POST,
4764                nsid: crate::com::atproto::sync::request_crawl::NSID.into(),
4765                parameters: None,
4766                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4767                encoding: Some(String::from("application/json")),
4768            })
4769            .await?;
4770        match response {
4771            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4772            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4773        }
4774    }
4775}
4776impl<T> com::atproto::temp::Service<T>
4777where
4778    T: atrium_xrpc::XrpcClient + Send + Sync,
4779{
4780    #[allow(unused_variables)]
4781    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4782        Self { xrpc, _phantom: core::marker::PhantomData }
4783    }
4784    ///Add a handle to the set of reserved handles.
4785    pub async fn add_reserved_handle(
4786        &self,
4787        input: crate::com::atproto::temp::add_reserved_handle::Input,
4788    ) -> atrium_xrpc::Result<
4789        crate::com::atproto::temp::add_reserved_handle::Output,
4790        crate::com::atproto::temp::add_reserved_handle::Error,
4791    > {
4792        let response = self
4793            .xrpc
4794            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4795                method: http::Method::POST,
4796                nsid: crate::com::atproto::temp::add_reserved_handle::NSID.into(),
4797                parameters: None,
4798                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4799                encoding: Some(String::from("application/json")),
4800            })
4801            .await?;
4802        match response {
4803            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4804            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4805        }
4806    }
4807    ///Checks whether the provided handle is available. If the handle is not available, available suggestions will be returned. Optional inputs will be used to generate suggestions.
4808    pub async fn check_handle_availability(
4809        &self,
4810        params: crate::com::atproto::temp::check_handle_availability::Parameters,
4811    ) -> atrium_xrpc::Result<
4812        crate::com::atproto::temp::check_handle_availability::Output,
4813        crate::com::atproto::temp::check_handle_availability::Error,
4814    > {
4815        let response = self
4816            .xrpc
4817            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4818                method: http::Method::GET,
4819                nsid: crate::com::atproto::temp::check_handle_availability::NSID.into(),
4820                parameters: Some(params),
4821                input: None,
4822                encoding: None,
4823            })
4824            .await?;
4825        match response {
4826            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4827            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4828        }
4829    }
4830    ///Check accounts location in signup queue.
4831    pub async fn check_signup_queue(
4832        &self,
4833    ) -> atrium_xrpc::Result<
4834        crate::com::atproto::temp::check_signup_queue::Output,
4835        crate::com::atproto::temp::check_signup_queue::Error,
4836    > {
4837        let response = self
4838            .xrpc
4839            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
4840                method: http::Method::GET,
4841                nsid: crate::com::atproto::temp::check_signup_queue::NSID.into(),
4842                parameters: None,
4843                input: None,
4844                encoding: None,
4845            })
4846            .await?;
4847        match response {
4848            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4849            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4850        }
4851    }
4852    ///Allows finding the oauth permission scope from a reference
4853    pub async fn dereference_scope(
4854        &self,
4855        params: crate::com::atproto::temp::dereference_scope::Parameters,
4856    ) -> atrium_xrpc::Result<
4857        crate::com::atproto::temp::dereference_scope::Output,
4858        crate::com::atproto::temp::dereference_scope::Error,
4859    > {
4860        let response = self
4861            .xrpc
4862            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4863                method: http::Method::GET,
4864                nsid: crate::com::atproto::temp::dereference_scope::NSID.into(),
4865                parameters: Some(params),
4866                input: None,
4867                encoding: None,
4868            })
4869            .await?;
4870        match response {
4871            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4872            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4873        }
4874    }
4875    ///DEPRECATED: use queryLabels or subscribeLabels instead -- Fetch all labels from a labeler created after a certain date.
4876    pub async fn fetch_labels(
4877        &self,
4878        params: crate::com::atproto::temp::fetch_labels::Parameters,
4879    ) -> atrium_xrpc::Result<
4880        crate::com::atproto::temp::fetch_labels::Output,
4881        crate::com::atproto::temp::fetch_labels::Error,
4882    > {
4883        let response = self
4884            .xrpc
4885            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
4886                method: http::Method::GET,
4887                nsid: crate::com::atproto::temp::fetch_labels::NSID.into(),
4888                parameters: Some(params),
4889                input: None,
4890                encoding: None,
4891            })
4892            .await?;
4893        match response {
4894            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4895            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4896        }
4897    }
4898    ///Request a verification code to be sent to the supplied phone number
4899    pub async fn request_phone_verification(
4900        &self,
4901        input: crate::com::atproto::temp::request_phone_verification::Input,
4902    ) -> atrium_xrpc::Result<(), crate::com::atproto::temp::request_phone_verification::Error> {
4903        let response = self
4904            .xrpc
4905            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4906                method: http::Method::POST,
4907                nsid: crate::com::atproto::temp::request_phone_verification::NSID.into(),
4908                parameters: None,
4909                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4910                encoding: Some(String::from("application/json")),
4911            })
4912            .await?;
4913        match response {
4914            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4915            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4916        }
4917    }
4918    ///Revoke sessions, password, and app passwords associated with account. May be resolved by a password reset.
4919    pub async fn revoke_account_credentials(
4920        &self,
4921        input: crate::com::atproto::temp::revoke_account_credentials::Input,
4922    ) -> atrium_xrpc::Result<(), crate::com::atproto::temp::revoke_account_credentials::Error> {
4923        let response = self
4924            .xrpc
4925            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
4926                method: http::Method::POST,
4927                nsid: crate::com::atproto::temp::revoke_account_credentials::NSID.into(),
4928                parameters: None,
4929                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4930                encoding: Some(String::from("application/json")),
4931            })
4932            .await?;
4933        match response {
4934            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
4935            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4936        }
4937    }
4938}
4939impl<T> tools::Service<T>
4940where
4941    T: atrium_xrpc::XrpcClient + Send + Sync,
4942{
4943    #[allow(unused_variables)]
4944    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4945        Self {
4946            #[cfg(feature = "namespace-toolsozone")]
4947            ozone: tools::ozone::Service::new(std::sync::Arc::clone(&xrpc)),
4948            _phantom: core::marker::PhantomData,
4949        }
4950    }
4951}
4952#[cfg(feature = "namespace-toolsozone")]
4953impl<T> tools::ozone::Service<T>
4954where
4955    T: atrium_xrpc::XrpcClient + Send + Sync,
4956{
4957    #[allow(unused_variables)]
4958    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4959        Self {
4960            communication: tools::ozone::communication::Service::new(std::sync::Arc::clone(&xrpc)),
4961            hosting: tools::ozone::hosting::Service::new(std::sync::Arc::clone(&xrpc)),
4962            moderation: tools::ozone::moderation::Service::new(std::sync::Arc::clone(&xrpc)),
4963            safelink: tools::ozone::safelink::Service::new(std::sync::Arc::clone(&xrpc)),
4964            server: tools::ozone::server::Service::new(std::sync::Arc::clone(&xrpc)),
4965            set: tools::ozone::set::Service::new(std::sync::Arc::clone(&xrpc)),
4966            setting: tools::ozone::setting::Service::new(std::sync::Arc::clone(&xrpc)),
4967            signature: tools::ozone::signature::Service::new(std::sync::Arc::clone(&xrpc)),
4968            team: tools::ozone::team::Service::new(std::sync::Arc::clone(&xrpc)),
4969            verification: tools::ozone::verification::Service::new(std::sync::Arc::clone(&xrpc)),
4970            _phantom: core::marker::PhantomData,
4971        }
4972    }
4973}
4974#[cfg(feature = "namespace-toolsozone")]
4975impl<T> tools::ozone::communication::Service<T>
4976where
4977    T: atrium_xrpc::XrpcClient + Send + Sync,
4978{
4979    #[allow(unused_variables)]
4980    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4981        Self { xrpc, _phantom: core::marker::PhantomData }
4982    }
4983    ///Administrative action to create a new, re-usable communication (email for now) template.
4984    pub async fn create_template(
4985        &self,
4986        input: crate::tools::ozone::communication::create_template::Input,
4987    ) -> atrium_xrpc::Result<
4988        crate::tools::ozone::communication::create_template::Output,
4989        crate::tools::ozone::communication::create_template::Error,
4990    > {
4991        let response = self
4992            .xrpc
4993            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
4994                method: http::Method::POST,
4995                nsid: crate::tools::ozone::communication::create_template::NSID.into(),
4996                parameters: None,
4997                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4998                encoding: Some(String::from("application/json")),
4999            })
5000            .await?;
5001        match response {
5002            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5003            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5004        }
5005    }
5006    ///Delete a communication template.
5007    pub async fn delete_template(
5008        &self,
5009        input: crate::tools::ozone::communication::delete_template::Input,
5010    ) -> atrium_xrpc::Result<(), crate::tools::ozone::communication::delete_template::Error> {
5011        let response = self
5012            .xrpc
5013            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
5014                method: http::Method::POST,
5015                nsid: crate::tools::ozone::communication::delete_template::NSID.into(),
5016                parameters: None,
5017                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5018                encoding: Some(String::from("application/json")),
5019            })
5020            .await?;
5021        match response {
5022            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5023            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5024        }
5025    }
5026    ///Get list of all communication templates.
5027    pub async fn list_templates(
5028        &self,
5029    ) -> atrium_xrpc::Result<
5030        crate::tools::ozone::communication::list_templates::Output,
5031        crate::tools::ozone::communication::list_templates::Error,
5032    > {
5033        let response = self
5034            .xrpc
5035            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
5036                method: http::Method::GET,
5037                nsid: crate::tools::ozone::communication::list_templates::NSID.into(),
5038                parameters: None,
5039                input: None,
5040                encoding: None,
5041            })
5042            .await?;
5043        match response {
5044            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5045            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5046        }
5047    }
5048    ///Administrative action to update an existing communication template. Allows passing partial fields to patch specific fields only.
5049    pub async fn update_template(
5050        &self,
5051        input: crate::tools::ozone::communication::update_template::Input,
5052    ) -> atrium_xrpc::Result<
5053        crate::tools::ozone::communication::update_template::Output,
5054        crate::tools::ozone::communication::update_template::Error,
5055    > {
5056        let response = self
5057            .xrpc
5058            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5059                method: http::Method::POST,
5060                nsid: crate::tools::ozone::communication::update_template::NSID.into(),
5061                parameters: None,
5062                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5063                encoding: Some(String::from("application/json")),
5064            })
5065            .await?;
5066        match response {
5067            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5068            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5069        }
5070    }
5071}
5072#[cfg(feature = "namespace-toolsozone")]
5073impl<T> tools::ozone::hosting::Service<T>
5074where
5075    T: atrium_xrpc::XrpcClient + Send + Sync,
5076{
5077    #[allow(unused_variables)]
5078    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5079        Self { xrpc, _phantom: core::marker::PhantomData }
5080    }
5081    ///Get account history, e.g. log of updated email addresses or other identity information.
5082    pub async fn get_account_history(
5083        &self,
5084        params: crate::tools::ozone::hosting::get_account_history::Parameters,
5085    ) -> atrium_xrpc::Result<
5086        crate::tools::ozone::hosting::get_account_history::Output,
5087        crate::tools::ozone::hosting::get_account_history::Error,
5088    > {
5089        let response = self
5090            .xrpc
5091            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5092                method: http::Method::GET,
5093                nsid: crate::tools::ozone::hosting::get_account_history::NSID.into(),
5094                parameters: Some(params),
5095                input: None,
5096                encoding: None,
5097            })
5098            .await?;
5099        match response {
5100            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5101            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5102        }
5103    }
5104}
5105#[cfg(feature = "namespace-toolsozone")]
5106impl<T> tools::ozone::moderation::Service<T>
5107where
5108    T: atrium_xrpc::XrpcClient + Send + Sync,
5109{
5110    #[allow(unused_variables)]
5111    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5112        Self { xrpc, _phantom: core::marker::PhantomData }
5113    }
5114    ///Take a moderation action on an actor.
5115    pub async fn emit_event(
5116        &self,
5117        input: crate::tools::ozone::moderation::emit_event::Input,
5118    ) -> atrium_xrpc::Result<
5119        crate::tools::ozone::moderation::emit_event::Output,
5120        crate::tools::ozone::moderation::emit_event::Error,
5121    > {
5122        let response = self
5123            .xrpc
5124            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5125                method: http::Method::POST,
5126                nsid: crate::tools::ozone::moderation::emit_event::NSID.into(),
5127                parameters: None,
5128                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5129                encoding: Some(String::from("application/json")),
5130            })
5131            .await?;
5132        match response {
5133            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5134            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5135        }
5136    }
5137    ///Get timeline of all available events of an account. This includes moderation events, account history and did history.
5138    pub async fn get_account_timeline(
5139        &self,
5140        params: crate::tools::ozone::moderation::get_account_timeline::Parameters,
5141    ) -> atrium_xrpc::Result<
5142        crate::tools::ozone::moderation::get_account_timeline::Output,
5143        crate::tools::ozone::moderation::get_account_timeline::Error,
5144    > {
5145        let response = self
5146            .xrpc
5147            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5148                method: http::Method::GET,
5149                nsid: crate::tools::ozone::moderation::get_account_timeline::NSID.into(),
5150                parameters: Some(params),
5151                input: None,
5152                encoding: None,
5153            })
5154            .await?;
5155        match response {
5156            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5157            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5158        }
5159    }
5160    ///Get details about a moderation event.
5161    pub async fn get_event(
5162        &self,
5163        params: crate::tools::ozone::moderation::get_event::Parameters,
5164    ) -> atrium_xrpc::Result<
5165        crate::tools::ozone::moderation::get_event::Output,
5166        crate::tools::ozone::moderation::get_event::Error,
5167    > {
5168        let response = self
5169            .xrpc
5170            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5171                method: http::Method::GET,
5172                nsid: crate::tools::ozone::moderation::get_event::NSID.into(),
5173                parameters: Some(params),
5174                input: None,
5175                encoding: None,
5176            })
5177            .await?;
5178        match response {
5179            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5180            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5181        }
5182    }
5183    ///Get details about a record.
5184    pub async fn get_record(
5185        &self,
5186        params: crate::tools::ozone::moderation::get_record::Parameters,
5187    ) -> atrium_xrpc::Result<
5188        crate::tools::ozone::moderation::get_record::Output,
5189        crate::tools::ozone::moderation::get_record::Error,
5190    > {
5191        let response = self
5192            .xrpc
5193            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5194                method: http::Method::GET,
5195                nsid: crate::tools::ozone::moderation::get_record::NSID.into(),
5196                parameters: Some(params),
5197                input: None,
5198                encoding: None,
5199            })
5200            .await?;
5201        match response {
5202            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5203            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5204        }
5205    }
5206    ///Get details about some records.
5207    pub async fn get_records(
5208        &self,
5209        params: crate::tools::ozone::moderation::get_records::Parameters,
5210    ) -> atrium_xrpc::Result<
5211        crate::tools::ozone::moderation::get_records::Output,
5212        crate::tools::ozone::moderation::get_records::Error,
5213    > {
5214        let response = self
5215            .xrpc
5216            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5217                method: http::Method::GET,
5218                nsid: crate::tools::ozone::moderation::get_records::NSID.into(),
5219                parameters: Some(params),
5220                input: None,
5221                encoding: None,
5222            })
5223            .await?;
5224        match response {
5225            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5226            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5227        }
5228    }
5229    ///Get details about a repository.
5230    pub async fn get_repo(
5231        &self,
5232        params: crate::tools::ozone::moderation::get_repo::Parameters,
5233    ) -> atrium_xrpc::Result<
5234        crate::tools::ozone::moderation::get_repo::Output,
5235        crate::tools::ozone::moderation::get_repo::Error,
5236    > {
5237        let response = self
5238            .xrpc
5239            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5240                method: http::Method::GET,
5241                nsid: crate::tools::ozone::moderation::get_repo::NSID.into(),
5242                parameters: Some(params),
5243                input: None,
5244                encoding: None,
5245            })
5246            .await?;
5247        match response {
5248            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5249            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5250        }
5251    }
5252    ///Get reporter stats for a list of users.
5253    pub async fn get_reporter_stats(
5254        &self,
5255        params: crate::tools::ozone::moderation::get_reporter_stats::Parameters,
5256    ) -> atrium_xrpc::Result<
5257        crate::tools::ozone::moderation::get_reporter_stats::Output,
5258        crate::tools::ozone::moderation::get_reporter_stats::Error,
5259    > {
5260        let response = self
5261            .xrpc
5262            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5263                method: http::Method::GET,
5264                nsid: crate::tools::ozone::moderation::get_reporter_stats::NSID.into(),
5265                parameters: Some(params),
5266                input: None,
5267                encoding: None,
5268            })
5269            .await?;
5270        match response {
5271            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5272            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5273        }
5274    }
5275    ///Get details about some repositories.
5276    pub async fn get_repos(
5277        &self,
5278        params: crate::tools::ozone::moderation::get_repos::Parameters,
5279    ) -> atrium_xrpc::Result<
5280        crate::tools::ozone::moderation::get_repos::Output,
5281        crate::tools::ozone::moderation::get_repos::Error,
5282    > {
5283        let response = self
5284            .xrpc
5285            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5286                method: http::Method::GET,
5287                nsid: crate::tools::ozone::moderation::get_repos::NSID.into(),
5288                parameters: Some(params),
5289                input: None,
5290                encoding: None,
5291            })
5292            .await?;
5293        match response {
5294            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5295            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5296        }
5297    }
5298    ///Get details about subjects.
5299    pub async fn get_subjects(
5300        &self,
5301        params: crate::tools::ozone::moderation::get_subjects::Parameters,
5302    ) -> atrium_xrpc::Result<
5303        crate::tools::ozone::moderation::get_subjects::Output,
5304        crate::tools::ozone::moderation::get_subjects::Error,
5305    > {
5306        let response = self
5307            .xrpc
5308            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5309                method: http::Method::GET,
5310                nsid: crate::tools::ozone::moderation::get_subjects::NSID.into(),
5311                parameters: Some(params),
5312                input: None,
5313                encoding: None,
5314            })
5315            .await?;
5316        match response {
5317            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5318            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5319        }
5320    }
5321    ///List moderation events related to a subject.
5322    pub async fn query_events(
5323        &self,
5324        params: crate::tools::ozone::moderation::query_events::Parameters,
5325    ) -> atrium_xrpc::Result<
5326        crate::tools::ozone::moderation::query_events::Output,
5327        crate::tools::ozone::moderation::query_events::Error,
5328    > {
5329        let response = self
5330            .xrpc
5331            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5332                method: http::Method::GET,
5333                nsid: crate::tools::ozone::moderation::query_events::NSID.into(),
5334                parameters: Some(params),
5335                input: None,
5336                encoding: None,
5337            })
5338            .await?;
5339        match response {
5340            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5341            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5342        }
5343    }
5344    ///View moderation statuses of subjects (record or repo).
5345    pub async fn query_statuses(
5346        &self,
5347        params: crate::tools::ozone::moderation::query_statuses::Parameters,
5348    ) -> atrium_xrpc::Result<
5349        crate::tools::ozone::moderation::query_statuses::Output,
5350        crate::tools::ozone::moderation::query_statuses::Error,
5351    > {
5352        let response = self
5353            .xrpc
5354            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5355                method: http::Method::GET,
5356                nsid: crate::tools::ozone::moderation::query_statuses::NSID.into(),
5357                parameters: Some(params),
5358                input: None,
5359                encoding: None,
5360            })
5361            .await?;
5362        match response {
5363            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5364            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5365        }
5366    }
5367    ///Find repositories based on a search term.
5368    pub async fn search_repos(
5369        &self,
5370        params: crate::tools::ozone::moderation::search_repos::Parameters,
5371    ) -> atrium_xrpc::Result<
5372        crate::tools::ozone::moderation::search_repos::Output,
5373        crate::tools::ozone::moderation::search_repos::Error,
5374    > {
5375        let response = self
5376            .xrpc
5377            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5378                method: http::Method::GET,
5379                nsid: crate::tools::ozone::moderation::search_repos::NSID.into(),
5380                parameters: Some(params),
5381                input: None,
5382                encoding: None,
5383            })
5384            .await?;
5385        match response {
5386            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5387            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5388        }
5389    }
5390}
5391#[cfg(feature = "namespace-toolsozone")]
5392impl<T> tools::ozone::safelink::Service<T>
5393where
5394    T: atrium_xrpc::XrpcClient + Send + Sync,
5395{
5396    #[allow(unused_variables)]
5397    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5398        Self { xrpc, _phantom: core::marker::PhantomData }
5399    }
5400    ///Add a new URL safety rule
5401    pub async fn add_rule(
5402        &self,
5403        input: crate::tools::ozone::safelink::add_rule::Input,
5404    ) -> atrium_xrpc::Result<
5405        crate::tools::ozone::safelink::add_rule::Output,
5406        crate::tools::ozone::safelink::add_rule::Error,
5407    > {
5408        let response = self
5409            .xrpc
5410            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5411                method: http::Method::POST,
5412                nsid: crate::tools::ozone::safelink::add_rule::NSID.into(),
5413                parameters: None,
5414                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5415                encoding: Some(String::from("application/json")),
5416            })
5417            .await?;
5418        match response {
5419            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5420            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5421        }
5422    }
5423    ///Query URL safety audit events
5424    pub async fn query_events(
5425        &self,
5426        input: crate::tools::ozone::safelink::query_events::Input,
5427    ) -> atrium_xrpc::Result<
5428        crate::tools::ozone::safelink::query_events::Output,
5429        crate::tools::ozone::safelink::query_events::Error,
5430    > {
5431        let response = self
5432            .xrpc
5433            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5434                method: http::Method::POST,
5435                nsid: crate::tools::ozone::safelink::query_events::NSID.into(),
5436                parameters: None,
5437                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5438                encoding: Some(String::from("application/json")),
5439            })
5440            .await?;
5441        match response {
5442            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5443            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5444        }
5445    }
5446    ///Query URL safety rules
5447    pub async fn query_rules(
5448        &self,
5449        input: crate::tools::ozone::safelink::query_rules::Input,
5450    ) -> atrium_xrpc::Result<
5451        crate::tools::ozone::safelink::query_rules::Output,
5452        crate::tools::ozone::safelink::query_rules::Error,
5453    > {
5454        let response = self
5455            .xrpc
5456            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5457                method: http::Method::POST,
5458                nsid: crate::tools::ozone::safelink::query_rules::NSID.into(),
5459                parameters: None,
5460                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5461                encoding: Some(String::from("application/json")),
5462            })
5463            .await?;
5464        match response {
5465            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5466            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5467        }
5468    }
5469    ///Remove an existing URL safety rule
5470    pub async fn remove_rule(
5471        &self,
5472        input: crate::tools::ozone::safelink::remove_rule::Input,
5473    ) -> atrium_xrpc::Result<
5474        crate::tools::ozone::safelink::remove_rule::Output,
5475        crate::tools::ozone::safelink::remove_rule::Error,
5476    > {
5477        let response = self
5478            .xrpc
5479            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5480                method: http::Method::POST,
5481                nsid: crate::tools::ozone::safelink::remove_rule::NSID.into(),
5482                parameters: None,
5483                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5484                encoding: Some(String::from("application/json")),
5485            })
5486            .await?;
5487        match response {
5488            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5489            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5490        }
5491    }
5492    ///Update an existing URL safety rule
5493    pub async fn update_rule(
5494        &self,
5495        input: crate::tools::ozone::safelink::update_rule::Input,
5496    ) -> atrium_xrpc::Result<
5497        crate::tools::ozone::safelink::update_rule::Output,
5498        crate::tools::ozone::safelink::update_rule::Error,
5499    > {
5500        let response = self
5501            .xrpc
5502            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5503                method: http::Method::POST,
5504                nsid: crate::tools::ozone::safelink::update_rule::NSID.into(),
5505                parameters: None,
5506                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5507                encoding: Some(String::from("application/json")),
5508            })
5509            .await?;
5510        match response {
5511            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5512            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5513        }
5514    }
5515}
5516#[cfg(feature = "namespace-toolsozone")]
5517impl<T> tools::ozone::server::Service<T>
5518where
5519    T: atrium_xrpc::XrpcClient + Send + Sync,
5520{
5521    #[allow(unused_variables)]
5522    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5523        Self { xrpc, _phantom: core::marker::PhantomData }
5524    }
5525    ///Get details about ozone's server configuration.
5526    pub async fn get_config(
5527        &self,
5528    ) -> atrium_xrpc::Result<
5529        crate::tools::ozone::server::get_config::Output,
5530        crate::tools::ozone::server::get_config::Error,
5531    > {
5532        let response = self
5533            .xrpc
5534            .send_xrpc::<(), (), _, _>(&atrium_xrpc::XrpcRequest {
5535                method: http::Method::GET,
5536                nsid: crate::tools::ozone::server::get_config::NSID.into(),
5537                parameters: None,
5538                input: None,
5539                encoding: None,
5540            })
5541            .await?;
5542        match response {
5543            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5544            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5545        }
5546    }
5547}
5548#[cfg(feature = "namespace-toolsozone")]
5549impl<T> tools::ozone::set::Service<T>
5550where
5551    T: atrium_xrpc::XrpcClient + Send + Sync,
5552{
5553    #[allow(unused_variables)]
5554    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5555        Self { xrpc, _phantom: core::marker::PhantomData }
5556    }
5557    ///Add values to a specific set. Attempting to add values to a set that does not exist will result in an error.
5558    pub async fn add_values(
5559        &self,
5560        input: crate::tools::ozone::set::add_values::Input,
5561    ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::add_values::Error> {
5562        let response = self
5563            .xrpc
5564            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
5565                method: http::Method::POST,
5566                nsid: crate::tools::ozone::set::add_values::NSID.into(),
5567                parameters: None,
5568                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5569                encoding: Some(String::from("application/json")),
5570            })
5571            .await?;
5572        match response {
5573            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5574            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5575        }
5576    }
5577    ///Delete an entire set. Attempting to delete a set that does not exist will result in an error.
5578    pub async fn delete_set(
5579        &self,
5580        input: crate::tools::ozone::set::delete_set::Input,
5581    ) -> atrium_xrpc::Result<
5582        crate::tools::ozone::set::delete_set::Output,
5583        crate::tools::ozone::set::delete_set::Error,
5584    > {
5585        let response = self
5586            .xrpc
5587            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5588                method: http::Method::POST,
5589                nsid: crate::tools::ozone::set::delete_set::NSID.into(),
5590                parameters: None,
5591                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5592                encoding: Some(String::from("application/json")),
5593            })
5594            .await?;
5595        match response {
5596            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5597            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5598        }
5599    }
5600    ///Delete values from a specific set. Attempting to delete values that are not in the set will not result in an error
5601    pub async fn delete_values(
5602        &self,
5603        input: crate::tools::ozone::set::delete_values::Input,
5604    ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::delete_values::Error> {
5605        let response = self
5606            .xrpc
5607            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
5608                method: http::Method::POST,
5609                nsid: crate::tools::ozone::set::delete_values::NSID.into(),
5610                parameters: None,
5611                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5612                encoding: Some(String::from("application/json")),
5613            })
5614            .await?;
5615        match response {
5616            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5617            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5618        }
5619    }
5620    ///Get a specific set and its values
5621    pub async fn get_values(
5622        &self,
5623        params: crate::tools::ozone::set::get_values::Parameters,
5624    ) -> atrium_xrpc::Result<
5625        crate::tools::ozone::set::get_values::Output,
5626        crate::tools::ozone::set::get_values::Error,
5627    > {
5628        let response = self
5629            .xrpc
5630            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5631                method: http::Method::GET,
5632                nsid: crate::tools::ozone::set::get_values::NSID.into(),
5633                parameters: Some(params),
5634                input: None,
5635                encoding: None,
5636            })
5637            .await?;
5638        match response {
5639            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5640            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5641        }
5642    }
5643    ///Query available sets
5644    pub async fn query_sets(
5645        &self,
5646        params: crate::tools::ozone::set::query_sets::Parameters,
5647    ) -> atrium_xrpc::Result<
5648        crate::tools::ozone::set::query_sets::Output,
5649        crate::tools::ozone::set::query_sets::Error,
5650    > {
5651        let response = self
5652            .xrpc
5653            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5654                method: http::Method::GET,
5655                nsid: crate::tools::ozone::set::query_sets::NSID.into(),
5656                parameters: Some(params),
5657                input: None,
5658                encoding: None,
5659            })
5660            .await?;
5661        match response {
5662            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5663            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5664        }
5665    }
5666    ///Create or update set metadata
5667    pub async fn upsert_set(
5668        &self,
5669        input: crate::tools::ozone::set::upsert_set::Input,
5670    ) -> atrium_xrpc::Result<
5671        crate::tools::ozone::set::upsert_set::Output,
5672        crate::tools::ozone::set::upsert_set::Error,
5673    > {
5674        let response = self
5675            .xrpc
5676            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5677                method: http::Method::POST,
5678                nsid: crate::tools::ozone::set::upsert_set::NSID.into(),
5679                parameters: None,
5680                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5681                encoding: Some(String::from("application/json")),
5682            })
5683            .await?;
5684        match response {
5685            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5686            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5687        }
5688    }
5689}
5690#[cfg(feature = "namespace-toolsozone")]
5691impl<T> tools::ozone::setting::Service<T>
5692where
5693    T: atrium_xrpc::XrpcClient + Send + Sync,
5694{
5695    #[allow(unused_variables)]
5696    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5697        Self { xrpc, _phantom: core::marker::PhantomData }
5698    }
5699    ///List settings with optional filtering
5700    pub async fn list_options(
5701        &self,
5702        params: crate::tools::ozone::setting::list_options::Parameters,
5703    ) -> atrium_xrpc::Result<
5704        crate::tools::ozone::setting::list_options::Output,
5705        crate::tools::ozone::setting::list_options::Error,
5706    > {
5707        let response = self
5708            .xrpc
5709            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5710                method: http::Method::GET,
5711                nsid: crate::tools::ozone::setting::list_options::NSID.into(),
5712                parameters: Some(params),
5713                input: None,
5714                encoding: None,
5715            })
5716            .await?;
5717        match response {
5718            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5719            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5720        }
5721    }
5722    ///Delete settings by key
5723    pub async fn remove_options(
5724        &self,
5725        input: crate::tools::ozone::setting::remove_options::Input,
5726    ) -> atrium_xrpc::Result<
5727        crate::tools::ozone::setting::remove_options::Output,
5728        crate::tools::ozone::setting::remove_options::Error,
5729    > {
5730        let response = self
5731            .xrpc
5732            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5733                method: http::Method::POST,
5734                nsid: crate::tools::ozone::setting::remove_options::NSID.into(),
5735                parameters: None,
5736                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5737                encoding: Some(String::from("application/json")),
5738            })
5739            .await?;
5740        match response {
5741            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5742            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5743        }
5744    }
5745    ///Create or update setting option
5746    pub async fn upsert_option(
5747        &self,
5748        input: crate::tools::ozone::setting::upsert_option::Input,
5749    ) -> atrium_xrpc::Result<
5750        crate::tools::ozone::setting::upsert_option::Output,
5751        crate::tools::ozone::setting::upsert_option::Error,
5752    > {
5753        let response = self
5754            .xrpc
5755            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5756                method: http::Method::POST,
5757                nsid: crate::tools::ozone::setting::upsert_option::NSID.into(),
5758                parameters: None,
5759                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5760                encoding: Some(String::from("application/json")),
5761            })
5762            .await?;
5763        match response {
5764            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5765            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5766        }
5767    }
5768}
5769#[cfg(feature = "namespace-toolsozone")]
5770impl<T> tools::ozone::signature::Service<T>
5771where
5772    T: atrium_xrpc::XrpcClient + Send + Sync,
5773{
5774    #[allow(unused_variables)]
5775    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5776        Self { xrpc, _phantom: core::marker::PhantomData }
5777    }
5778    ///Find all correlated threat signatures between 2 or more accounts.
5779    pub async fn find_correlation(
5780        &self,
5781        params: crate::tools::ozone::signature::find_correlation::Parameters,
5782    ) -> atrium_xrpc::Result<
5783        crate::tools::ozone::signature::find_correlation::Output,
5784        crate::tools::ozone::signature::find_correlation::Error,
5785    > {
5786        let response = self
5787            .xrpc
5788            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5789                method: http::Method::GET,
5790                nsid: crate::tools::ozone::signature::find_correlation::NSID.into(),
5791                parameters: Some(params),
5792                input: None,
5793                encoding: None,
5794            })
5795            .await?;
5796        match response {
5797            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5798            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5799        }
5800    }
5801    ///Get accounts that share some matching threat signatures with the root account.
5802    pub async fn find_related_accounts(
5803        &self,
5804        params: crate::tools::ozone::signature::find_related_accounts::Parameters,
5805    ) -> atrium_xrpc::Result<
5806        crate::tools::ozone::signature::find_related_accounts::Output,
5807        crate::tools::ozone::signature::find_related_accounts::Error,
5808    > {
5809        let response = self
5810            .xrpc
5811            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5812                method: http::Method::GET,
5813                nsid: crate::tools::ozone::signature::find_related_accounts::NSID.into(),
5814                parameters: Some(params),
5815                input: None,
5816                encoding: None,
5817            })
5818            .await?;
5819        match response {
5820            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5821            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5822        }
5823    }
5824    ///Search for accounts that match one or more threat signature values.
5825    pub async fn search_accounts(
5826        &self,
5827        params: crate::tools::ozone::signature::search_accounts::Parameters,
5828    ) -> atrium_xrpc::Result<
5829        crate::tools::ozone::signature::search_accounts::Output,
5830        crate::tools::ozone::signature::search_accounts::Error,
5831    > {
5832        let response = self
5833            .xrpc
5834            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5835                method: http::Method::GET,
5836                nsid: crate::tools::ozone::signature::search_accounts::NSID.into(),
5837                parameters: Some(params),
5838                input: None,
5839                encoding: None,
5840            })
5841            .await?;
5842        match response {
5843            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5844            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5845        }
5846    }
5847}
5848#[cfg(feature = "namespace-toolsozone")]
5849impl<T> tools::ozone::team::Service<T>
5850where
5851    T: atrium_xrpc::XrpcClient + Send + Sync,
5852{
5853    #[allow(unused_variables)]
5854    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5855        Self { xrpc, _phantom: core::marker::PhantomData }
5856    }
5857    ///Add a member to the ozone team. Requires admin role.
5858    pub async fn add_member(
5859        &self,
5860        input: crate::tools::ozone::team::add_member::Input,
5861    ) -> atrium_xrpc::Result<
5862        crate::tools::ozone::team::add_member::Output,
5863        crate::tools::ozone::team::add_member::Error,
5864    > {
5865        let response = self
5866            .xrpc
5867            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5868                method: http::Method::POST,
5869                nsid: crate::tools::ozone::team::add_member::NSID.into(),
5870                parameters: None,
5871                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5872                encoding: Some(String::from("application/json")),
5873            })
5874            .await?;
5875        match response {
5876            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5877            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5878        }
5879    }
5880    ///Delete a member from ozone team. Requires admin role.
5881    pub async fn delete_member(
5882        &self,
5883        input: crate::tools::ozone::team::delete_member::Input,
5884    ) -> atrium_xrpc::Result<(), crate::tools::ozone::team::delete_member::Error> {
5885        let response = self
5886            .xrpc
5887            .send_xrpc::<(), _, (), _>(&atrium_xrpc::XrpcRequest {
5888                method: http::Method::POST,
5889                nsid: crate::tools::ozone::team::delete_member::NSID.into(),
5890                parameters: None,
5891                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5892                encoding: Some(String::from("application/json")),
5893            })
5894            .await?;
5895        match response {
5896            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5897            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5898        }
5899    }
5900    ///List all members with access to the ozone service.
5901    pub async fn list_members(
5902        &self,
5903        params: crate::tools::ozone::team::list_members::Parameters,
5904    ) -> atrium_xrpc::Result<
5905        crate::tools::ozone::team::list_members::Output,
5906        crate::tools::ozone::team::list_members::Error,
5907    > {
5908        let response = self
5909            .xrpc
5910            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5911                method: http::Method::GET,
5912                nsid: crate::tools::ozone::team::list_members::NSID.into(),
5913                parameters: Some(params),
5914                input: None,
5915                encoding: None,
5916            })
5917            .await?;
5918        match response {
5919            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5920            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5921        }
5922    }
5923    ///Update a member in the ozone service. Requires admin role.
5924    pub async fn update_member(
5925        &self,
5926        input: crate::tools::ozone::team::update_member::Input,
5927    ) -> atrium_xrpc::Result<
5928        crate::tools::ozone::team::update_member::Output,
5929        crate::tools::ozone::team::update_member::Error,
5930    > {
5931        let response = self
5932            .xrpc
5933            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5934                method: http::Method::POST,
5935                nsid: crate::tools::ozone::team::update_member::NSID.into(),
5936                parameters: None,
5937                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5938                encoding: Some(String::from("application/json")),
5939            })
5940            .await?;
5941        match response {
5942            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5943            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5944        }
5945    }
5946}
5947#[cfg(feature = "namespace-toolsozone")]
5948impl<T> tools::ozone::verification::Service<T>
5949where
5950    T: atrium_xrpc::XrpcClient + Send + Sync,
5951{
5952    #[allow(unused_variables)]
5953    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5954        Self { xrpc, _phantom: core::marker::PhantomData }
5955    }
5956    ///Grant verifications to multiple subjects. Allows batch processing of up to 100 verifications at once.
5957    pub async fn grant_verifications(
5958        &self,
5959        input: crate::tools::ozone::verification::grant_verifications::Input,
5960    ) -> atrium_xrpc::Result<
5961        crate::tools::ozone::verification::grant_verifications::Output,
5962        crate::tools::ozone::verification::grant_verifications::Error,
5963    > {
5964        let response = self
5965            .xrpc
5966            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
5967                method: http::Method::POST,
5968                nsid: crate::tools::ozone::verification::grant_verifications::NSID.into(),
5969                parameters: None,
5970                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5971                encoding: Some(String::from("application/json")),
5972            })
5973            .await?;
5974        match response {
5975            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5976            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5977        }
5978    }
5979    ///List verifications
5980    pub async fn list_verifications(
5981        &self,
5982        params: crate::tools::ozone::verification::list_verifications::Parameters,
5983    ) -> atrium_xrpc::Result<
5984        crate::tools::ozone::verification::list_verifications::Output,
5985        crate::tools::ozone::verification::list_verifications::Error,
5986    > {
5987        let response = self
5988            .xrpc
5989            .send_xrpc::<_, (), _, _>(&atrium_xrpc::XrpcRequest {
5990                method: http::Method::GET,
5991                nsid: crate::tools::ozone::verification::list_verifications::NSID.into(),
5992                parameters: Some(params),
5993                input: None,
5994                encoding: None,
5995            })
5996            .await?;
5997        match response {
5998            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5999            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6000        }
6001    }
6002    ///Revoke previously granted verifications in batches of up to 100.
6003    pub async fn revoke_verifications(
6004        &self,
6005        input: crate::tools::ozone::verification::revoke_verifications::Input,
6006    ) -> atrium_xrpc::Result<
6007        crate::tools::ozone::verification::revoke_verifications::Output,
6008        crate::tools::ozone::verification::revoke_verifications::Error,
6009    > {
6010        let response = self
6011            .xrpc
6012            .send_xrpc::<(), _, _, _>(&atrium_xrpc::XrpcRequest {
6013                method: http::Method::POST,
6014                nsid: crate::tools::ozone::verification::revoke_verifications::NSID.into(),
6015                parameters: None,
6016                input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6017                encoding: Some(String::from("application/json")),
6018            })
6019            .await?;
6020        match response {
6021            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6022            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6023        }
6024    }
6025}