Skip to main content

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 {
16            service: Service::new(std::sync::Arc::new(xrpc)),
17        }
18    }
19}
20pub struct Service<T>
21where
22    T: atrium_xrpc::XrpcClient + Send + Sync,
23{
24    pub app: app::Service<T>,
25    pub chat: chat::Service<T>,
26    pub com: com::Service<T>,
27    pub tools: tools::Service<T>,
28    pub(crate) _phantom: core::marker::PhantomData<T>,
29}
30pub mod app {
31    pub struct Service<T>
32    where
33        T: atrium_xrpc::XrpcClient + Send + Sync,
34    {
35        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-appbsky")))]
36        #[cfg(feature = "namespace-appbsky")]
37        pub bsky: bsky::Service<T>,
38        pub(crate) _phantom: core::marker::PhantomData<T>,
39    }
40    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-appbsky")))]
41    #[cfg(feature = "namespace-appbsky")]
42    pub mod bsky {
43        pub struct Service<T>
44        where
45            T: atrium_xrpc::XrpcClient + Send + Sync,
46        {
47            pub actor: actor::Service<T>,
48            pub ageassurance: ageassurance::Service<T>,
49            pub bookmark: bookmark::Service<T>,
50            pub contact: contact::Service<T>,
51            pub draft: draft::Service<T>,
52            pub embed: embed::Service<T>,
53            pub feed: feed::Service<T>,
54            pub graph: graph::Service<T>,
55            pub labeler: labeler::Service<T>,
56            pub notification: notification::Service<T>,
57            pub unspecced: unspecced::Service<T>,
58            pub video: video::Service<T>,
59            pub(crate) _phantom: core::marker::PhantomData<T>,
60        }
61        pub mod actor {
62            pub struct Service<T>
63            where
64                T: atrium_xrpc::XrpcClient + Send + Sync,
65            {
66                pub(crate) xrpc: std::sync::Arc<T>,
67                pub(crate) _phantom: core::marker::PhantomData<T>,
68            }
69        }
70        pub mod ageassurance {
71            pub struct Service<T>
72            where
73                T: atrium_xrpc::XrpcClient + Send + Sync,
74            {
75                pub(crate) xrpc: std::sync::Arc<T>,
76                pub(crate) _phantom: core::marker::PhantomData<T>,
77            }
78        }
79        pub mod bookmark {
80            pub struct Service<T>
81            where
82                T: atrium_xrpc::XrpcClient + Send + Sync,
83            {
84                pub(crate) xrpc: std::sync::Arc<T>,
85                pub(crate) _phantom: core::marker::PhantomData<T>,
86            }
87        }
88        pub mod contact {
89            pub struct Service<T>
90            where
91                T: atrium_xrpc::XrpcClient + Send + Sync,
92            {
93                pub(crate) xrpc: std::sync::Arc<T>,
94                pub(crate) _phantom: core::marker::PhantomData<T>,
95            }
96        }
97        pub mod draft {
98            pub struct Service<T>
99            where
100                T: atrium_xrpc::XrpcClient + Send + Sync,
101            {
102                pub(crate) xrpc: std::sync::Arc<T>,
103                pub(crate) _phantom: core::marker::PhantomData<T>,
104            }
105        }
106        pub mod embed {
107            pub struct Service<T>
108            where
109                T: atrium_xrpc::XrpcClient + Send + Sync,
110            {
111                pub(crate) xrpc: std::sync::Arc<T>,
112                pub(crate) _phantom: core::marker::PhantomData<T>,
113            }
114        }
115        pub mod feed {
116            pub struct Service<T>
117            where
118                T: atrium_xrpc::XrpcClient + Send + Sync,
119            {
120                pub(crate) xrpc: std::sync::Arc<T>,
121                pub(crate) _phantom: core::marker::PhantomData<T>,
122            }
123        }
124        pub mod graph {
125            pub struct Service<T>
126            where
127                T: atrium_xrpc::XrpcClient + Send + Sync,
128            {
129                pub(crate) xrpc: std::sync::Arc<T>,
130                pub(crate) _phantom: core::marker::PhantomData<T>,
131            }
132        }
133        pub mod labeler {
134            pub struct Service<T>
135            where
136                T: atrium_xrpc::XrpcClient + Send + Sync,
137            {
138                pub(crate) xrpc: std::sync::Arc<T>,
139                pub(crate) _phantom: core::marker::PhantomData<T>,
140            }
141        }
142        pub mod notification {
143            pub struct Service<T>
144            where
145                T: atrium_xrpc::XrpcClient + Send + Sync,
146            {
147                pub(crate) xrpc: std::sync::Arc<T>,
148                pub(crate) _phantom: core::marker::PhantomData<T>,
149            }
150        }
151        pub mod unspecced {
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 video {
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    }
170}
171pub mod chat {
172    pub struct Service<T>
173    where
174        T: atrium_xrpc::XrpcClient + Send + Sync,
175    {
176        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-chatbsky")))]
177        #[cfg(feature = "namespace-chatbsky")]
178        pub bsky: bsky::Service<T>,
179        pub(crate) _phantom: core::marker::PhantomData<T>,
180    }
181    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-chatbsky")))]
182    #[cfg(feature = "namespace-chatbsky")]
183    pub mod bsky {
184        pub struct Service<T>
185        where
186            T: atrium_xrpc::XrpcClient + Send + Sync,
187        {
188            pub actor: actor::Service<T>,
189            pub convo: convo::Service<T>,
190            pub group: group::Service<T>,
191            pub moderation: moderation::Service<T>,
192            pub notification: notification::Service<T>,
193            pub(crate) _phantom: core::marker::PhantomData<T>,
194        }
195        pub mod actor {
196            pub struct Service<T>
197            where
198                T: atrium_xrpc::XrpcClient + Send + Sync,
199            {
200                pub(crate) xrpc: std::sync::Arc<T>,
201                pub(crate) _phantom: core::marker::PhantomData<T>,
202            }
203        }
204        pub mod convo {
205            pub struct Service<T>
206            where
207                T: atrium_xrpc::XrpcClient + Send + Sync,
208            {
209                pub(crate) xrpc: std::sync::Arc<T>,
210                pub(crate) _phantom: core::marker::PhantomData<T>,
211            }
212        }
213        pub mod group {
214            pub struct Service<T>
215            where
216                T: atrium_xrpc::XrpcClient + Send + Sync,
217            {
218                pub(crate) xrpc: std::sync::Arc<T>,
219                pub(crate) _phantom: core::marker::PhantomData<T>,
220            }
221        }
222        pub mod moderation {
223            pub struct Service<T>
224            where
225                T: atrium_xrpc::XrpcClient + Send + Sync,
226            {
227                pub(crate) xrpc: std::sync::Arc<T>,
228                pub(crate) _phantom: core::marker::PhantomData<T>,
229            }
230        }
231        pub mod notification {
232            pub struct Service<T>
233            where
234                T: atrium_xrpc::XrpcClient + Send + Sync,
235            {
236                pub(crate) xrpc: std::sync::Arc<T>,
237                pub(crate) _phantom: core::marker::PhantomData<T>,
238            }
239        }
240    }
241}
242pub mod com {
243    pub struct Service<T>
244    where
245        T: atrium_xrpc::XrpcClient + Send + Sync,
246    {
247        pub atproto: atproto::Service<T>,
248        pub(crate) _phantom: core::marker::PhantomData<T>,
249    }
250    pub mod atproto {
251        pub struct Service<T>
252        where
253            T: atrium_xrpc::XrpcClient + Send + Sync,
254        {
255            pub admin: admin::Service<T>,
256            pub identity: identity::Service<T>,
257            pub label: label::Service<T>,
258            pub lexicon: lexicon::Service<T>,
259            pub moderation: moderation::Service<T>,
260            pub repo: repo::Service<T>,
261            pub server: server::Service<T>,
262            pub sync: sync::Service<T>,
263            pub temp: temp::Service<T>,
264            pub(crate) _phantom: core::marker::PhantomData<T>,
265        }
266        pub mod admin {
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        pub mod identity {
276            pub struct Service<T>
277            where
278                T: atrium_xrpc::XrpcClient + Send + Sync,
279            {
280                pub(crate) xrpc: std::sync::Arc<T>,
281                pub(crate) _phantom: core::marker::PhantomData<T>,
282            }
283        }
284        pub mod label {
285            pub struct Service<T>
286            where
287                T: atrium_xrpc::XrpcClient + Send + Sync,
288            {
289                pub(crate) xrpc: std::sync::Arc<T>,
290                pub(crate) _phantom: core::marker::PhantomData<T>,
291            }
292        }
293        pub mod lexicon {
294            pub struct Service<T>
295            where
296                T: atrium_xrpc::XrpcClient + Send + Sync,
297            {
298                pub(crate) xrpc: std::sync::Arc<T>,
299                pub(crate) _phantom: core::marker::PhantomData<T>,
300            }
301        }
302        pub mod moderation {
303            pub struct Service<T>
304            where
305                T: atrium_xrpc::XrpcClient + Send + Sync,
306            {
307                pub(crate) xrpc: std::sync::Arc<T>,
308                pub(crate) _phantom: core::marker::PhantomData<T>,
309            }
310        }
311        pub mod repo {
312            pub struct Service<T>
313            where
314                T: atrium_xrpc::XrpcClient + Send + Sync,
315            {
316                pub(crate) xrpc: std::sync::Arc<T>,
317                pub(crate) _phantom: core::marker::PhantomData<T>,
318            }
319        }
320        pub mod server {
321            pub struct Service<T>
322            where
323                T: atrium_xrpc::XrpcClient + Send + Sync,
324            {
325                pub(crate) xrpc: std::sync::Arc<T>,
326                pub(crate) _phantom: core::marker::PhantomData<T>,
327            }
328        }
329        pub mod sync {
330            pub struct Service<T>
331            where
332                T: atrium_xrpc::XrpcClient + Send + Sync,
333            {
334                pub(crate) xrpc: std::sync::Arc<T>,
335                pub(crate) _phantom: core::marker::PhantomData<T>,
336            }
337        }
338        pub mod temp {
339            pub struct Service<T>
340            where
341                T: atrium_xrpc::XrpcClient + Send + Sync,
342            {
343                pub(crate) xrpc: std::sync::Arc<T>,
344                pub(crate) _phantom: core::marker::PhantomData<T>,
345            }
346        }
347    }
348}
349pub mod tools {
350    pub struct Service<T>
351    where
352        T: atrium_xrpc::XrpcClient + Send + Sync,
353    {
354        #[cfg_attr(docsrs, doc(cfg(feature = "namespace-toolsozone")))]
355        #[cfg(feature = "namespace-toolsozone")]
356        pub ozone: ozone::Service<T>,
357        pub(crate) _phantom: core::marker::PhantomData<T>,
358    }
359    #[cfg_attr(docsrs, doc(cfg(feature = "namespace-toolsozone")))]
360    #[cfg(feature = "namespace-toolsozone")]
361    pub mod ozone {
362        pub struct Service<T>
363        where
364            T: atrium_xrpc::XrpcClient + Send + Sync,
365        {
366            pub communication: communication::Service<T>,
367            pub hosting: hosting::Service<T>,
368            pub moderation: moderation::Service<T>,
369            pub queue: queue::Service<T>,
370            pub report: report::Service<T>,
371            pub safelink: safelink::Service<T>,
372            pub server: server::Service<T>,
373            pub set: set::Service<T>,
374            pub setting: setting::Service<T>,
375            pub signature: signature::Service<T>,
376            pub team: team::Service<T>,
377            pub verification: verification::Service<T>,
378            pub(crate) _phantom: core::marker::PhantomData<T>,
379        }
380        pub mod communication {
381            pub struct Service<T>
382            where
383                T: atrium_xrpc::XrpcClient + Send + Sync,
384            {
385                pub(crate) xrpc: std::sync::Arc<T>,
386                pub(crate) _phantom: core::marker::PhantomData<T>,
387            }
388        }
389        pub mod hosting {
390            pub struct Service<T>
391            where
392                T: atrium_xrpc::XrpcClient + Send + Sync,
393            {
394                pub(crate) xrpc: std::sync::Arc<T>,
395                pub(crate) _phantom: core::marker::PhantomData<T>,
396            }
397        }
398        pub mod moderation {
399            pub struct Service<T>
400            where
401                T: atrium_xrpc::XrpcClient + Send + Sync,
402            {
403                pub(crate) xrpc: std::sync::Arc<T>,
404                pub(crate) _phantom: core::marker::PhantomData<T>,
405            }
406        }
407        pub mod queue {
408            pub struct Service<T>
409            where
410                T: atrium_xrpc::XrpcClient + Send + Sync,
411            {
412                pub(crate) xrpc: std::sync::Arc<T>,
413                pub(crate) _phantom: core::marker::PhantomData<T>,
414            }
415        }
416        pub mod report {
417            pub struct Service<T>
418            where
419                T: atrium_xrpc::XrpcClient + Send + Sync,
420            {
421                pub(crate) xrpc: std::sync::Arc<T>,
422                pub(crate) _phantom: core::marker::PhantomData<T>,
423            }
424        }
425        pub mod safelink {
426            pub struct Service<T>
427            where
428                T: atrium_xrpc::XrpcClient + Send + Sync,
429            {
430                pub(crate) xrpc: std::sync::Arc<T>,
431                pub(crate) _phantom: core::marker::PhantomData<T>,
432            }
433        }
434        pub mod server {
435            pub struct Service<T>
436            where
437                T: atrium_xrpc::XrpcClient + Send + Sync,
438            {
439                pub(crate) xrpc: std::sync::Arc<T>,
440                pub(crate) _phantom: core::marker::PhantomData<T>,
441            }
442        }
443        pub mod set {
444            pub struct Service<T>
445            where
446                T: atrium_xrpc::XrpcClient + Send + Sync,
447            {
448                pub(crate) xrpc: std::sync::Arc<T>,
449                pub(crate) _phantom: core::marker::PhantomData<T>,
450            }
451        }
452        pub mod setting {
453            pub struct Service<T>
454            where
455                T: atrium_xrpc::XrpcClient + Send + Sync,
456            {
457                pub(crate) xrpc: std::sync::Arc<T>,
458                pub(crate) _phantom: core::marker::PhantomData<T>,
459            }
460        }
461        pub mod signature {
462            pub struct Service<T>
463            where
464                T: atrium_xrpc::XrpcClient + Send + Sync,
465            {
466                pub(crate) xrpc: std::sync::Arc<T>,
467                pub(crate) _phantom: core::marker::PhantomData<T>,
468            }
469        }
470        pub mod team {
471            pub struct Service<T>
472            where
473                T: atrium_xrpc::XrpcClient + Send + Sync,
474            {
475                pub(crate) xrpc: std::sync::Arc<T>,
476                pub(crate) _phantom: core::marker::PhantomData<T>,
477            }
478        }
479        pub mod verification {
480            pub struct Service<T>
481            where
482                T: atrium_xrpc::XrpcClient + Send + Sync,
483            {
484                pub(crate) xrpc: std::sync::Arc<T>,
485                pub(crate) _phantom: core::marker::PhantomData<T>,
486            }
487        }
488    }
489}
490impl<T> self::Service<T>
491where
492    T: atrium_xrpc::XrpcClient + Send + Sync,
493{
494    #[allow(unused_variables)]
495    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
496        Self {
497            app: app::Service::new(std::sync::Arc::clone(&xrpc)),
498            chat: chat::Service::new(std::sync::Arc::clone(&xrpc)),
499            com: com::Service::new(std::sync::Arc::clone(&xrpc)),
500            tools: tools::Service::new(std::sync::Arc::clone(&xrpc)),
501            _phantom: core::marker::PhantomData,
502        }
503    }
504}
505impl<T> app::Service<T>
506where
507    T: atrium_xrpc::XrpcClient + Send + Sync,
508{
509    #[allow(unused_variables)]
510    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
511        Self {
512            #[cfg(feature = "namespace-appbsky")]
513            bsky: app::bsky::Service::new(std::sync::Arc::clone(&xrpc)),
514            _phantom: core::marker::PhantomData,
515        }
516    }
517}
518#[cfg(feature = "namespace-appbsky")]
519impl<T> app::bsky::Service<T>
520where
521    T: atrium_xrpc::XrpcClient + Send + Sync,
522{
523    #[allow(unused_variables)]
524    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
525        Self {
526            actor: app::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)),
527            ageassurance: app::bsky::ageassurance::Service::new(
528                std::sync::Arc::clone(&xrpc),
529            ),
530            bookmark: app::bsky::bookmark::Service::new(std::sync::Arc::clone(&xrpc)),
531            contact: app::bsky::contact::Service::new(std::sync::Arc::clone(&xrpc)),
532            draft: app::bsky::draft::Service::new(std::sync::Arc::clone(&xrpc)),
533            embed: app::bsky::embed::Service::new(std::sync::Arc::clone(&xrpc)),
534            feed: app::bsky::feed::Service::new(std::sync::Arc::clone(&xrpc)),
535            graph: app::bsky::graph::Service::new(std::sync::Arc::clone(&xrpc)),
536            labeler: app::bsky::labeler::Service::new(std::sync::Arc::clone(&xrpc)),
537            notification: app::bsky::notification::Service::new(
538                std::sync::Arc::clone(&xrpc),
539            ),
540            unspecced: app::bsky::unspecced::Service::new(std::sync::Arc::clone(&xrpc)),
541            video: app::bsky::video::Service::new(std::sync::Arc::clone(&xrpc)),
542            _phantom: core::marker::PhantomData,
543        }
544    }
545}
546#[cfg(feature = "namespace-appbsky")]
547impl<T> app::bsky::actor::Service<T>
548where
549    T: atrium_xrpc::XrpcClient + Send + Sync,
550{
551    #[allow(unused_variables)]
552    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
553        Self {
554            xrpc,
555            _phantom: core::marker::PhantomData,
556        }
557    }
558    ///Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.
559    pub async fn get_preferences(
560        &self,
561        params: crate::app::bsky::actor::get_preferences::Parameters,
562    ) -> atrium_xrpc::Result<
563        crate::app::bsky::actor::get_preferences::Output,
564        crate::app::bsky::actor::get_preferences::Error,
565    > {
566        let response = self
567            .xrpc
568            .send_xrpc::<
569                _,
570                (),
571                _,
572                _,
573            >(
574                &atrium_xrpc::XrpcRequest {
575                    method: http::Method::GET,
576                    nsid: crate::app::bsky::actor::get_preferences::NSID.into(),
577                    parameters: Some(params),
578                    input: None,
579                    encoding: None,
580                },
581            )
582            .await?;
583        match response {
584            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
585            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
586        }
587    }
588    ///Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.
589    pub async fn get_profile(
590        &self,
591        params: crate::app::bsky::actor::get_profile::Parameters,
592    ) -> atrium_xrpc::Result<
593        crate::app::bsky::actor::get_profile::Output,
594        crate::app::bsky::actor::get_profile::Error,
595    > {
596        let response = self
597            .xrpc
598            .send_xrpc::<
599                _,
600                (),
601                _,
602                _,
603            >(
604                &atrium_xrpc::XrpcRequest {
605                    method: http::Method::GET,
606                    nsid: crate::app::bsky::actor::get_profile::NSID.into(),
607                    parameters: Some(params),
608                    input: None,
609                    encoding: None,
610                },
611            )
612            .await?;
613        match response {
614            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
615            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
616        }
617    }
618    ///Get detailed profile views of multiple actors.
619    pub async fn get_profiles(
620        &self,
621        params: crate::app::bsky::actor::get_profiles::Parameters,
622    ) -> atrium_xrpc::Result<
623        crate::app::bsky::actor::get_profiles::Output,
624        crate::app::bsky::actor::get_profiles::Error,
625    > {
626        let response = self
627            .xrpc
628            .send_xrpc::<
629                _,
630                (),
631                _,
632                _,
633            >(
634                &atrium_xrpc::XrpcRequest {
635                    method: http::Method::GET,
636                    nsid: crate::app::bsky::actor::get_profiles::NSID.into(),
637                    parameters: Some(params),
638                    input: None,
639                    encoding: None,
640                },
641            )
642            .await?;
643        match response {
644            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
645            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
646        }
647    }
648    ///Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.
649    pub async fn get_suggestions(
650        &self,
651        params: crate::app::bsky::actor::get_suggestions::Parameters,
652    ) -> atrium_xrpc::Result<
653        crate::app::bsky::actor::get_suggestions::Output,
654        crate::app::bsky::actor::get_suggestions::Error,
655    > {
656        let response = self
657            .xrpc
658            .send_xrpc::<
659                _,
660                (),
661                _,
662                _,
663            >(
664                &atrium_xrpc::XrpcRequest {
665                    method: http::Method::GET,
666                    nsid: crate::app::bsky::actor::get_suggestions::NSID.into(),
667                    parameters: Some(params),
668                    input: None,
669                    encoding: None,
670                },
671            )
672            .await?;
673        match response {
674            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
675            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
676        }
677    }
678    ///Set the private preferences attached to the account.
679    pub async fn put_preferences(
680        &self,
681        input: crate::app::bsky::actor::put_preferences::Input,
682    ) -> atrium_xrpc::Result<(), crate::app::bsky::actor::put_preferences::Error> {
683        let response = self
684            .xrpc
685            .send_xrpc::<
686                (),
687                _,
688                (),
689                _,
690            >(
691                &atrium_xrpc::XrpcRequest {
692                    method: http::Method::POST,
693                    nsid: crate::app::bsky::actor::put_preferences::NSID.into(),
694                    parameters: None,
695                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
696                    encoding: Some(String::from("application/json")),
697                },
698            )
699            .await?;
700        match response {
701            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
702            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
703        }
704    }
705    ///Find actors (profiles) matching search criteria. Does not require auth.
706    pub async fn search_actors(
707        &self,
708        params: crate::app::bsky::actor::search_actors::Parameters,
709    ) -> atrium_xrpc::Result<
710        crate::app::bsky::actor::search_actors::Output,
711        crate::app::bsky::actor::search_actors::Error,
712    > {
713        let response = self
714            .xrpc
715            .send_xrpc::<
716                _,
717                (),
718                _,
719                _,
720            >(
721                &atrium_xrpc::XrpcRequest {
722                    method: http::Method::GET,
723                    nsid: crate::app::bsky::actor::search_actors::NSID.into(),
724                    parameters: Some(params),
725                    input: None,
726                    encoding: None,
727                },
728            )
729            .await?;
730        match response {
731            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
732            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
733        }
734    }
735    ///Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.
736    pub async fn search_actors_typeahead(
737        &self,
738        params: crate::app::bsky::actor::search_actors_typeahead::Parameters,
739    ) -> atrium_xrpc::Result<
740        crate::app::bsky::actor::search_actors_typeahead::Output,
741        crate::app::bsky::actor::search_actors_typeahead::Error,
742    > {
743        let response = self
744            .xrpc
745            .send_xrpc::<
746                _,
747                (),
748                _,
749                _,
750            >(
751                &atrium_xrpc::XrpcRequest {
752                    method: http::Method::GET,
753                    nsid: crate::app::bsky::actor::search_actors_typeahead::NSID.into(),
754                    parameters: Some(params),
755                    input: None,
756                    encoding: None,
757                },
758            )
759            .await?;
760        match response {
761            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
762            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
763        }
764    }
765}
766#[cfg(feature = "namespace-appbsky")]
767impl<T> app::bsky::ageassurance::Service<T>
768where
769    T: atrium_xrpc::XrpcClient + Send + Sync,
770{
771    #[allow(unused_variables)]
772    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
773        Self {
774            xrpc,
775            _phantom: core::marker::PhantomData,
776        }
777    }
778    ///Initiate Age Assurance for an account.
779    pub async fn begin(
780        &self,
781        input: crate::app::bsky::ageassurance::begin::Input,
782    ) -> atrium_xrpc::Result<
783        crate::app::bsky::ageassurance::begin::Output,
784        crate::app::bsky::ageassurance::begin::Error,
785    > {
786        let response = self
787            .xrpc
788            .send_xrpc::<
789                (),
790                _,
791                _,
792                _,
793            >(
794                &atrium_xrpc::XrpcRequest {
795                    method: http::Method::POST,
796                    nsid: crate::app::bsky::ageassurance::begin::NSID.into(),
797                    parameters: None,
798                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
799                    encoding: Some(String::from("application/json")),
800                },
801            )
802            .await?;
803        match response {
804            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
805            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
806        }
807    }
808    ///Returns Age Assurance configuration for use on the client.
809    pub async fn get_config(
810        &self,
811    ) -> atrium_xrpc::Result<
812        crate::app::bsky::ageassurance::get_config::Output,
813        crate::app::bsky::ageassurance::get_config::Error,
814    > {
815        let response = self
816            .xrpc
817            .send_xrpc::<
818                (),
819                (),
820                _,
821                _,
822            >(
823                &atrium_xrpc::XrpcRequest {
824                    method: http::Method::GET,
825                    nsid: crate::app::bsky::ageassurance::get_config::NSID.into(),
826                    parameters: None,
827                    input: None,
828                    encoding: None,
829                },
830            )
831            .await?;
832        match response {
833            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
834            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
835        }
836    }
837    ///Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side.
838    pub async fn get_state(
839        &self,
840        params: crate::app::bsky::ageassurance::get_state::Parameters,
841    ) -> atrium_xrpc::Result<
842        crate::app::bsky::ageassurance::get_state::Output,
843        crate::app::bsky::ageassurance::get_state::Error,
844    > {
845        let response = self
846            .xrpc
847            .send_xrpc::<
848                _,
849                (),
850                _,
851                _,
852            >(
853                &atrium_xrpc::XrpcRequest {
854                    method: http::Method::GET,
855                    nsid: crate::app::bsky::ageassurance::get_state::NSID.into(),
856                    parameters: Some(params),
857                    input: None,
858                    encoding: None,
859                },
860            )
861            .await?;
862        match response {
863            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
864            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
865        }
866    }
867}
868#[cfg(feature = "namespace-appbsky")]
869impl<T> app::bsky::bookmark::Service<T>
870where
871    T: atrium_xrpc::XrpcClient + Send + Sync,
872{
873    #[allow(unused_variables)]
874    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
875        Self {
876            xrpc,
877            _phantom: core::marker::PhantomData,
878        }
879    }
880    ///Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
881    pub async fn create_bookmark(
882        &self,
883        input: crate::app::bsky::bookmark::create_bookmark::Input,
884    ) -> atrium_xrpc::Result<(), crate::app::bsky::bookmark::create_bookmark::Error> {
885        let response = self
886            .xrpc
887            .send_xrpc::<
888                (),
889                _,
890                (),
891                _,
892            >(
893                &atrium_xrpc::XrpcRequest {
894                    method: http::Method::POST,
895                    nsid: crate::app::bsky::bookmark::create_bookmark::NSID.into(),
896                    parameters: None,
897                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
898                    encoding: Some(String::from("application/json")),
899                },
900            )
901            .await?;
902        match response {
903            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
904            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
905        }
906    }
907    ///Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication.
908    pub async fn delete_bookmark(
909        &self,
910        input: crate::app::bsky::bookmark::delete_bookmark::Input,
911    ) -> atrium_xrpc::Result<(), crate::app::bsky::bookmark::delete_bookmark::Error> {
912        let response = self
913            .xrpc
914            .send_xrpc::<
915                (),
916                _,
917                (),
918                _,
919            >(
920                &atrium_xrpc::XrpcRequest {
921                    method: http::Method::POST,
922                    nsid: crate::app::bsky::bookmark::delete_bookmark::NSID.into(),
923                    parameters: None,
924                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
925                    encoding: Some(String::from("application/json")),
926                },
927            )
928            .await?;
929        match response {
930            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
931            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
932        }
933    }
934    ///Gets views of records bookmarked by the authenticated user. Requires authentication.
935    pub async fn get_bookmarks(
936        &self,
937        params: crate::app::bsky::bookmark::get_bookmarks::Parameters,
938    ) -> atrium_xrpc::Result<
939        crate::app::bsky::bookmark::get_bookmarks::Output,
940        crate::app::bsky::bookmark::get_bookmarks::Error,
941    > {
942        let response = self
943            .xrpc
944            .send_xrpc::<
945                _,
946                (),
947                _,
948                _,
949            >(
950                &atrium_xrpc::XrpcRequest {
951                    method: http::Method::GET,
952                    nsid: crate::app::bsky::bookmark::get_bookmarks::NSID.into(),
953                    parameters: Some(params),
954                    input: None,
955                    encoding: None,
956                },
957            )
958            .await?;
959        match response {
960            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
961            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
962        }
963    }
964}
965#[cfg(feature = "namespace-appbsky")]
966impl<T> app::bsky::contact::Service<T>
967where
968    T: atrium_xrpc::XrpcClient + Send + Sync,
969{
970    #[allow(unused_variables)]
971    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
972        Self {
973            xrpc,
974            _phantom: core::marker::PhantomData,
975        }
976    }
977    ///Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication.
978    pub async fn dismiss_match(
979        &self,
980        input: crate::app::bsky::contact::dismiss_match::Input,
981    ) -> atrium_xrpc::Result<
982        crate::app::bsky::contact::dismiss_match::Output,
983        crate::app::bsky::contact::dismiss_match::Error,
984    > {
985        let response = self
986            .xrpc
987            .send_xrpc::<
988                (),
989                _,
990                _,
991                _,
992            >(
993                &atrium_xrpc::XrpcRequest {
994                    method: http::Method::POST,
995                    nsid: crate::app::bsky::contact::dismiss_match::NSID.into(),
996                    parameters: None,
997                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
998                    encoding: Some(String::from("application/json")),
999                },
1000            )
1001            .await?;
1002        match response {
1003            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1004            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1005        }
1006    }
1007    ///Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication.
1008    pub async fn get_matches(
1009        &self,
1010        params: crate::app::bsky::contact::get_matches::Parameters,
1011    ) -> atrium_xrpc::Result<
1012        crate::app::bsky::contact::get_matches::Output,
1013        crate::app::bsky::contact::get_matches::Error,
1014    > {
1015        let response = self
1016            .xrpc
1017            .send_xrpc::<
1018                _,
1019                (),
1020                _,
1021                _,
1022            >(
1023                &atrium_xrpc::XrpcRequest {
1024                    method: http::Method::GET,
1025                    nsid: crate::app::bsky::contact::get_matches::NSID.into(),
1026                    parameters: Some(params),
1027                    input: None,
1028                    encoding: None,
1029                },
1030            )
1031            .await?;
1032        match response {
1033            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1034            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1035        }
1036    }
1037    ///Gets the user's current contact import status. Requires authentication.
1038    pub async fn get_sync_status(
1039        &self,
1040        params: crate::app::bsky::contact::get_sync_status::Parameters,
1041    ) -> atrium_xrpc::Result<
1042        crate::app::bsky::contact::get_sync_status::Output,
1043        crate::app::bsky::contact::get_sync_status::Error,
1044    > {
1045        let response = self
1046            .xrpc
1047            .send_xrpc::<
1048                _,
1049                (),
1050                _,
1051                _,
1052            >(
1053                &atrium_xrpc::XrpcRequest {
1054                    method: http::Method::GET,
1055                    nsid: crate::app::bsky::contact::get_sync_status::NSID.into(),
1056                    parameters: Some(params),
1057                    input: None,
1058                    encoding: None,
1059                },
1060            )
1061            .await?;
1062        match response {
1063            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1064            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1065        }
1066    }
1067    ///Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.
1068    pub async fn import_contacts(
1069        &self,
1070        input: crate::app::bsky::contact::import_contacts::Input,
1071    ) -> atrium_xrpc::Result<
1072        crate::app::bsky::contact::import_contacts::Output,
1073        crate::app::bsky::contact::import_contacts::Error,
1074    > {
1075        let response = self
1076            .xrpc
1077            .send_xrpc::<
1078                (),
1079                _,
1080                _,
1081                _,
1082            >(
1083                &atrium_xrpc::XrpcRequest {
1084                    method: http::Method::POST,
1085                    nsid: crate::app::bsky::contact::import_contacts::NSID.into(),
1086                    parameters: None,
1087                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1088                    encoding: Some(String::from("application/json")),
1089                },
1090            )
1091            .await?;
1092        match response {
1093            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1094            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1095        }
1096    }
1097    ///Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication.
1098    pub async fn remove_data(
1099        &self,
1100        input: crate::app::bsky::contact::remove_data::Input,
1101    ) -> atrium_xrpc::Result<
1102        crate::app::bsky::contact::remove_data::Output,
1103        crate::app::bsky::contact::remove_data::Error,
1104    > {
1105        let response = self
1106            .xrpc
1107            .send_xrpc::<
1108                (),
1109                _,
1110                _,
1111                _,
1112            >(
1113                &atrium_xrpc::XrpcRequest {
1114                    method: http::Method::POST,
1115                    nsid: crate::app::bsky::contact::remove_data::NSID.into(),
1116                    parameters: None,
1117                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1118                    encoding: Some(String::from("application/json")),
1119                },
1120            )
1121            .await?;
1122        match response {
1123            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1124            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1125        }
1126    }
1127    ///System endpoint to send notifications related to contact imports. Requires role authentication.
1128    pub async fn send_notification(
1129        &self,
1130        input: crate::app::bsky::contact::send_notification::Input,
1131    ) -> atrium_xrpc::Result<
1132        crate::app::bsky::contact::send_notification::Output,
1133        crate::app::bsky::contact::send_notification::Error,
1134    > {
1135        let response = self
1136            .xrpc
1137            .send_xrpc::<
1138                (),
1139                _,
1140                _,
1141                _,
1142            >(
1143                &atrium_xrpc::XrpcRequest {
1144                    method: http::Method::POST,
1145                    nsid: crate::app::bsky::contact::send_notification::NSID.into(),
1146                    parameters: None,
1147                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1148                    encoding: Some(String::from("application/json")),
1149                },
1150            )
1151            .await?;
1152        match response {
1153            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1154            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1155        }
1156    }
1157    ///Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication.
1158    pub async fn start_phone_verification(
1159        &self,
1160        input: crate::app::bsky::contact::start_phone_verification::Input,
1161    ) -> atrium_xrpc::Result<
1162        crate::app::bsky::contact::start_phone_verification::Output,
1163        crate::app::bsky::contact::start_phone_verification::Error,
1164    > {
1165        let response = self
1166            .xrpc
1167            .send_xrpc::<
1168                (),
1169                _,
1170                _,
1171                _,
1172            >(
1173                &atrium_xrpc::XrpcRequest {
1174                    method: http::Method::POST,
1175                    nsid: crate::app::bsky::contact::start_phone_verification::NSID
1176                        .into(),
1177                    parameters: None,
1178                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1179                    encoding: Some(String::from("application/json")),
1180                },
1181            )
1182            .await?;
1183        match response {
1184            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1185            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1186        }
1187    }
1188    ///Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.
1189    pub async fn verify_phone(
1190        &self,
1191        input: crate::app::bsky::contact::verify_phone::Input,
1192    ) -> atrium_xrpc::Result<
1193        crate::app::bsky::contact::verify_phone::Output,
1194        crate::app::bsky::contact::verify_phone::Error,
1195    > {
1196        let response = self
1197            .xrpc
1198            .send_xrpc::<
1199                (),
1200                _,
1201                _,
1202                _,
1203            >(
1204                &atrium_xrpc::XrpcRequest {
1205                    method: http::Method::POST,
1206                    nsid: crate::app::bsky::contact::verify_phone::NSID.into(),
1207                    parameters: None,
1208                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1209                    encoding: Some(String::from("application/json")),
1210                },
1211            )
1212            .await?;
1213        match response {
1214            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1215            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1216        }
1217    }
1218}
1219#[cfg(feature = "namespace-appbsky")]
1220impl<T> app::bsky::draft::Service<T>
1221where
1222    T: atrium_xrpc::XrpcClient + Send + Sync,
1223{
1224    #[allow(unused_variables)]
1225    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1226        Self {
1227            xrpc,
1228            _phantom: core::marker::PhantomData,
1229        }
1230    }
1231    ///Inserts a draft using private storage (stash). An upper limit of drafts might be enforced. Requires authentication.
1232    pub async fn create_draft(
1233        &self,
1234        input: crate::app::bsky::draft::create_draft::Input,
1235    ) -> atrium_xrpc::Result<
1236        crate::app::bsky::draft::create_draft::Output,
1237        crate::app::bsky::draft::create_draft::Error,
1238    > {
1239        let response = self
1240            .xrpc
1241            .send_xrpc::<
1242                (),
1243                _,
1244                _,
1245                _,
1246            >(
1247                &atrium_xrpc::XrpcRequest {
1248                    method: http::Method::POST,
1249                    nsid: crate::app::bsky::draft::create_draft::NSID.into(),
1250                    parameters: None,
1251                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1252                    encoding: Some(String::from("application/json")),
1253                },
1254            )
1255            .await?;
1256        match response {
1257            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1258            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1259        }
1260    }
1261    ///Deletes a draft by ID. Requires authentication.
1262    pub async fn delete_draft(
1263        &self,
1264        input: crate::app::bsky::draft::delete_draft::Input,
1265    ) -> atrium_xrpc::Result<(), crate::app::bsky::draft::delete_draft::Error> {
1266        let response = self
1267            .xrpc
1268            .send_xrpc::<
1269                (),
1270                _,
1271                (),
1272                _,
1273            >(
1274                &atrium_xrpc::XrpcRequest {
1275                    method: http::Method::POST,
1276                    nsid: crate::app::bsky::draft::delete_draft::NSID.into(),
1277                    parameters: None,
1278                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1279                    encoding: Some(String::from("application/json")),
1280                },
1281            )
1282            .await?;
1283        match response {
1284            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1285            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1286        }
1287    }
1288    ///Gets views of user drafts. Requires authentication.
1289    pub async fn get_drafts(
1290        &self,
1291        params: crate::app::bsky::draft::get_drafts::Parameters,
1292    ) -> atrium_xrpc::Result<
1293        crate::app::bsky::draft::get_drafts::Output,
1294        crate::app::bsky::draft::get_drafts::Error,
1295    > {
1296        let response = self
1297            .xrpc
1298            .send_xrpc::<
1299                _,
1300                (),
1301                _,
1302                _,
1303            >(
1304                &atrium_xrpc::XrpcRequest {
1305                    method: http::Method::GET,
1306                    nsid: crate::app::bsky::draft::get_drafts::NSID.into(),
1307                    parameters: Some(params),
1308                    input: None,
1309                    encoding: None,
1310                },
1311            )
1312            .await?;
1313        match response {
1314            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1315            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1316        }
1317    }
1318    ///Updates a draft using private storage (stash). If the draft ID points to a non-existing ID, the update will be silently ignored. This is done because updates don't enforce draft limit, so it accepts all writes, but will ignore invalid ones. Requires authentication.
1319    pub async fn update_draft(
1320        &self,
1321        input: crate::app::bsky::draft::update_draft::Input,
1322    ) -> atrium_xrpc::Result<(), crate::app::bsky::draft::update_draft::Error> {
1323        let response = self
1324            .xrpc
1325            .send_xrpc::<
1326                (),
1327                _,
1328                (),
1329                _,
1330            >(
1331                &atrium_xrpc::XrpcRequest {
1332                    method: http::Method::POST,
1333                    nsid: crate::app::bsky::draft::update_draft::NSID.into(),
1334                    parameters: None,
1335                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1336                    encoding: Some(String::from("application/json")),
1337                },
1338            )
1339            .await?;
1340        match response {
1341            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
1342            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1343        }
1344    }
1345}
1346#[cfg(feature = "namespace-appbsky")]
1347impl<T> app::bsky::embed::Service<T>
1348where
1349    T: atrium_xrpc::XrpcClient + Send + Sync,
1350{
1351    #[allow(unused_variables)]
1352    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1353        Self {
1354            xrpc,
1355            _phantom: core::marker::PhantomData,
1356        }
1357    }
1358    ///Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.
1359    pub async fn get_embed_external_view(
1360        &self,
1361        params: crate::app::bsky::embed::get_embed_external_view::Parameters,
1362    ) -> atrium_xrpc::Result<
1363        crate::app::bsky::embed::get_embed_external_view::Output,
1364        crate::app::bsky::embed::get_embed_external_view::Error,
1365    > {
1366        let response = self
1367            .xrpc
1368            .send_xrpc::<
1369                _,
1370                (),
1371                _,
1372                _,
1373            >(
1374                &atrium_xrpc::XrpcRequest {
1375                    method: http::Method::GET,
1376                    nsid: crate::app::bsky::embed::get_embed_external_view::NSID.into(),
1377                    parameters: Some(params),
1378                    input: None,
1379                    encoding: None,
1380                },
1381            )
1382            .await?;
1383        match response {
1384            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1385            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1386        }
1387    }
1388}
1389#[cfg(feature = "namespace-appbsky")]
1390impl<T> app::bsky::feed::Service<T>
1391where
1392    T: atrium_xrpc::XrpcClient + Send + Sync,
1393{
1394    #[allow(unused_variables)]
1395    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1396        Self {
1397            xrpc,
1398            _phantom: core::marker::PhantomData,
1399        }
1400    }
1401    ///Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View).
1402    pub async fn describe_feed_generator(
1403        &self,
1404    ) -> atrium_xrpc::Result<
1405        crate::app::bsky::feed::describe_feed_generator::Output,
1406        crate::app::bsky::feed::describe_feed_generator::Error,
1407    > {
1408        let response = self
1409            .xrpc
1410            .send_xrpc::<
1411                (),
1412                (),
1413                _,
1414                _,
1415            >(
1416                &atrium_xrpc::XrpcRequest {
1417                    method: http::Method::GET,
1418                    nsid: crate::app::bsky::feed::describe_feed_generator::NSID.into(),
1419                    parameters: None,
1420                    input: None,
1421                    encoding: None,
1422                },
1423            )
1424            .await?;
1425        match response {
1426            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1427            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1428        }
1429    }
1430    ///Get a list of feeds (feed generator records) created by the actor (in the actor's repo).
1431    pub async fn get_actor_feeds(
1432        &self,
1433        params: crate::app::bsky::feed::get_actor_feeds::Parameters,
1434    ) -> atrium_xrpc::Result<
1435        crate::app::bsky::feed::get_actor_feeds::Output,
1436        crate::app::bsky::feed::get_actor_feeds::Error,
1437    > {
1438        let response = self
1439            .xrpc
1440            .send_xrpc::<
1441                _,
1442                (),
1443                _,
1444                _,
1445            >(
1446                &atrium_xrpc::XrpcRequest {
1447                    method: http::Method::GET,
1448                    nsid: crate::app::bsky::feed::get_actor_feeds::NSID.into(),
1449                    parameters: Some(params),
1450                    input: None,
1451                    encoding: None,
1452                },
1453            )
1454            .await?;
1455        match response {
1456            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1457            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1458        }
1459    }
1460    ///Get a list of posts liked by an actor. Requires auth, actor must be the requesting account.
1461    pub async fn get_actor_likes(
1462        &self,
1463        params: crate::app::bsky::feed::get_actor_likes::Parameters,
1464    ) -> atrium_xrpc::Result<
1465        crate::app::bsky::feed::get_actor_likes::Output,
1466        crate::app::bsky::feed::get_actor_likes::Error,
1467    > {
1468        let response = self
1469            .xrpc
1470            .send_xrpc::<
1471                _,
1472                (),
1473                _,
1474                _,
1475            >(
1476                &atrium_xrpc::XrpcRequest {
1477                    method: http::Method::GET,
1478                    nsid: crate::app::bsky::feed::get_actor_likes::NSID.into(),
1479                    parameters: Some(params),
1480                    input: None,
1481                    encoding: None,
1482                },
1483            )
1484            .await?;
1485        match response {
1486            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1487            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1488        }
1489    }
1490    ///Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.
1491    pub async fn get_author_feed(
1492        &self,
1493        params: crate::app::bsky::feed::get_author_feed::Parameters,
1494    ) -> atrium_xrpc::Result<
1495        crate::app::bsky::feed::get_author_feed::Output,
1496        crate::app::bsky::feed::get_author_feed::Error,
1497    > {
1498        let response = self
1499            .xrpc
1500            .send_xrpc::<
1501                _,
1502                (),
1503                _,
1504                _,
1505            >(
1506                &atrium_xrpc::XrpcRequest {
1507                    method: http::Method::GET,
1508                    nsid: crate::app::bsky::feed::get_author_feed::NSID.into(),
1509                    parameters: Some(params),
1510                    input: None,
1511                    encoding: None,
1512                },
1513            )
1514            .await?;
1515        match response {
1516            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1517            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1518        }
1519    }
1520    ///Get a hydrated feed from an actor's selected feed generator. Implemented by App View.
1521    pub async fn get_feed(
1522        &self,
1523        params: crate::app::bsky::feed::get_feed::Parameters,
1524    ) -> atrium_xrpc::Result<
1525        crate::app::bsky::feed::get_feed::Output,
1526        crate::app::bsky::feed::get_feed::Error,
1527    > {
1528        let response = self
1529            .xrpc
1530            .send_xrpc::<
1531                _,
1532                (),
1533                _,
1534                _,
1535            >(
1536                &atrium_xrpc::XrpcRequest {
1537                    method: http::Method::GET,
1538                    nsid: crate::app::bsky::feed::get_feed::NSID.into(),
1539                    parameters: Some(params),
1540                    input: None,
1541                    encoding: None,
1542                },
1543            )
1544            .await?;
1545        match response {
1546            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1547            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1548        }
1549    }
1550    ///Get information about a feed generator. Implemented by AppView.
1551    pub async fn get_feed_generator(
1552        &self,
1553        params: crate::app::bsky::feed::get_feed_generator::Parameters,
1554    ) -> atrium_xrpc::Result<
1555        crate::app::bsky::feed::get_feed_generator::Output,
1556        crate::app::bsky::feed::get_feed_generator::Error,
1557    > {
1558        let response = self
1559            .xrpc
1560            .send_xrpc::<
1561                _,
1562                (),
1563                _,
1564                _,
1565            >(
1566                &atrium_xrpc::XrpcRequest {
1567                    method: http::Method::GET,
1568                    nsid: crate::app::bsky::feed::get_feed_generator::NSID.into(),
1569                    parameters: Some(params),
1570                    input: None,
1571                    encoding: None,
1572                },
1573            )
1574            .await?;
1575        match response {
1576            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1577            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1578        }
1579    }
1580    ///Get information about a list of feed generators.
1581    pub async fn get_feed_generators(
1582        &self,
1583        params: crate::app::bsky::feed::get_feed_generators::Parameters,
1584    ) -> atrium_xrpc::Result<
1585        crate::app::bsky::feed::get_feed_generators::Output,
1586        crate::app::bsky::feed::get_feed_generators::Error,
1587    > {
1588        let response = self
1589            .xrpc
1590            .send_xrpc::<
1591                _,
1592                (),
1593                _,
1594                _,
1595            >(
1596                &atrium_xrpc::XrpcRequest {
1597                    method: http::Method::GET,
1598                    nsid: crate::app::bsky::feed::get_feed_generators::NSID.into(),
1599                    parameters: Some(params),
1600                    input: None,
1601                    encoding: None,
1602                },
1603            )
1604            .await?;
1605        match response {
1606            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1607            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1608        }
1609    }
1610    ///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.
1611    pub async fn get_feed_skeleton(
1612        &self,
1613        params: crate::app::bsky::feed::get_feed_skeleton::Parameters,
1614    ) -> atrium_xrpc::Result<
1615        crate::app::bsky::feed::get_feed_skeleton::Output,
1616        crate::app::bsky::feed::get_feed_skeleton::Error,
1617    > {
1618        let response = self
1619            .xrpc
1620            .send_xrpc::<
1621                _,
1622                (),
1623                _,
1624                _,
1625            >(
1626                &atrium_xrpc::XrpcRequest {
1627                    method: http::Method::GET,
1628                    nsid: crate::app::bsky::feed::get_feed_skeleton::NSID.into(),
1629                    parameters: Some(params),
1630                    input: None,
1631                    encoding: None,
1632                },
1633            )
1634            .await?;
1635        match response {
1636            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1637            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1638        }
1639    }
1640    ///Get like records which reference a subject (by AT-URI and CID).
1641    pub async fn get_likes(
1642        &self,
1643        params: crate::app::bsky::feed::get_likes::Parameters,
1644    ) -> atrium_xrpc::Result<
1645        crate::app::bsky::feed::get_likes::Output,
1646        crate::app::bsky::feed::get_likes::Error,
1647    > {
1648        let response = self
1649            .xrpc
1650            .send_xrpc::<
1651                _,
1652                (),
1653                _,
1654                _,
1655            >(
1656                &atrium_xrpc::XrpcRequest {
1657                    method: http::Method::GET,
1658                    nsid: crate::app::bsky::feed::get_likes::NSID.into(),
1659                    parameters: Some(params),
1660                    input: None,
1661                    encoding: None,
1662                },
1663            )
1664            .await?;
1665        match response {
1666            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1667            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1668        }
1669    }
1670    ///Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.
1671    pub async fn get_list_feed(
1672        &self,
1673        params: crate::app::bsky::feed::get_list_feed::Parameters,
1674    ) -> atrium_xrpc::Result<
1675        crate::app::bsky::feed::get_list_feed::Output,
1676        crate::app::bsky::feed::get_list_feed::Error,
1677    > {
1678        let response = self
1679            .xrpc
1680            .send_xrpc::<
1681                _,
1682                (),
1683                _,
1684                _,
1685            >(
1686                &atrium_xrpc::XrpcRequest {
1687                    method: http::Method::GET,
1688                    nsid: crate::app::bsky::feed::get_list_feed::NSID.into(),
1689                    parameters: Some(params),
1690                    input: None,
1691                    encoding: None,
1692                },
1693            )
1694            .await?;
1695        match response {
1696            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1697            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1698        }
1699    }
1700    ///Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.
1701    pub async fn get_post_thread(
1702        &self,
1703        params: crate::app::bsky::feed::get_post_thread::Parameters,
1704    ) -> atrium_xrpc::Result<
1705        crate::app::bsky::feed::get_post_thread::Output,
1706        crate::app::bsky::feed::get_post_thread::Error,
1707    > {
1708        let response = self
1709            .xrpc
1710            .send_xrpc::<
1711                _,
1712                (),
1713                _,
1714                _,
1715            >(
1716                &atrium_xrpc::XrpcRequest {
1717                    method: http::Method::GET,
1718                    nsid: crate::app::bsky::feed::get_post_thread::NSID.into(),
1719                    parameters: Some(params),
1720                    input: None,
1721                    encoding: None,
1722                },
1723            )
1724            .await?;
1725        match response {
1726            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1727            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1728        }
1729    }
1730    ///Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.
1731    pub async fn get_posts(
1732        &self,
1733        params: crate::app::bsky::feed::get_posts::Parameters,
1734    ) -> atrium_xrpc::Result<
1735        crate::app::bsky::feed::get_posts::Output,
1736        crate::app::bsky::feed::get_posts::Error,
1737    > {
1738        let response = self
1739            .xrpc
1740            .send_xrpc::<
1741                _,
1742                (),
1743                _,
1744                _,
1745            >(
1746                &atrium_xrpc::XrpcRequest {
1747                    method: http::Method::GET,
1748                    nsid: crate::app::bsky::feed::get_posts::NSID.into(),
1749                    parameters: Some(params),
1750                    input: None,
1751                    encoding: None,
1752                },
1753            )
1754            .await?;
1755        match response {
1756            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1757            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1758        }
1759    }
1760    ///Get a list of quotes for a given post.
1761    pub async fn get_quotes(
1762        &self,
1763        params: crate::app::bsky::feed::get_quotes::Parameters,
1764    ) -> atrium_xrpc::Result<
1765        crate::app::bsky::feed::get_quotes::Output,
1766        crate::app::bsky::feed::get_quotes::Error,
1767    > {
1768        let response = self
1769            .xrpc
1770            .send_xrpc::<
1771                _,
1772                (),
1773                _,
1774                _,
1775            >(
1776                &atrium_xrpc::XrpcRequest {
1777                    method: http::Method::GET,
1778                    nsid: crate::app::bsky::feed::get_quotes::NSID.into(),
1779                    parameters: Some(params),
1780                    input: None,
1781                    encoding: None,
1782                },
1783            )
1784            .await?;
1785        match response {
1786            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1787            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1788        }
1789    }
1790    ///Get a list of reposts for a given post.
1791    pub async fn get_reposted_by(
1792        &self,
1793        params: crate::app::bsky::feed::get_reposted_by::Parameters,
1794    ) -> atrium_xrpc::Result<
1795        crate::app::bsky::feed::get_reposted_by::Output,
1796        crate::app::bsky::feed::get_reposted_by::Error,
1797    > {
1798        let response = self
1799            .xrpc
1800            .send_xrpc::<
1801                _,
1802                (),
1803                _,
1804                _,
1805            >(
1806                &atrium_xrpc::XrpcRequest {
1807                    method: http::Method::GET,
1808                    nsid: crate::app::bsky::feed::get_reposted_by::NSID.into(),
1809                    parameters: Some(params),
1810                    input: None,
1811                    encoding: None,
1812                },
1813            )
1814            .await?;
1815        match response {
1816            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1817            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1818        }
1819    }
1820    ///Get a list of suggested feeds (feed generators) for the requesting account.
1821    pub async fn get_suggested_feeds(
1822        &self,
1823        params: crate::app::bsky::feed::get_suggested_feeds::Parameters,
1824    ) -> atrium_xrpc::Result<
1825        crate::app::bsky::feed::get_suggested_feeds::Output,
1826        crate::app::bsky::feed::get_suggested_feeds::Error,
1827    > {
1828        let response = self
1829            .xrpc
1830            .send_xrpc::<
1831                _,
1832                (),
1833                _,
1834                _,
1835            >(
1836                &atrium_xrpc::XrpcRequest {
1837                    method: http::Method::GET,
1838                    nsid: crate::app::bsky::feed::get_suggested_feeds::NSID.into(),
1839                    parameters: Some(params),
1840                    input: None,
1841                    encoding: None,
1842                },
1843            )
1844            .await?;
1845        match response {
1846            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1847            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1848        }
1849    }
1850    ///Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.
1851    pub async fn get_timeline(
1852        &self,
1853        params: crate::app::bsky::feed::get_timeline::Parameters,
1854    ) -> atrium_xrpc::Result<
1855        crate::app::bsky::feed::get_timeline::Output,
1856        crate::app::bsky::feed::get_timeline::Error,
1857    > {
1858        let response = self
1859            .xrpc
1860            .send_xrpc::<
1861                _,
1862                (),
1863                _,
1864                _,
1865            >(
1866                &atrium_xrpc::XrpcRequest {
1867                    method: http::Method::GET,
1868                    nsid: crate::app::bsky::feed::get_timeline::NSID.into(),
1869                    parameters: Some(params),
1870                    input: None,
1871                    encoding: None,
1872                },
1873            )
1874            .await?;
1875        match response {
1876            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1877            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1878        }
1879    }
1880    ///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.
1881    pub async fn search_posts(
1882        &self,
1883        params: crate::app::bsky::feed::search_posts::Parameters,
1884    ) -> atrium_xrpc::Result<
1885        crate::app::bsky::feed::search_posts::Output,
1886        crate::app::bsky::feed::search_posts::Error,
1887    > {
1888        let response = self
1889            .xrpc
1890            .send_xrpc::<
1891                _,
1892                (),
1893                _,
1894                _,
1895            >(
1896                &atrium_xrpc::XrpcRequest {
1897                    method: http::Method::GET,
1898                    nsid: crate::app::bsky::feed::search_posts::NSID.into(),
1899                    parameters: Some(params),
1900                    input: None,
1901                    encoding: None,
1902                },
1903            )
1904            .await?;
1905        match response {
1906            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1907            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1908        }
1909    }
1910    ///Find posts matching a search query or filters, returning search hits for matching post records.
1911    pub async fn search_posts_v2(
1912        &self,
1913        params: crate::app::bsky::feed::search_posts_v2::Parameters,
1914    ) -> atrium_xrpc::Result<
1915        crate::app::bsky::feed::search_posts_v2::Output,
1916        crate::app::bsky::feed::search_posts_v2::Error,
1917    > {
1918        let response = self
1919            .xrpc
1920            .send_xrpc::<
1921                _,
1922                (),
1923                _,
1924                _,
1925            >(
1926                &atrium_xrpc::XrpcRequest {
1927                    method: http::Method::GET,
1928                    nsid: crate::app::bsky::feed::search_posts_v2::NSID.into(),
1929                    parameters: Some(params),
1930                    input: None,
1931                    encoding: None,
1932                },
1933            )
1934            .await?;
1935        match response {
1936            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1937            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1938        }
1939    }
1940    ///Send information about interactions with feed items back to the feed generator that served them.
1941    pub async fn send_interactions(
1942        &self,
1943        input: crate::app::bsky::feed::send_interactions::Input,
1944    ) -> atrium_xrpc::Result<
1945        crate::app::bsky::feed::send_interactions::Output,
1946        crate::app::bsky::feed::send_interactions::Error,
1947    > {
1948        let response = self
1949            .xrpc
1950            .send_xrpc::<
1951                (),
1952                _,
1953                _,
1954                _,
1955            >(
1956                &atrium_xrpc::XrpcRequest {
1957                    method: http::Method::POST,
1958                    nsid: crate::app::bsky::feed::send_interactions::NSID.into(),
1959                    parameters: None,
1960                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
1961                    encoding: Some(String::from("application/json")),
1962                },
1963            )
1964            .await?;
1965        match response {
1966            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
1967            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
1968        }
1969    }
1970}
1971#[cfg(feature = "namespace-appbsky")]
1972impl<T> app::bsky::graph::Service<T>
1973where
1974    T: atrium_xrpc::XrpcClient + Send + Sync,
1975{
1976    #[allow(unused_variables)]
1977    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
1978        Self {
1979            xrpc,
1980            _phantom: core::marker::PhantomData,
1981        }
1982    }
1983    ///Get a list of starter packs created by the actor.
1984    pub async fn get_actor_starter_packs(
1985        &self,
1986        params: crate::app::bsky::graph::get_actor_starter_packs::Parameters,
1987    ) -> atrium_xrpc::Result<
1988        crate::app::bsky::graph::get_actor_starter_packs::Output,
1989        crate::app::bsky::graph::get_actor_starter_packs::Error,
1990    > {
1991        let response = self
1992            .xrpc
1993            .send_xrpc::<
1994                _,
1995                (),
1996                _,
1997                _,
1998            >(
1999                &atrium_xrpc::XrpcRequest {
2000                    method: http::Method::GET,
2001                    nsid: crate::app::bsky::graph::get_actor_starter_packs::NSID.into(),
2002                    parameters: Some(params),
2003                    input: None,
2004                    encoding: None,
2005                },
2006            )
2007            .await?;
2008        match response {
2009            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2010            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2011        }
2012    }
2013    ///Enumerates which accounts the requesting account is currently blocking. Requires auth.
2014    pub async fn get_blocks(
2015        &self,
2016        params: crate::app::bsky::graph::get_blocks::Parameters,
2017    ) -> atrium_xrpc::Result<
2018        crate::app::bsky::graph::get_blocks::Output,
2019        crate::app::bsky::graph::get_blocks::Error,
2020    > {
2021        let response = self
2022            .xrpc
2023            .send_xrpc::<
2024                _,
2025                (),
2026                _,
2027                _,
2028            >(
2029                &atrium_xrpc::XrpcRequest {
2030                    method: http::Method::GET,
2031                    nsid: crate::app::bsky::graph::get_blocks::NSID.into(),
2032                    parameters: Some(params),
2033                    input: None,
2034                    encoding: None,
2035                },
2036            )
2037            .await?;
2038        match response {
2039            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2040            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2041        }
2042    }
2043    ///Enumerates accounts which follow a specified account (actor).
2044    pub async fn get_followers(
2045        &self,
2046        params: crate::app::bsky::graph::get_followers::Parameters,
2047    ) -> atrium_xrpc::Result<
2048        crate::app::bsky::graph::get_followers::Output,
2049        crate::app::bsky::graph::get_followers::Error,
2050    > {
2051        let response = self
2052            .xrpc
2053            .send_xrpc::<
2054                _,
2055                (),
2056                _,
2057                _,
2058            >(
2059                &atrium_xrpc::XrpcRequest {
2060                    method: http::Method::GET,
2061                    nsid: crate::app::bsky::graph::get_followers::NSID.into(),
2062                    parameters: Some(params),
2063                    input: None,
2064                    encoding: None,
2065                },
2066            )
2067            .await?;
2068        match response {
2069            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2070            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2071        }
2072    }
2073    ///Enumerates accounts which a specified account (actor) follows.
2074    pub async fn get_follows(
2075        &self,
2076        params: crate::app::bsky::graph::get_follows::Parameters,
2077    ) -> atrium_xrpc::Result<
2078        crate::app::bsky::graph::get_follows::Output,
2079        crate::app::bsky::graph::get_follows::Error,
2080    > {
2081        let response = self
2082            .xrpc
2083            .send_xrpc::<
2084                _,
2085                (),
2086                _,
2087                _,
2088            >(
2089                &atrium_xrpc::XrpcRequest {
2090                    method: http::Method::GET,
2091                    nsid: crate::app::bsky::graph::get_follows::NSID.into(),
2092                    parameters: Some(params),
2093                    input: None,
2094                    encoding: None,
2095                },
2096            )
2097            .await?;
2098        match response {
2099            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2100            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2101        }
2102    }
2103    ///Enumerates accounts which follow a specified account (actor) and are followed by the viewer.
2104    pub async fn get_known_followers(
2105        &self,
2106        params: crate::app::bsky::graph::get_known_followers::Parameters,
2107    ) -> atrium_xrpc::Result<
2108        crate::app::bsky::graph::get_known_followers::Output,
2109        crate::app::bsky::graph::get_known_followers::Error,
2110    > {
2111        let response = self
2112            .xrpc
2113            .send_xrpc::<
2114                _,
2115                (),
2116                _,
2117                _,
2118            >(
2119                &atrium_xrpc::XrpcRequest {
2120                    method: http::Method::GET,
2121                    nsid: crate::app::bsky::graph::get_known_followers::NSID.into(),
2122                    parameters: Some(params),
2123                    input: None,
2124                    encoding: None,
2125                },
2126            )
2127            .await?;
2128        match response {
2129            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2130            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2131        }
2132    }
2133    ///Gets a 'view' (with additional context) of a specified list.
2134    pub async fn get_list(
2135        &self,
2136        params: crate::app::bsky::graph::get_list::Parameters,
2137    ) -> atrium_xrpc::Result<
2138        crate::app::bsky::graph::get_list::Output,
2139        crate::app::bsky::graph::get_list::Error,
2140    > {
2141        let response = self
2142            .xrpc
2143            .send_xrpc::<
2144                _,
2145                (),
2146                _,
2147                _,
2148            >(
2149                &atrium_xrpc::XrpcRequest {
2150                    method: http::Method::GET,
2151                    nsid: crate::app::bsky::graph::get_list::NSID.into(),
2152                    parameters: Some(params),
2153                    input: None,
2154                    encoding: None,
2155                },
2156            )
2157            .await?;
2158        match response {
2159            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2160            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2161        }
2162    }
2163    ///Get mod lists that the requesting account (actor) is blocking. Requires auth.
2164    pub async fn get_list_blocks(
2165        &self,
2166        params: crate::app::bsky::graph::get_list_blocks::Parameters,
2167    ) -> atrium_xrpc::Result<
2168        crate::app::bsky::graph::get_list_blocks::Output,
2169        crate::app::bsky::graph::get_list_blocks::Error,
2170    > {
2171        let response = self
2172            .xrpc
2173            .send_xrpc::<
2174                _,
2175                (),
2176                _,
2177                _,
2178            >(
2179                &atrium_xrpc::XrpcRequest {
2180                    method: http::Method::GET,
2181                    nsid: crate::app::bsky::graph::get_list_blocks::NSID.into(),
2182                    parameters: Some(params),
2183                    input: None,
2184                    encoding: None,
2185                },
2186            )
2187            .await?;
2188        match response {
2189            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2190            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2191        }
2192    }
2193    ///Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.
2194    pub async fn get_list_mutes(
2195        &self,
2196        params: crate::app::bsky::graph::get_list_mutes::Parameters,
2197    ) -> atrium_xrpc::Result<
2198        crate::app::bsky::graph::get_list_mutes::Output,
2199        crate::app::bsky::graph::get_list_mutes::Error,
2200    > {
2201        let response = self
2202            .xrpc
2203            .send_xrpc::<
2204                _,
2205                (),
2206                _,
2207                _,
2208            >(
2209                &atrium_xrpc::XrpcRequest {
2210                    method: http::Method::GET,
2211                    nsid: crate::app::bsky::graph::get_list_mutes::NSID.into(),
2212                    parameters: Some(params),
2213                    input: None,
2214                    encoding: None,
2215                },
2216            )
2217            .await?;
2218        match response {
2219            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2220            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2221        }
2222    }
2223    ///Enumerates the lists created by a specified account (actor).
2224    pub async fn get_lists(
2225        &self,
2226        params: crate::app::bsky::graph::get_lists::Parameters,
2227    ) -> atrium_xrpc::Result<
2228        crate::app::bsky::graph::get_lists::Output,
2229        crate::app::bsky::graph::get_lists::Error,
2230    > {
2231        let response = self
2232            .xrpc
2233            .send_xrpc::<
2234                _,
2235                (),
2236                _,
2237                _,
2238            >(
2239                &atrium_xrpc::XrpcRequest {
2240                    method: http::Method::GET,
2241                    nsid: crate::app::bsky::graph::get_lists::NSID.into(),
2242                    parameters: Some(params),
2243                    input: None,
2244                    encoding: None,
2245                },
2246            )
2247            .await?;
2248        match response {
2249            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2250            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2251        }
2252    }
2253    ///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.
2254    pub async fn get_lists_with_membership(
2255        &self,
2256        params: crate::app::bsky::graph::get_lists_with_membership::Parameters,
2257    ) -> atrium_xrpc::Result<
2258        crate::app::bsky::graph::get_lists_with_membership::Output,
2259        crate::app::bsky::graph::get_lists_with_membership::Error,
2260    > {
2261        let response = self
2262            .xrpc
2263            .send_xrpc::<
2264                _,
2265                (),
2266                _,
2267                _,
2268            >(
2269                &atrium_xrpc::XrpcRequest {
2270                    method: http::Method::GET,
2271                    nsid: crate::app::bsky::graph::get_lists_with_membership::NSID
2272                        .into(),
2273                    parameters: Some(params),
2274                    input: None,
2275                    encoding: None,
2276                },
2277            )
2278            .await?;
2279        match response {
2280            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2281            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2282        }
2283    }
2284    ///Enumerates accounts that the requesting account (actor) currently has fully muted. Mutes scoped to specific kinds of content (only reposts, only quote posts) are not included. Responses may contain more items than the requested limit. Requires auth.
2285    pub async fn get_mutes(
2286        &self,
2287        params: crate::app::bsky::graph::get_mutes::Parameters,
2288    ) -> atrium_xrpc::Result<
2289        crate::app::bsky::graph::get_mutes::Output,
2290        crate::app::bsky::graph::get_mutes::Error,
2291    > {
2292        let response = self
2293            .xrpc
2294            .send_xrpc::<
2295                _,
2296                (),
2297                _,
2298                _,
2299            >(
2300                &atrium_xrpc::XrpcRequest {
2301                    method: http::Method::GET,
2302                    nsid: crate::app::bsky::graph::get_mutes::NSID.into(),
2303                    parameters: Some(params),
2304                    input: None,
2305                    encoding: None,
2306                },
2307            )
2308            .await?;
2309        match response {
2310            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2311            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2312        }
2313    }
2314    ///Enumerates public relationships between one account, and a list of other accounts. Does not require auth.
2315    pub async fn get_relationships(
2316        &self,
2317        params: crate::app::bsky::graph::get_relationships::Parameters,
2318    ) -> atrium_xrpc::Result<
2319        crate::app::bsky::graph::get_relationships::Output,
2320        crate::app::bsky::graph::get_relationships::Error,
2321    > {
2322        let response = self
2323            .xrpc
2324            .send_xrpc::<
2325                _,
2326                (),
2327                _,
2328                _,
2329            >(
2330                &atrium_xrpc::XrpcRequest {
2331                    method: http::Method::GET,
2332                    nsid: crate::app::bsky::graph::get_relationships::NSID.into(),
2333                    parameters: Some(params),
2334                    input: None,
2335                    encoding: None,
2336                },
2337            )
2338            .await?;
2339        match response {
2340            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2341            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2342        }
2343    }
2344    ///Gets a view of a starter pack.
2345    pub async fn get_starter_pack(
2346        &self,
2347        params: crate::app::bsky::graph::get_starter_pack::Parameters,
2348    ) -> atrium_xrpc::Result<
2349        crate::app::bsky::graph::get_starter_pack::Output,
2350        crate::app::bsky::graph::get_starter_pack::Error,
2351    > {
2352        let response = self
2353            .xrpc
2354            .send_xrpc::<
2355                _,
2356                (),
2357                _,
2358                _,
2359            >(
2360                &atrium_xrpc::XrpcRequest {
2361                    method: http::Method::GET,
2362                    nsid: crate::app::bsky::graph::get_starter_pack::NSID.into(),
2363                    parameters: Some(params),
2364                    input: None,
2365                    encoding: None,
2366                },
2367            )
2368            .await?;
2369        match response {
2370            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2371            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2372        }
2373    }
2374    ///Get views for a list of starter packs.
2375    pub async fn get_starter_packs(
2376        &self,
2377        params: crate::app::bsky::graph::get_starter_packs::Parameters,
2378    ) -> atrium_xrpc::Result<
2379        crate::app::bsky::graph::get_starter_packs::Output,
2380        crate::app::bsky::graph::get_starter_packs::Error,
2381    > {
2382        let response = self
2383            .xrpc
2384            .send_xrpc::<
2385                _,
2386                (),
2387                _,
2388                _,
2389            >(
2390                &atrium_xrpc::XrpcRequest {
2391                    method: http::Method::GET,
2392                    nsid: crate::app::bsky::graph::get_starter_packs::NSID.into(),
2393                    parameters: Some(params),
2394                    input: None,
2395                    encoding: None,
2396                },
2397            )
2398            .await?;
2399        match response {
2400            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2401            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2402        }
2403    }
2404    ///Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth.
2405    pub async fn get_starter_packs_with_membership(
2406        &self,
2407        params: crate::app::bsky::graph::get_starter_packs_with_membership::Parameters,
2408    ) -> atrium_xrpc::Result<
2409        crate::app::bsky::graph::get_starter_packs_with_membership::Output,
2410        crate::app::bsky::graph::get_starter_packs_with_membership::Error,
2411    > {
2412        let response = self
2413            .xrpc
2414            .send_xrpc::<
2415                _,
2416                (),
2417                _,
2418                _,
2419            >(
2420                &atrium_xrpc::XrpcRequest {
2421                    method: http::Method::GET,
2422                    nsid: crate::app::bsky::graph::get_starter_packs_with_membership::NSID
2423                        .into(),
2424                    parameters: Some(params),
2425                    input: None,
2426                    encoding: None,
2427                },
2428            )
2429            .await?;
2430        match response {
2431            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2432            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2433        }
2434    }
2435    ///Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.
2436    pub async fn get_suggested_follows_by_actor(
2437        &self,
2438        params: crate::app::bsky::graph::get_suggested_follows_by_actor::Parameters,
2439    ) -> atrium_xrpc::Result<
2440        crate::app::bsky::graph::get_suggested_follows_by_actor::Output,
2441        crate::app::bsky::graph::get_suggested_follows_by_actor::Error,
2442    > {
2443        let response = self
2444            .xrpc
2445            .send_xrpc::<
2446                _,
2447                (),
2448                _,
2449                _,
2450            >(
2451                &atrium_xrpc::XrpcRequest {
2452                    method: http::Method::GET,
2453                    nsid: crate::app::bsky::graph::get_suggested_follows_by_actor::NSID
2454                        .into(),
2455                    parameters: Some(params),
2456                    input: None,
2457                    encoding: None,
2458                },
2459            )
2460            .await?;
2461        match response {
2462            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2463            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2464        }
2465    }
2466    ///Creates a mute relationship for the specified account. If a mute already exists for the account, it is updated in place: the stored scope is replaced with the scope in this request. Mutes are private in Bluesky. Requires auth.
2467    pub async fn mute_actor(
2468        &self,
2469        input: crate::app::bsky::graph::mute_actor::Input,
2470    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor::Error> {
2471        let response = self
2472            .xrpc
2473            .send_xrpc::<
2474                (),
2475                _,
2476                (),
2477                _,
2478            >(
2479                &atrium_xrpc::XrpcRequest {
2480                    method: http::Method::POST,
2481                    nsid: crate::app::bsky::graph::mute_actor::NSID.into(),
2482                    parameters: None,
2483                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2484                    encoding: Some(String::from("application/json")),
2485                },
2486            )
2487            .await?;
2488        match response {
2489            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2490            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2491        }
2492    }
2493    ///Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.
2494    pub async fn mute_actor_list(
2495        &self,
2496        input: crate::app::bsky::graph::mute_actor_list::Input,
2497    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_actor_list::Error> {
2498        let response = self
2499            .xrpc
2500            .send_xrpc::<
2501                (),
2502                _,
2503                (),
2504                _,
2505            >(
2506                &atrium_xrpc::XrpcRequest {
2507                    method: http::Method::POST,
2508                    nsid: crate::app::bsky::graph::mute_actor_list::NSID.into(),
2509                    parameters: None,
2510                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2511                    encoding: Some(String::from("application/json")),
2512                },
2513            )
2514            .await?;
2515        match response {
2516            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2517            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2518        }
2519    }
2520    ///Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth.
2521    pub async fn mute_thread(
2522        &self,
2523        input: crate::app::bsky::graph::mute_thread::Input,
2524    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::mute_thread::Error> {
2525        let response = self
2526            .xrpc
2527            .send_xrpc::<
2528                (),
2529                _,
2530                (),
2531                _,
2532            >(
2533                &atrium_xrpc::XrpcRequest {
2534                    method: http::Method::POST,
2535                    nsid: crate::app::bsky::graph::mute_thread::NSID.into(),
2536                    parameters: None,
2537                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2538                    encoding: Some(String::from("application/json")),
2539                },
2540            )
2541            .await?;
2542        match response {
2543            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2544            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2545        }
2546    }
2547    ///Find starter packs matching search criteria. Does not require auth.
2548    pub async fn search_starter_packs(
2549        &self,
2550        params: crate::app::bsky::graph::search_starter_packs::Parameters,
2551    ) -> atrium_xrpc::Result<
2552        crate::app::bsky::graph::search_starter_packs::Output,
2553        crate::app::bsky::graph::search_starter_packs::Error,
2554    > {
2555        let response = self
2556            .xrpc
2557            .send_xrpc::<
2558                _,
2559                (),
2560                _,
2561                _,
2562            >(
2563                &atrium_xrpc::XrpcRequest {
2564                    method: http::Method::GET,
2565                    nsid: crate::app::bsky::graph::search_starter_packs::NSID.into(),
2566                    parameters: Some(params),
2567                    input: None,
2568                    encoding: None,
2569                },
2570            )
2571            .await?;
2572        match response {
2573            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2574            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2575        }
2576    }
2577    ///Find starter packs matching search criteria. Does not require auth.
2578    pub async fn search_starter_packs_v2(
2579        &self,
2580        params: crate::app::bsky::graph::search_starter_packs_v2::Parameters,
2581    ) -> atrium_xrpc::Result<
2582        crate::app::bsky::graph::search_starter_packs_v2::Output,
2583        crate::app::bsky::graph::search_starter_packs_v2::Error,
2584    > {
2585        let response = self
2586            .xrpc
2587            .send_xrpc::<
2588                _,
2589                (),
2590                _,
2591                _,
2592            >(
2593                &atrium_xrpc::XrpcRequest {
2594                    method: http::Method::GET,
2595                    nsid: crate::app::bsky::graph::search_starter_packs_v2::NSID.into(),
2596                    parameters: Some(params),
2597                    input: None,
2598                    encoding: None,
2599                },
2600            )
2601            .await?;
2602        match response {
2603            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2604            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2605        }
2606    }
2607    ///Unmutes the specified account. Requires auth.
2608    pub async fn unmute_actor(
2609        &self,
2610        input: crate::app::bsky::graph::unmute_actor::Input,
2611    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor::Error> {
2612        let response = self
2613            .xrpc
2614            .send_xrpc::<
2615                (),
2616                _,
2617                (),
2618                _,
2619            >(
2620                &atrium_xrpc::XrpcRequest {
2621                    method: http::Method::POST,
2622                    nsid: crate::app::bsky::graph::unmute_actor::NSID.into(),
2623                    parameters: None,
2624                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2625                    encoding: Some(String::from("application/json")),
2626                },
2627            )
2628            .await?;
2629        match response {
2630            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2631            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2632        }
2633    }
2634    ///Unmutes the specified list of accounts. Requires auth.
2635    pub async fn unmute_actor_list(
2636        &self,
2637        input: crate::app::bsky::graph::unmute_actor_list::Input,
2638    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_actor_list::Error> {
2639        let response = self
2640            .xrpc
2641            .send_xrpc::<
2642                (),
2643                _,
2644                (),
2645                _,
2646            >(
2647                &atrium_xrpc::XrpcRequest {
2648                    method: http::Method::POST,
2649                    nsid: crate::app::bsky::graph::unmute_actor_list::NSID.into(),
2650                    parameters: None,
2651                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2652                    encoding: Some(String::from("application/json")),
2653                },
2654            )
2655            .await?;
2656        match response {
2657            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2658            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2659        }
2660    }
2661    ///Unmutes the specified thread. Requires auth.
2662    pub async fn unmute_thread(
2663        &self,
2664        input: crate::app::bsky::graph::unmute_thread::Input,
2665    ) -> atrium_xrpc::Result<(), crate::app::bsky::graph::unmute_thread::Error> {
2666        let response = self
2667            .xrpc
2668            .send_xrpc::<
2669                (),
2670                _,
2671                (),
2672                _,
2673            >(
2674                &atrium_xrpc::XrpcRequest {
2675                    method: http::Method::POST,
2676                    nsid: crate::app::bsky::graph::unmute_thread::NSID.into(),
2677                    parameters: None,
2678                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2679                    encoding: Some(String::from("application/json")),
2680                },
2681            )
2682            .await?;
2683        match response {
2684            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2685            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2686        }
2687    }
2688}
2689#[cfg(feature = "namespace-appbsky")]
2690impl<T> app::bsky::labeler::Service<T>
2691where
2692    T: atrium_xrpc::XrpcClient + Send + Sync,
2693{
2694    #[allow(unused_variables)]
2695    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2696        Self {
2697            xrpc,
2698            _phantom: core::marker::PhantomData,
2699        }
2700    }
2701    ///Get information about a list of labeler services.
2702    pub async fn get_services(
2703        &self,
2704        params: crate::app::bsky::labeler::get_services::Parameters,
2705    ) -> atrium_xrpc::Result<
2706        crate::app::bsky::labeler::get_services::Output,
2707        crate::app::bsky::labeler::get_services::Error,
2708    > {
2709        let response = self
2710            .xrpc
2711            .send_xrpc::<
2712                _,
2713                (),
2714                _,
2715                _,
2716            >(
2717                &atrium_xrpc::XrpcRequest {
2718                    method: http::Method::GET,
2719                    nsid: crate::app::bsky::labeler::get_services::NSID.into(),
2720                    parameters: Some(params),
2721                    input: None,
2722                    encoding: None,
2723                },
2724            )
2725            .await?;
2726        match response {
2727            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2728            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2729        }
2730    }
2731}
2732#[cfg(feature = "namespace-appbsky")]
2733impl<T> app::bsky::notification::Service<T>
2734where
2735    T: atrium_xrpc::XrpcClient + Send + Sync,
2736{
2737    #[allow(unused_variables)]
2738    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
2739        Self {
2740            xrpc,
2741            _phantom: core::marker::PhantomData,
2742        }
2743    }
2744    ///Get notification-related preferences for an account. Requires auth.
2745    pub async fn get_preferences(
2746        &self,
2747        params: crate::app::bsky::notification::get_preferences::Parameters,
2748    ) -> atrium_xrpc::Result<
2749        crate::app::bsky::notification::get_preferences::Output,
2750        crate::app::bsky::notification::get_preferences::Error,
2751    > {
2752        let response = self
2753            .xrpc
2754            .send_xrpc::<
2755                _,
2756                (),
2757                _,
2758                _,
2759            >(
2760                &atrium_xrpc::XrpcRequest {
2761                    method: http::Method::GET,
2762                    nsid: crate::app::bsky::notification::get_preferences::NSID.into(),
2763                    parameters: Some(params),
2764                    input: None,
2765                    encoding: None,
2766                },
2767            )
2768            .await?;
2769        match response {
2770            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2771            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2772        }
2773    }
2774    ///Count the number of unread notifications for the requesting account. Requires auth.
2775    pub async fn get_unread_count(
2776        &self,
2777        params: crate::app::bsky::notification::get_unread_count::Parameters,
2778    ) -> atrium_xrpc::Result<
2779        crate::app::bsky::notification::get_unread_count::Output,
2780        crate::app::bsky::notification::get_unread_count::Error,
2781    > {
2782        let response = self
2783            .xrpc
2784            .send_xrpc::<
2785                _,
2786                (),
2787                _,
2788                _,
2789            >(
2790                &atrium_xrpc::XrpcRequest {
2791                    method: http::Method::GET,
2792                    nsid: crate::app::bsky::notification::get_unread_count::NSID.into(),
2793                    parameters: Some(params),
2794                    input: None,
2795                    encoding: None,
2796                },
2797            )
2798            .await?;
2799        match response {
2800            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2801            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2802        }
2803    }
2804    ///Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth.
2805    pub async fn list_activity_subscriptions(
2806        &self,
2807        params: crate::app::bsky::notification::list_activity_subscriptions::Parameters,
2808    ) -> atrium_xrpc::Result<
2809        crate::app::bsky::notification::list_activity_subscriptions::Output,
2810        crate::app::bsky::notification::list_activity_subscriptions::Error,
2811    > {
2812        let response = self
2813            .xrpc
2814            .send_xrpc::<
2815                _,
2816                (),
2817                _,
2818                _,
2819            >(
2820                &atrium_xrpc::XrpcRequest {
2821                    method: http::Method::GET,
2822                    nsid: crate::app::bsky::notification::list_activity_subscriptions::NSID
2823                        .into(),
2824                    parameters: Some(params),
2825                    input: None,
2826                    encoding: None,
2827                },
2828            )
2829            .await?;
2830        match response {
2831            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2832            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2833        }
2834    }
2835    ///Enumerate notifications for the requesting account. Requires auth.
2836    pub async fn list_notifications(
2837        &self,
2838        params: crate::app::bsky::notification::list_notifications::Parameters,
2839    ) -> atrium_xrpc::Result<
2840        crate::app::bsky::notification::list_notifications::Output,
2841        crate::app::bsky::notification::list_notifications::Error,
2842    > {
2843        let response = self
2844            .xrpc
2845            .send_xrpc::<
2846                _,
2847                (),
2848                _,
2849                _,
2850            >(
2851                &atrium_xrpc::XrpcRequest {
2852                    method: http::Method::GET,
2853                    nsid: crate::app::bsky::notification::list_notifications::NSID
2854                        .into(),
2855                    parameters: Some(params),
2856                    input: None,
2857                    encoding: None,
2858                },
2859            )
2860            .await?;
2861        match response {
2862            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2863            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2864        }
2865    }
2866    ///Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth.
2867    pub async fn put_activity_subscription(
2868        &self,
2869        input: crate::app::bsky::notification::put_activity_subscription::Input,
2870    ) -> atrium_xrpc::Result<
2871        crate::app::bsky::notification::put_activity_subscription::Output,
2872        crate::app::bsky::notification::put_activity_subscription::Error,
2873    > {
2874        let response = self
2875            .xrpc
2876            .send_xrpc::<
2877                (),
2878                _,
2879                _,
2880                _,
2881            >(
2882                &atrium_xrpc::XrpcRequest {
2883                    method: http::Method::POST,
2884                    nsid: crate::app::bsky::notification::put_activity_subscription::NSID
2885                        .into(),
2886                    parameters: None,
2887                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2888                    encoding: Some(String::from("application/json")),
2889                },
2890            )
2891            .await?;
2892        match response {
2893            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2894            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2895        }
2896    }
2897    ///Set notification-related preferences for an account. Requires auth.
2898    pub async fn put_preferences(
2899        &self,
2900        input: crate::app::bsky::notification::put_preferences::Input,
2901    ) -> atrium_xrpc::Result<
2902        (),
2903        crate::app::bsky::notification::put_preferences::Error,
2904    > {
2905        let response = self
2906            .xrpc
2907            .send_xrpc::<
2908                (),
2909                _,
2910                (),
2911                _,
2912            >(
2913                &atrium_xrpc::XrpcRequest {
2914                    method: http::Method::POST,
2915                    nsid: crate::app::bsky::notification::put_preferences::NSID.into(),
2916                    parameters: None,
2917                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2918                    encoding: Some(String::from("application/json")),
2919                },
2920            )
2921            .await?;
2922        match response {
2923            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2924            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2925        }
2926    }
2927    ///Set notification-related preferences for an account. Requires auth.
2928    pub async fn put_preferences_v2(
2929        &self,
2930        input: crate::app::bsky::notification::put_preferences_v2::Input,
2931    ) -> atrium_xrpc::Result<
2932        crate::app::bsky::notification::put_preferences_v2::Output,
2933        crate::app::bsky::notification::put_preferences_v2::Error,
2934    > {
2935        let response = self
2936            .xrpc
2937            .send_xrpc::<
2938                (),
2939                _,
2940                _,
2941                _,
2942            >(
2943                &atrium_xrpc::XrpcRequest {
2944                    method: http::Method::POST,
2945                    nsid: crate::app::bsky::notification::put_preferences_v2::NSID
2946                        .into(),
2947                    parameters: None,
2948                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2949                    encoding: Some(String::from("application/json")),
2950                },
2951            )
2952            .await?;
2953        match response {
2954            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
2955            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2956        }
2957    }
2958    ///Register to receive push notifications, via a specified service, for the requesting account. Requires auth.
2959    pub async fn register_push(
2960        &self,
2961        input: crate::app::bsky::notification::register_push::Input,
2962    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::register_push::Error> {
2963        let response = self
2964            .xrpc
2965            .send_xrpc::<
2966                (),
2967                _,
2968                (),
2969                _,
2970            >(
2971                &atrium_xrpc::XrpcRequest {
2972                    method: http::Method::POST,
2973                    nsid: crate::app::bsky::notification::register_push::NSID.into(),
2974                    parameters: None,
2975                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
2976                    encoding: Some(String::from("application/json")),
2977                },
2978            )
2979            .await?;
2980        match response {
2981            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
2982            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
2983        }
2984    }
2985    ///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.
2986    pub async fn unregister_push(
2987        &self,
2988        input: crate::app::bsky::notification::unregister_push::Input,
2989    ) -> atrium_xrpc::Result<
2990        (),
2991        crate::app::bsky::notification::unregister_push::Error,
2992    > {
2993        let response = self
2994            .xrpc
2995            .send_xrpc::<
2996                (),
2997                _,
2998                (),
2999                _,
3000            >(
3001                &atrium_xrpc::XrpcRequest {
3002                    method: http::Method::POST,
3003                    nsid: crate::app::bsky::notification::unregister_push::NSID.into(),
3004                    parameters: None,
3005                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3006                    encoding: Some(String::from("application/json")),
3007                },
3008            )
3009            .await?;
3010        match response {
3011            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3012            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3013        }
3014    }
3015    ///Notify server that the requesting account has seen notifications. Requires auth.
3016    pub async fn update_seen(
3017        &self,
3018        input: crate::app::bsky::notification::update_seen::Input,
3019    ) -> atrium_xrpc::Result<(), crate::app::bsky::notification::update_seen::Error> {
3020        let response = self
3021            .xrpc
3022            .send_xrpc::<
3023                (),
3024                _,
3025                (),
3026                _,
3027            >(
3028                &atrium_xrpc::XrpcRequest {
3029                    method: http::Method::POST,
3030                    nsid: crate::app::bsky::notification::update_seen::NSID.into(),
3031                    parameters: None,
3032                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3033                    encoding: Some(String::from("application/json")),
3034                },
3035            )
3036            .await?;
3037        match response {
3038            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
3039            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3040        }
3041    }
3042}
3043#[cfg(feature = "namespace-appbsky")]
3044impl<T> app::bsky::unspecced::Service<T>
3045where
3046    T: atrium_xrpc::XrpcClient + Send + Sync,
3047{
3048    #[allow(unused_variables)]
3049    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3050        Self {
3051            xrpc,
3052            _phantom: core::marker::PhantomData,
3053        }
3054    }
3055    ///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.
3056    pub async fn get_age_assurance_state(
3057        &self,
3058    ) -> atrium_xrpc::Result<
3059        crate::app::bsky::unspecced::get_age_assurance_state::Output,
3060        crate::app::bsky::unspecced::get_age_assurance_state::Error,
3061    > {
3062        let response = self
3063            .xrpc
3064            .send_xrpc::<
3065                (),
3066                (),
3067                _,
3068                _,
3069            >(
3070                &atrium_xrpc::XrpcRequest {
3071                    method: http::Method::GET,
3072                    nsid: crate::app::bsky::unspecced::get_age_assurance_state::NSID
3073                        .into(),
3074                    parameters: None,
3075                    input: None,
3076                    encoding: None,
3077                },
3078            )
3079            .await?;
3080        match response {
3081            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3082            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3083        }
3084    }
3085    ///Get miscellaneous runtime configuration.
3086    pub async fn get_config(
3087        &self,
3088    ) -> atrium_xrpc::Result<
3089        crate::app::bsky::unspecced::get_config::Output,
3090        crate::app::bsky::unspecced::get_config::Error,
3091    > {
3092        let response = self
3093            .xrpc
3094            .send_xrpc::<
3095                (),
3096                (),
3097                _,
3098                _,
3099            >(
3100                &atrium_xrpc::XrpcRequest {
3101                    method: http::Method::GET,
3102                    nsid: crate::app::bsky::unspecced::get_config::NSID.into(),
3103                    parameters: None,
3104                    input: None,
3105                    encoding: None,
3106                },
3107            )
3108            .await?;
3109        match response {
3110            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3111            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3112        }
3113    }
3114    ///Get a list of suggested starterpacks for onboarding
3115    pub async fn get_onboarding_suggested_starter_packs(
3116        &self,
3117        params: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Parameters,
3118    ) -> atrium_xrpc::Result<
3119        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Output,
3120        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::Error,
3121    > {
3122        let response = self
3123            .xrpc
3124            .send_xrpc::<
3125                _,
3126                (),
3127                _,
3128                _,
3129            >(
3130                &atrium_xrpc::XrpcRequest {
3131                    method: http::Method::GET,
3132                    nsid: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs::NSID
3133                        .into(),
3134                    parameters: Some(params),
3135                    input: None,
3136                    encoding: None,
3137                },
3138            )
3139            .await?;
3140        match response {
3141            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3142            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3143        }
3144    }
3145    ///Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks
3146    pub async fn get_onboarding_suggested_starter_packs_skeleton(
3147        &self,
3148        params: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Parameters,
3149    ) -> atrium_xrpc::Result<
3150        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Output,
3151        crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::Error,
3152    > {
3153        let response = self
3154            .xrpc
3155            .send_xrpc::<
3156                _,
3157                (),
3158                _,
3159                _,
3160            >(
3161                &atrium_xrpc::XrpcRequest {
3162                    method: http::Method::GET,
3163                    nsid: crate::app::bsky::unspecced::get_onboarding_suggested_starter_packs_skeleton::NSID
3164                        .into(),
3165                    parameters: Some(params),
3166                    input: None,
3167                    encoding: None,
3168                },
3169            )
3170            .await?;
3171        match response {
3172            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3173            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3174        }
3175    }
3176    ///Get a skeleton of suggested users for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedOnboardingUsers
3177    pub async fn get_onboarding_suggested_users_skeleton(
3178        &self,
3179        params: crate::app::bsky::unspecced::get_onboarding_suggested_users_skeleton::Parameters,
3180    ) -> atrium_xrpc::Result<
3181        crate::app::bsky::unspecced::get_onboarding_suggested_users_skeleton::Output,
3182        crate::app::bsky::unspecced::get_onboarding_suggested_users_skeleton::Error,
3183    > {
3184        let response = self
3185            .xrpc
3186            .send_xrpc::<
3187                _,
3188                (),
3189                _,
3190                _,
3191            >(
3192                &atrium_xrpc::XrpcRequest {
3193                    method: http::Method::GET,
3194                    nsid: crate::app::bsky::unspecced::get_onboarding_suggested_users_skeleton::NSID
3195                        .into(),
3196                    parameters: Some(params),
3197                    input: None,
3198                    encoding: None,
3199                },
3200            )
3201            .await?;
3202        match response {
3203            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3204            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3205        }
3206    }
3207    ///An unspecced view of globally popular feed generators.
3208    pub async fn get_popular_feed_generators(
3209        &self,
3210        params: crate::app::bsky::unspecced::get_popular_feed_generators::Parameters,
3211    ) -> atrium_xrpc::Result<
3212        crate::app::bsky::unspecced::get_popular_feed_generators::Output,
3213        crate::app::bsky::unspecced::get_popular_feed_generators::Error,
3214    > {
3215        let response = self
3216            .xrpc
3217            .send_xrpc::<
3218                _,
3219                (),
3220                _,
3221                _,
3222            >(
3223                &atrium_xrpc::XrpcRequest {
3224                    method: http::Method::GET,
3225                    nsid: crate::app::bsky::unspecced::get_popular_feed_generators::NSID
3226                        .into(),
3227                    parameters: Some(params),
3228                    input: None,
3229                    encoding: None,
3230                },
3231            )
3232            .await?;
3233        match response {
3234            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3235            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3236        }
3237    }
3238    ///(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.
3239    pub async fn get_post_thread_other_v2(
3240        &self,
3241        params: crate::app::bsky::unspecced::get_post_thread_other_v2::Parameters,
3242    ) -> atrium_xrpc::Result<
3243        crate::app::bsky::unspecced::get_post_thread_other_v2::Output,
3244        crate::app::bsky::unspecced::get_post_thread_other_v2::Error,
3245    > {
3246        let response = self
3247            .xrpc
3248            .send_xrpc::<
3249                _,
3250                (),
3251                _,
3252                _,
3253            >(
3254                &atrium_xrpc::XrpcRequest {
3255                    method: http::Method::GET,
3256                    nsid: crate::app::bsky::unspecced::get_post_thread_other_v2::NSID
3257                        .into(),
3258                    parameters: Some(params),
3259                    input: None,
3260                    encoding: None,
3261                },
3262            )
3263            .await?;
3264        match response {
3265            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3266            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3267        }
3268    }
3269    ///(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.
3270    pub async fn get_post_thread_v2(
3271        &self,
3272        params: crate::app::bsky::unspecced::get_post_thread_v2::Parameters,
3273    ) -> atrium_xrpc::Result<
3274        crate::app::bsky::unspecced::get_post_thread_v2::Output,
3275        crate::app::bsky::unspecced::get_post_thread_v2::Error,
3276    > {
3277        let response = self
3278            .xrpc
3279            .send_xrpc::<
3280                _,
3281                (),
3282                _,
3283                _,
3284            >(
3285                &atrium_xrpc::XrpcRequest {
3286                    method: http::Method::GET,
3287                    nsid: crate::app::bsky::unspecced::get_post_thread_v2::NSID.into(),
3288                    parameters: Some(params),
3289                    input: None,
3290                    encoding: None,
3291                },
3292            )
3293            .await?;
3294        match response {
3295            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3296            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3297        }
3298    }
3299    ///Get a list of suggested feeds
3300    pub async fn get_suggested_feeds(
3301        &self,
3302        params: crate::app::bsky::unspecced::get_suggested_feeds::Parameters,
3303    ) -> atrium_xrpc::Result<
3304        crate::app::bsky::unspecced::get_suggested_feeds::Output,
3305        crate::app::bsky::unspecced::get_suggested_feeds::Error,
3306    > {
3307        let response = self
3308            .xrpc
3309            .send_xrpc::<
3310                _,
3311                (),
3312                _,
3313                _,
3314            >(
3315                &atrium_xrpc::XrpcRequest {
3316                    method: http::Method::GET,
3317                    nsid: crate::app::bsky::unspecced::get_suggested_feeds::NSID.into(),
3318                    parameters: Some(params),
3319                    input: None,
3320                    encoding: None,
3321                },
3322            )
3323            .await?;
3324        match response {
3325            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3326            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3327        }
3328    }
3329    ///Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds
3330    pub async fn get_suggested_feeds_skeleton(
3331        &self,
3332        params: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Parameters,
3333    ) -> atrium_xrpc::Result<
3334        crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Output,
3335        crate::app::bsky::unspecced::get_suggested_feeds_skeleton::Error,
3336    > {
3337        let response = self
3338            .xrpc
3339            .send_xrpc::<
3340                _,
3341                (),
3342                _,
3343                _,
3344            >(
3345                &atrium_xrpc::XrpcRequest {
3346                    method: http::Method::GET,
3347                    nsid: crate::app::bsky::unspecced::get_suggested_feeds_skeleton::NSID
3348                        .into(),
3349                    parameters: Some(params),
3350                    input: None,
3351                    encoding: None,
3352                },
3353            )
3354            .await?;
3355        match response {
3356            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3357            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3358        }
3359    }
3360    ///Get a list of suggested users for onboarding
3361    pub async fn get_suggested_onboarding_users(
3362        &self,
3363        params: crate::app::bsky::unspecced::get_suggested_onboarding_users::Parameters,
3364    ) -> atrium_xrpc::Result<
3365        crate::app::bsky::unspecced::get_suggested_onboarding_users::Output,
3366        crate::app::bsky::unspecced::get_suggested_onboarding_users::Error,
3367    > {
3368        let response = self
3369            .xrpc
3370            .send_xrpc::<
3371                _,
3372                (),
3373                _,
3374                _,
3375            >(
3376                &atrium_xrpc::XrpcRequest {
3377                    method: http::Method::GET,
3378                    nsid: crate::app::bsky::unspecced::get_suggested_onboarding_users::NSID
3379                        .into(),
3380                    parameters: Some(params),
3381                    input: None,
3382                    encoding: None,
3383                },
3384            )
3385            .await?;
3386        match response {
3387            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3388            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3389        }
3390    }
3391    ///Get a list of suggested starterpacks
3392    pub async fn get_suggested_starter_packs(
3393        &self,
3394        params: crate::app::bsky::unspecced::get_suggested_starter_packs::Parameters,
3395    ) -> atrium_xrpc::Result<
3396        crate::app::bsky::unspecced::get_suggested_starter_packs::Output,
3397        crate::app::bsky::unspecced::get_suggested_starter_packs::Error,
3398    > {
3399        let response = self
3400            .xrpc
3401            .send_xrpc::<
3402                _,
3403                (),
3404                _,
3405                _,
3406            >(
3407                &atrium_xrpc::XrpcRequest {
3408                    method: http::Method::GET,
3409                    nsid: crate::app::bsky::unspecced::get_suggested_starter_packs::NSID
3410                        .into(),
3411                    parameters: Some(params),
3412                    input: None,
3413                    encoding: None,
3414                },
3415            )
3416            .await?;
3417        match response {
3418            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3419            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3420        }
3421    }
3422    ///Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks
3423    pub async fn get_suggested_starter_packs_skeleton(
3424        &self,
3425        params: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Parameters,
3426    ) -> atrium_xrpc::Result<
3427        crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Output,
3428        crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::Error,
3429    > {
3430        let response = self
3431            .xrpc
3432            .send_xrpc::<
3433                _,
3434                (),
3435                _,
3436                _,
3437            >(
3438                &atrium_xrpc::XrpcRequest {
3439                    method: http::Method::GET,
3440                    nsid: crate::app::bsky::unspecced::get_suggested_starter_packs_skeleton::NSID
3441                        .into(),
3442                    parameters: Some(params),
3443                    input: None,
3444                    encoding: None,
3445                },
3446            )
3447            .await?;
3448        match response {
3449            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3450            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3451        }
3452    }
3453    ///Get a list of suggested users
3454    pub async fn get_suggested_users(
3455        &self,
3456        params: crate::app::bsky::unspecced::get_suggested_users::Parameters,
3457    ) -> atrium_xrpc::Result<
3458        crate::app::bsky::unspecced::get_suggested_users::Output,
3459        crate::app::bsky::unspecced::get_suggested_users::Error,
3460    > {
3461        let response = self
3462            .xrpc
3463            .send_xrpc::<
3464                _,
3465                (),
3466                _,
3467                _,
3468            >(
3469                &atrium_xrpc::XrpcRequest {
3470                    method: http::Method::GET,
3471                    nsid: crate::app::bsky::unspecced::get_suggested_users::NSID.into(),
3472                    parameters: Some(params),
3473                    input: None,
3474                    encoding: None,
3475                },
3476            )
3477            .await?;
3478        match response {
3479            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3480            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3481        }
3482    }
3483    ///Get a list of suggested users for the Discover page
3484    pub async fn get_suggested_users_for_discover(
3485        &self,
3486        params: crate::app::bsky::unspecced::get_suggested_users_for_discover::Parameters,
3487    ) -> atrium_xrpc::Result<
3488        crate::app::bsky::unspecced::get_suggested_users_for_discover::Output,
3489        crate::app::bsky::unspecced::get_suggested_users_for_discover::Error,
3490    > {
3491        let response = self
3492            .xrpc
3493            .send_xrpc::<
3494                _,
3495                (),
3496                _,
3497                _,
3498            >(
3499                &atrium_xrpc::XrpcRequest {
3500                    method: http::Method::GET,
3501                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_discover::NSID
3502                        .into(),
3503                    parameters: Some(params),
3504                    input: None,
3505                    encoding: None,
3506                },
3507            )
3508            .await?;
3509        match response {
3510            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3511            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3512        }
3513    }
3514    ///Get a skeleton of suggested users for the Discover page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForDiscover
3515    pub async fn get_suggested_users_for_discover_skeleton(
3516        &self,
3517        params: crate::app::bsky::unspecced::get_suggested_users_for_discover_skeleton::Parameters,
3518    ) -> atrium_xrpc::Result<
3519        crate::app::bsky::unspecced::get_suggested_users_for_discover_skeleton::Output,
3520        crate::app::bsky::unspecced::get_suggested_users_for_discover_skeleton::Error,
3521    > {
3522        let response = self
3523            .xrpc
3524            .send_xrpc::<
3525                _,
3526                (),
3527                _,
3528                _,
3529            >(
3530                &atrium_xrpc::XrpcRequest {
3531                    method: http::Method::GET,
3532                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_discover_skeleton::NSID
3533                        .into(),
3534                    parameters: Some(params),
3535                    input: None,
3536                    encoding: None,
3537                },
3538            )
3539            .await?;
3540        match response {
3541            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3542            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3543        }
3544    }
3545    ///Get a list of suggested users for the Explore page
3546    pub async fn get_suggested_users_for_explore(
3547        &self,
3548        params: crate::app::bsky::unspecced::get_suggested_users_for_explore::Parameters,
3549    ) -> atrium_xrpc::Result<
3550        crate::app::bsky::unspecced::get_suggested_users_for_explore::Output,
3551        crate::app::bsky::unspecced::get_suggested_users_for_explore::Error,
3552    > {
3553        let response = self
3554            .xrpc
3555            .send_xrpc::<
3556                _,
3557                (),
3558                _,
3559                _,
3560            >(
3561                &atrium_xrpc::XrpcRequest {
3562                    method: http::Method::GET,
3563                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_explore::NSID
3564                        .into(),
3565                    parameters: Some(params),
3566                    input: None,
3567                    encoding: None,
3568                },
3569            )
3570            .await?;
3571        match response {
3572            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3573            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3574        }
3575    }
3576    ///Get a skeleton of suggested users for the Explore page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForExplore
3577    pub async fn get_suggested_users_for_explore_skeleton(
3578        &self,
3579        params: crate::app::bsky::unspecced::get_suggested_users_for_explore_skeleton::Parameters,
3580    ) -> atrium_xrpc::Result<
3581        crate::app::bsky::unspecced::get_suggested_users_for_explore_skeleton::Output,
3582        crate::app::bsky::unspecced::get_suggested_users_for_explore_skeleton::Error,
3583    > {
3584        let response = self
3585            .xrpc
3586            .send_xrpc::<
3587                _,
3588                (),
3589                _,
3590                _,
3591            >(
3592                &atrium_xrpc::XrpcRequest {
3593                    method: http::Method::GET,
3594                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_explore_skeleton::NSID
3595                        .into(),
3596                    parameters: Some(params),
3597                    input: None,
3598                    encoding: None,
3599                },
3600            )
3601            .await?;
3602        match response {
3603            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3604            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3605        }
3606    }
3607    ///Get a list of suggested users for the See More page
3608    pub async fn get_suggested_users_for_see_more(
3609        &self,
3610        params: crate::app::bsky::unspecced::get_suggested_users_for_see_more::Parameters,
3611    ) -> atrium_xrpc::Result<
3612        crate::app::bsky::unspecced::get_suggested_users_for_see_more::Output,
3613        crate::app::bsky::unspecced::get_suggested_users_for_see_more::Error,
3614    > {
3615        let response = self
3616            .xrpc
3617            .send_xrpc::<
3618                _,
3619                (),
3620                _,
3621                _,
3622            >(
3623                &atrium_xrpc::XrpcRequest {
3624                    method: http::Method::GET,
3625                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_see_more::NSID
3626                        .into(),
3627                    parameters: Some(params),
3628                    input: None,
3629                    encoding: None,
3630                },
3631            )
3632            .await?;
3633        match response {
3634            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3635            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3636        }
3637    }
3638    ///Get a skeleton of suggested users for the See More page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForSeeMore
3639    pub async fn get_suggested_users_for_see_more_skeleton(
3640        &self,
3641        params: crate::app::bsky::unspecced::get_suggested_users_for_see_more_skeleton::Parameters,
3642    ) -> atrium_xrpc::Result<
3643        crate::app::bsky::unspecced::get_suggested_users_for_see_more_skeleton::Output,
3644        crate::app::bsky::unspecced::get_suggested_users_for_see_more_skeleton::Error,
3645    > {
3646        let response = self
3647            .xrpc
3648            .send_xrpc::<
3649                _,
3650                (),
3651                _,
3652                _,
3653            >(
3654                &atrium_xrpc::XrpcRequest {
3655                    method: http::Method::GET,
3656                    nsid: crate::app::bsky::unspecced::get_suggested_users_for_see_more_skeleton::NSID
3657                        .into(),
3658                    parameters: Some(params),
3659                    input: None,
3660                    encoding: None,
3661                },
3662            )
3663            .await?;
3664        match response {
3665            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3666            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3667        }
3668    }
3669    ///Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers
3670    pub async fn get_suggested_users_skeleton(
3671        &self,
3672        params: crate::app::bsky::unspecced::get_suggested_users_skeleton::Parameters,
3673    ) -> atrium_xrpc::Result<
3674        crate::app::bsky::unspecced::get_suggested_users_skeleton::Output,
3675        crate::app::bsky::unspecced::get_suggested_users_skeleton::Error,
3676    > {
3677        let response = self
3678            .xrpc
3679            .send_xrpc::<
3680                _,
3681                (),
3682                _,
3683                _,
3684            >(
3685                &atrium_xrpc::XrpcRequest {
3686                    method: http::Method::GET,
3687                    nsid: crate::app::bsky::unspecced::get_suggested_users_skeleton::NSID
3688                        .into(),
3689                    parameters: Some(params),
3690                    input: None,
3691                    encoding: None,
3692                },
3693            )
3694            .await?;
3695        match response {
3696            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3697            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3698        }
3699    }
3700    ///Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions
3701    pub async fn get_suggestions_skeleton(
3702        &self,
3703        params: crate::app::bsky::unspecced::get_suggestions_skeleton::Parameters,
3704    ) -> atrium_xrpc::Result<
3705        crate::app::bsky::unspecced::get_suggestions_skeleton::Output,
3706        crate::app::bsky::unspecced::get_suggestions_skeleton::Error,
3707    > {
3708        let response = self
3709            .xrpc
3710            .send_xrpc::<
3711                _,
3712                (),
3713                _,
3714                _,
3715            >(
3716                &atrium_xrpc::XrpcRequest {
3717                    method: http::Method::GET,
3718                    nsid: crate::app::bsky::unspecced::get_suggestions_skeleton::NSID
3719                        .into(),
3720                    parameters: Some(params),
3721                    input: None,
3722                    encoding: None,
3723                },
3724            )
3725            .await?;
3726        match response {
3727            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3728            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3729        }
3730    }
3731    ///Get a list of suggestions (feeds and users) tagged with categories
3732    pub async fn get_tagged_suggestions(
3733        &self,
3734        params: crate::app::bsky::unspecced::get_tagged_suggestions::Parameters,
3735    ) -> atrium_xrpc::Result<
3736        crate::app::bsky::unspecced::get_tagged_suggestions::Output,
3737        crate::app::bsky::unspecced::get_tagged_suggestions::Error,
3738    > {
3739        let response = self
3740            .xrpc
3741            .send_xrpc::<
3742                _,
3743                (),
3744                _,
3745                _,
3746            >(
3747                &atrium_xrpc::XrpcRequest {
3748                    method: http::Method::GET,
3749                    nsid: crate::app::bsky::unspecced::get_tagged_suggestions::NSID
3750                        .into(),
3751                    parameters: Some(params),
3752                    input: None,
3753                    encoding: None,
3754                },
3755            )
3756            .await?;
3757        match response {
3758            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3759            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3760        }
3761    }
3762    ///Get a list of trending topics
3763    pub async fn get_trending_topics(
3764        &self,
3765        params: crate::app::bsky::unspecced::get_trending_topics::Parameters,
3766    ) -> atrium_xrpc::Result<
3767        crate::app::bsky::unspecced::get_trending_topics::Output,
3768        crate::app::bsky::unspecced::get_trending_topics::Error,
3769    > {
3770        let response = self
3771            .xrpc
3772            .send_xrpc::<
3773                _,
3774                (),
3775                _,
3776                _,
3777            >(
3778                &atrium_xrpc::XrpcRequest {
3779                    method: http::Method::GET,
3780                    nsid: crate::app::bsky::unspecced::get_trending_topics::NSID.into(),
3781                    parameters: Some(params),
3782                    input: None,
3783                    encoding: None,
3784                },
3785            )
3786            .await?;
3787        match response {
3788            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3789            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3790        }
3791    }
3792    ///Get the current trends on the network
3793    pub async fn get_trends(
3794        &self,
3795        params: crate::app::bsky::unspecced::get_trends::Parameters,
3796    ) -> atrium_xrpc::Result<
3797        crate::app::bsky::unspecced::get_trends::Output,
3798        crate::app::bsky::unspecced::get_trends::Error,
3799    > {
3800        let response = self
3801            .xrpc
3802            .send_xrpc::<
3803                _,
3804                (),
3805                _,
3806                _,
3807            >(
3808                &atrium_xrpc::XrpcRequest {
3809                    method: http::Method::GET,
3810                    nsid: crate::app::bsky::unspecced::get_trends::NSID.into(),
3811                    parameters: Some(params),
3812                    input: None,
3813                    encoding: None,
3814                },
3815            )
3816            .await?;
3817        match response {
3818            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3819            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3820        }
3821    }
3822    ///Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends
3823    pub async fn get_trends_skeleton(
3824        &self,
3825        params: crate::app::bsky::unspecced::get_trends_skeleton::Parameters,
3826    ) -> atrium_xrpc::Result<
3827        crate::app::bsky::unspecced::get_trends_skeleton::Output,
3828        crate::app::bsky::unspecced::get_trends_skeleton::Error,
3829    > {
3830        let response = self
3831            .xrpc
3832            .send_xrpc::<
3833                _,
3834                (),
3835                _,
3836                _,
3837            >(
3838                &atrium_xrpc::XrpcRequest {
3839                    method: http::Method::GET,
3840                    nsid: crate::app::bsky::unspecced::get_trends_skeleton::NSID.into(),
3841                    parameters: Some(params),
3842                    input: None,
3843                    encoding: None,
3844                },
3845            )
3846            .await?;
3847        match response {
3848            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3849            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3850        }
3851    }
3852    ///Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.
3853    pub async fn init_age_assurance(
3854        &self,
3855        input: crate::app::bsky::unspecced::init_age_assurance::Input,
3856    ) -> atrium_xrpc::Result<
3857        crate::app::bsky::unspecced::init_age_assurance::Output,
3858        crate::app::bsky::unspecced::init_age_assurance::Error,
3859    > {
3860        let response = self
3861            .xrpc
3862            .send_xrpc::<
3863                (),
3864                _,
3865                _,
3866                _,
3867            >(
3868                &atrium_xrpc::XrpcRequest {
3869                    method: http::Method::POST,
3870                    nsid: crate::app::bsky::unspecced::init_age_assurance::NSID.into(),
3871                    parameters: None,
3872                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
3873                    encoding: Some(String::from("application/json")),
3874                },
3875            )
3876            .await?;
3877        match response {
3878            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3879            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3880        }
3881    }
3882    ///Backend Actors (profile) search, returns only skeleton.
3883    pub async fn search_actors_skeleton(
3884        &self,
3885        params: crate::app::bsky::unspecced::search_actors_skeleton::Parameters,
3886    ) -> atrium_xrpc::Result<
3887        crate::app::bsky::unspecced::search_actors_skeleton::Output,
3888        crate::app::bsky::unspecced::search_actors_skeleton::Error,
3889    > {
3890        let response = self
3891            .xrpc
3892            .send_xrpc::<
3893                _,
3894                (),
3895                _,
3896                _,
3897            >(
3898                &atrium_xrpc::XrpcRequest {
3899                    method: http::Method::GET,
3900                    nsid: crate::app::bsky::unspecced::search_actors_skeleton::NSID
3901                        .into(),
3902                    parameters: Some(params),
3903                    input: None,
3904                    encoding: None,
3905                },
3906            )
3907            .await?;
3908        match response {
3909            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3910            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3911        }
3912    }
3913    ///Backend Posts search, returns only skeleton
3914    pub async fn search_posts_skeleton(
3915        &self,
3916        params: crate::app::bsky::unspecced::search_posts_skeleton::Parameters,
3917    ) -> atrium_xrpc::Result<
3918        crate::app::bsky::unspecced::search_posts_skeleton::Output,
3919        crate::app::bsky::unspecced::search_posts_skeleton::Error,
3920    > {
3921        let response = self
3922            .xrpc
3923            .send_xrpc::<
3924                _,
3925                (),
3926                _,
3927                _,
3928            >(
3929                &atrium_xrpc::XrpcRequest {
3930                    method: http::Method::GET,
3931                    nsid: crate::app::bsky::unspecced::search_posts_skeleton::NSID
3932                        .into(),
3933                    parameters: Some(params),
3934                    input: None,
3935                    encoding: None,
3936                },
3937            )
3938            .await?;
3939        match response {
3940            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3941            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3942        }
3943    }
3944    ///Backend Starter Pack search, returns only skeleton.
3945    pub async fn search_starter_packs_skeleton(
3946        &self,
3947        params: crate::app::bsky::unspecced::search_starter_packs_skeleton::Parameters,
3948    ) -> atrium_xrpc::Result<
3949        crate::app::bsky::unspecced::search_starter_packs_skeleton::Output,
3950        crate::app::bsky::unspecced::search_starter_packs_skeleton::Error,
3951    > {
3952        let response = self
3953            .xrpc
3954            .send_xrpc::<
3955                _,
3956                (),
3957                _,
3958                _,
3959            >(
3960                &atrium_xrpc::XrpcRequest {
3961                    method: http::Method::GET,
3962                    nsid: crate::app::bsky::unspecced::search_starter_packs_skeleton::NSID
3963                        .into(),
3964                    parameters: Some(params),
3965                    input: None,
3966                    encoding: None,
3967                },
3968            )
3969            .await?;
3970        match response {
3971            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
3972            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
3973        }
3974    }
3975}
3976#[cfg(feature = "namespace-appbsky")]
3977impl<T> app::bsky::video::Service<T>
3978where
3979    T: atrium_xrpc::XrpcClient + Send + Sync,
3980{
3981    #[allow(unused_variables)]
3982    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
3983        Self {
3984            xrpc,
3985            _phantom: core::marker::PhantomData,
3986        }
3987    }
3988    ///Abort an upload only while it is created, releasing its quota reservation immediately. Terminal sessions are unchanged and return their terminal outcome. A finishing session returns UploadNotReady.
3989    pub async fn abort_upload(
3990        &self,
3991        input: crate::app::bsky::video::abort_upload::Input,
3992    ) -> atrium_xrpc::Result<
3993        crate::app::bsky::video::abort_upload::Output,
3994        crate::app::bsky::video::abort_upload::Error,
3995    > {
3996        let response = self
3997            .xrpc
3998            .send_xrpc::<
3999                (),
4000                _,
4001                _,
4002                _,
4003            >(
4004                &atrium_xrpc::XrpcRequest {
4005                    method: http::Method::POST,
4006                    nsid: crate::app::bsky::video::abort_upload::NSID.into(),
4007                    parameters: None,
4008                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4009                    encoding: Some(String::from("application/json")),
4010                },
4011            )
4012            .await?;
4013        match response {
4014            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4015            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4016        }
4017    }
4018    ///Finish an upload. This call is idempotent and safe to retry. On deduplication completedJobId may differ from the input jobId; poll getJobStatus with completedJobId. Probe-based validation failures surface later as JOB_STATE_FAILED from getJobStatus, not as errors from this call.
4019    pub async fn finish_upload(
4020        &self,
4021        input: crate::app::bsky::video::finish_upload::Input,
4022    ) -> atrium_xrpc::Result<
4023        crate::app::bsky::video::finish_upload::Output,
4024        crate::app::bsky::video::finish_upload::Error,
4025    > {
4026        let response = self
4027            .xrpc
4028            .send_xrpc::<
4029                (),
4030                _,
4031                _,
4032                _,
4033            >(
4034                &atrium_xrpc::XrpcRequest {
4035                    method: http::Method::POST,
4036                    nsid: crate::app::bsky::video::finish_upload::NSID.into(),
4037                    parameters: None,
4038                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4039                    encoding: Some(String::from("application/json")),
4040                },
4041            )
4042            .await?;
4043        match response {
4044            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4045            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4046        }
4047    }
4048    ///Get status details for a video processing job.
4049    pub async fn get_job_status(
4050        &self,
4051        params: crate::app::bsky::video::get_job_status::Parameters,
4052    ) -> atrium_xrpc::Result<
4053        crate::app::bsky::video::get_job_status::Output,
4054        crate::app::bsky::video::get_job_status::Error,
4055    > {
4056        let response = self
4057            .xrpc
4058            .send_xrpc::<
4059                _,
4060                (),
4061                _,
4062                _,
4063            >(
4064                &atrium_xrpc::XrpcRequest {
4065                    method: http::Method::GET,
4066                    nsid: crate::app::bsky::video::get_job_status::NSID.into(),
4067                    parameters: Some(params),
4068                    input: None,
4069                    encoding: None,
4070                },
4071            )
4072            .await?;
4073        match response {
4074            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4075            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4076        }
4077    }
4078    ///Get video upload limits for the authenticated user.
4079    pub async fn get_upload_limits(
4080        &self,
4081    ) -> atrium_xrpc::Result<
4082        crate::app::bsky::video::get_upload_limits::Output,
4083        crate::app::bsky::video::get_upload_limits::Error,
4084    > {
4085        let response = self
4086            .xrpc
4087            .send_xrpc::<
4088                (),
4089                (),
4090                _,
4091                _,
4092            >(
4093                &atrium_xrpc::XrpcRequest {
4094                    method: http::Method::GET,
4095                    nsid: crate::app::bsky::video::get_upload_limits::NSID.into(),
4096                    parameters: None,
4097                    input: None,
4098                    encoding: None,
4099                },
4100            )
4101            .await?;
4102        match response {
4103            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4104            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4105        }
4106    }
4107    ///Get the authoritative status of the upload phase. Terminal states remain readable. completedJobId and jobStatus are present only for completed sessions; failureReason is present only for failed sessions.
4108    pub async fn get_upload_status(
4109        &self,
4110        params: crate::app::bsky::video::get_upload_status::Parameters,
4111    ) -> atrium_xrpc::Result<
4112        crate::app::bsky::video::get_upload_status::Output,
4113        crate::app::bsky::video::get_upload_status::Error,
4114    > {
4115        let response = self
4116            .xrpc
4117            .send_xrpc::<
4118                _,
4119                (),
4120                _,
4121                _,
4122            >(
4123                &atrium_xrpc::XrpcRequest {
4124                    method: http::Method::GET,
4125                    nsid: crate::app::bsky::video::get_upload_status::NSID.into(),
4126                    parameters: Some(params),
4127                    input: None,
4128                    encoding: None,
4129                },
4130            )
4131            .await?;
4132        match response {
4133            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4134            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4135        }
4136    }
4137    ///Start a multipart video upload. The declared size is exact, while optional media properties are advisory and used only for early failure; the authoritative probe runs asynchronously after upload.
4138    pub async fn start_upload(
4139        &self,
4140        input: crate::app::bsky::video::start_upload::Input,
4141    ) -> atrium_xrpc::Result<
4142        crate::app::bsky::video::start_upload::Output,
4143        crate::app::bsky::video::start_upload::Error,
4144    > {
4145        let response = self
4146            .xrpc
4147            .send_xrpc::<
4148                (),
4149                _,
4150                _,
4151                _,
4152            >(
4153                &atrium_xrpc::XrpcRequest {
4154                    method: http::Method::POST,
4155                    nsid: crate::app::bsky::video::start_upload::NSID.into(),
4156                    parameters: None,
4157                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4158                    encoding: Some(String::from("application/json")),
4159                },
4160            )
4161            .await?;
4162        match response {
4163            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4164            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4165        }
4166    }
4167    ///Upload one part. Parts are idempotent and may be retried or re-sent while the session is created. Each expected length is derived from the upload size and part size, and Content-Length must match exactly. ETags are never exposed to clients.
4168    pub async fn upload_part(
4169        &self,
4170        input: Vec<u8>,
4171    ) -> atrium_xrpc::Result<
4172        crate::app::bsky::video::upload_part::Output,
4173        crate::app::bsky::video::upload_part::Error,
4174    > {
4175        let response = self
4176            .xrpc
4177            .send_xrpc::<
4178                (),
4179                Vec<u8>,
4180                _,
4181                _,
4182            >(
4183                &atrium_xrpc::XrpcRequest {
4184                    method: http::Method::POST,
4185                    nsid: crate::app::bsky::video::upload_part::NSID.into(),
4186                    parameters: None,
4187                    input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
4188                    encoding: Some(String::from("application/octet-stream")),
4189                },
4190            )
4191            .await?;
4192        match response {
4193            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4194            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4195        }
4196    }
4197    ///Upload a video to be processed then stored on the PDS.
4198    pub async fn upload_video(
4199        &self,
4200        input: Vec<u8>,
4201    ) -> atrium_xrpc::Result<
4202        crate::app::bsky::video::upload_video::Output,
4203        crate::app::bsky::video::upload_video::Error,
4204    > {
4205        let response = self
4206            .xrpc
4207            .send_xrpc::<
4208                (),
4209                Vec<u8>,
4210                _,
4211                _,
4212            >(
4213                &atrium_xrpc::XrpcRequest {
4214                    method: http::Method::POST,
4215                    nsid: crate::app::bsky::video::upload_video::NSID.into(),
4216                    parameters: None,
4217                    input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
4218                    encoding: Some(String::from("video/mp4")),
4219                },
4220            )
4221            .await?;
4222        match response {
4223            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4224            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4225        }
4226    }
4227}
4228impl<T> chat::Service<T>
4229where
4230    T: atrium_xrpc::XrpcClient + Send + Sync,
4231{
4232    #[allow(unused_variables)]
4233    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4234        Self {
4235            #[cfg(feature = "namespace-chatbsky")]
4236            bsky: chat::bsky::Service::new(std::sync::Arc::clone(&xrpc)),
4237            _phantom: core::marker::PhantomData,
4238        }
4239    }
4240}
4241#[cfg(feature = "namespace-chatbsky")]
4242impl<T> chat::bsky::Service<T>
4243where
4244    T: atrium_xrpc::XrpcClient + Send + Sync,
4245{
4246    #[allow(unused_variables)]
4247    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4248        Self {
4249            actor: chat::bsky::actor::Service::new(std::sync::Arc::clone(&xrpc)),
4250            convo: chat::bsky::convo::Service::new(std::sync::Arc::clone(&xrpc)),
4251            group: chat::bsky::group::Service::new(std::sync::Arc::clone(&xrpc)),
4252            moderation: chat::bsky::moderation::Service::new(
4253                std::sync::Arc::clone(&xrpc),
4254            ),
4255            notification: chat::bsky::notification::Service::new(
4256                std::sync::Arc::clone(&xrpc),
4257            ),
4258            _phantom: core::marker::PhantomData,
4259        }
4260    }
4261}
4262#[cfg(feature = "namespace-chatbsky")]
4263impl<T> chat::bsky::actor::Service<T>
4264where
4265    T: atrium_xrpc::XrpcClient + Send + Sync,
4266{
4267    #[allow(unused_variables)]
4268    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4269        Self {
4270            xrpc,
4271            _phantom: core::marker::PhantomData,
4272        }
4273    }
4274    pub async fn delete_account(
4275        &self,
4276    ) -> atrium_xrpc::Result<
4277        crate::chat::bsky::actor::delete_account::Output,
4278        crate::chat::bsky::actor::delete_account::Error,
4279    > {
4280        let response = self
4281            .xrpc
4282            .send_xrpc::<
4283                (),
4284                (),
4285                _,
4286                _,
4287            >(
4288                &atrium_xrpc::XrpcRequest {
4289                    method: http::Method::POST,
4290                    nsid: crate::chat::bsky::actor::delete_account::NSID.into(),
4291                    parameters: None,
4292                    input: None,
4293                    encoding: None,
4294                },
4295            )
4296            .await?;
4297        match response {
4298            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4299            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4300        }
4301    }
4302    pub async fn export_account_data(
4303        &self,
4304    ) -> atrium_xrpc::Result<
4305        Vec<u8>,
4306        crate::chat::bsky::actor::export_account_data::Error,
4307    > {
4308        let response = self
4309            .xrpc
4310            .send_xrpc::<
4311                (),
4312                (),
4313                (),
4314                _,
4315            >(
4316                &atrium_xrpc::XrpcRequest {
4317                    method: http::Method::GET,
4318                    nsid: crate::chat::bsky::actor::export_account_data::NSID.into(),
4319                    parameters: None,
4320                    input: None,
4321                    encoding: None,
4322                },
4323            )
4324            .await?;
4325        match response {
4326            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
4327            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4328        }
4329    }
4330    ///Get the authenticated viewer's chat status: whether their account is chat-disabled and whether their group-membership additions are restricted to accounts they follow.
4331    pub async fn get_status(
4332        &self,
4333    ) -> atrium_xrpc::Result<
4334        crate::chat::bsky::actor::get_status::Output,
4335        crate::chat::bsky::actor::get_status::Error,
4336    > {
4337        let response = self
4338            .xrpc
4339            .send_xrpc::<
4340                (),
4341                (),
4342                _,
4343                _,
4344            >(
4345                &atrium_xrpc::XrpcRequest {
4346                    method: http::Method::GET,
4347                    nsid: crate::chat::bsky::actor::get_status::NSID.into(),
4348                    parameters: None,
4349                    input: None,
4350                    encoding: None,
4351                },
4352            )
4353            .await?;
4354        match response {
4355            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4356            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4357        }
4358    }
4359}
4360#[cfg(feature = "namespace-chatbsky")]
4361impl<T> chat::bsky::convo::Service<T>
4362where
4363    T: atrium_xrpc::XrpcClient + Send + Sync,
4364{
4365    #[allow(unused_variables)]
4366    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
4367        Self {
4368            xrpc,
4369            _phantom: core::marker::PhantomData,
4370        }
4371    }
4372    ///Marks a conversation as accepted, so it is shown in the list of accepted convos instead on the request convos.
4373    pub async fn accept_convo(
4374        &self,
4375        input: crate::chat::bsky::convo::accept_convo::Input,
4376    ) -> atrium_xrpc::Result<
4377        crate::chat::bsky::convo::accept_convo::Output,
4378        crate::chat::bsky::convo::accept_convo::Error,
4379    > {
4380        let response = self
4381            .xrpc
4382            .send_xrpc::<
4383                (),
4384                _,
4385                _,
4386                _,
4387            >(
4388                &atrium_xrpc::XrpcRequest {
4389                    method: http::Method::POST,
4390                    nsid: crate::chat::bsky::convo::accept_convo::NSID.into(),
4391                    parameters: None,
4392                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4393                    encoding: Some(String::from("application/json")),
4394                },
4395            )
4396            .await?;
4397        match response {
4398            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4399            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4400        }
4401    }
4402    ///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.
4403    pub async fn add_reaction(
4404        &self,
4405        input: crate::chat::bsky::convo::add_reaction::Input,
4406    ) -> atrium_xrpc::Result<
4407        crate::chat::bsky::convo::add_reaction::Output,
4408        crate::chat::bsky::convo::add_reaction::Error,
4409    > {
4410        let response = self
4411            .xrpc
4412            .send_xrpc::<
4413                (),
4414                _,
4415                _,
4416                _,
4417            >(
4418                &atrium_xrpc::XrpcRequest {
4419                    method: http::Method::POST,
4420                    nsid: crate::chat::bsky::convo::add_reaction::NSID.into(),
4421                    parameters: None,
4422                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4423                    encoding: Some(String::from("application/json")),
4424                },
4425            )
4426            .await?;
4427        match response {
4428            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4429            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4430        }
4431    }
4432    ///Marks a message as deleted for the viewer, so they won't see that message in future enumerations.
4433    pub async fn delete_message_for_self(
4434        &self,
4435        input: crate::chat::bsky::convo::delete_message_for_self::Input,
4436    ) -> atrium_xrpc::Result<
4437        crate::chat::bsky::convo::delete_message_for_self::Output,
4438        crate::chat::bsky::convo::delete_message_for_self::Error,
4439    > {
4440        let response = self
4441            .xrpc
4442            .send_xrpc::<
4443                (),
4444                _,
4445                _,
4446                _,
4447            >(
4448                &atrium_xrpc::XrpcRequest {
4449                    method: http::Method::POST,
4450                    nsid: crate::chat::bsky::convo::delete_message_for_self::NSID.into(),
4451                    parameters: None,
4452                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4453                    encoding: Some(String::from("application/json")),
4454                },
4455            )
4456            .await?;
4457        match response {
4458            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4459            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4460        }
4461    }
4462    ///Gets an existing conversation by its ID.
4463    pub async fn get_convo(
4464        &self,
4465        params: crate::chat::bsky::convo::get_convo::Parameters,
4466    ) -> atrium_xrpc::Result<
4467        crate::chat::bsky::convo::get_convo::Output,
4468        crate::chat::bsky::convo::get_convo::Error,
4469    > {
4470        let response = self
4471            .xrpc
4472            .send_xrpc::<
4473                _,
4474                (),
4475                _,
4476                _,
4477            >(
4478                &atrium_xrpc::XrpcRequest {
4479                    method: http::Method::GET,
4480                    nsid: crate::chat::bsky::convo::get_convo::NSID.into(),
4481                    parameters: Some(params),
4482                    input: None,
4483                    encoding: None,
4484                },
4485            )
4486            .await?;
4487        match response {
4488            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4489            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4490        }
4491    }
4492    ///Check whether the requester and the other members can start a 1-1 chat. Only applicable to direct (non-group) conversations. If an existing convo is found for these members, it is returned. Does not create a new convo if it doesn't exist.
4493    pub async fn get_convo_availability(
4494        &self,
4495        params: crate::chat::bsky::convo::get_convo_availability::Parameters,
4496    ) -> atrium_xrpc::Result<
4497        crate::chat::bsky::convo::get_convo_availability::Output,
4498        crate::chat::bsky::convo::get_convo_availability::Error,
4499    > {
4500        let response = self
4501            .xrpc
4502            .send_xrpc::<
4503                _,
4504                (),
4505                _,
4506                _,
4507            >(
4508                &atrium_xrpc::XrpcRequest {
4509                    method: http::Method::GET,
4510                    nsid: crate::chat::bsky::convo::get_convo_availability::NSID.into(),
4511                    parameters: Some(params),
4512                    input: None,
4513                    encoding: None,
4514                },
4515            )
4516            .await?;
4517        match response {
4518            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4519            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4520        }
4521    }
4522    ///Get or create a 1-1 conversation for the given members. Always returns the same direct (non-group) conversation. To create a group conversation, use createGroup.
4523    pub async fn get_convo_for_members(
4524        &self,
4525        params: crate::chat::bsky::convo::get_convo_for_members::Parameters,
4526    ) -> atrium_xrpc::Result<
4527        crate::chat::bsky::convo::get_convo_for_members::Output,
4528        crate::chat::bsky::convo::get_convo_for_members::Error,
4529    > {
4530        let response = self
4531            .xrpc
4532            .send_xrpc::<
4533                _,
4534                (),
4535                _,
4536                _,
4537            >(
4538                &atrium_xrpc::XrpcRequest {
4539                    method: http::Method::GET,
4540                    nsid: crate::chat::bsky::convo::get_convo_for_members::NSID.into(),
4541                    parameters: Some(params),
4542                    input: None,
4543                    encoding: None,
4544                },
4545            )
4546            .await?;
4547        match response {
4548            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4549            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4550        }
4551    }
4552    ///Returns a paginated list of members from a conversation.
4553    pub async fn get_convo_members(
4554        &self,
4555        params: crate::chat::bsky::convo::get_convo_members::Parameters,
4556    ) -> atrium_xrpc::Result<
4557        crate::chat::bsky::convo::get_convo_members::Output,
4558        crate::chat::bsky::convo::get_convo_members::Error,
4559    > {
4560        let response = self
4561            .xrpc
4562            .send_xrpc::<
4563                _,
4564                (),
4565                _,
4566                _,
4567            >(
4568                &atrium_xrpc::XrpcRequest {
4569                    method: http::Method::GET,
4570                    nsid: crate::chat::bsky::convo::get_convo_members::NSID.into(),
4571                    parameters: Some(params),
4572                    input: None,
4573                    encoding: None,
4574                },
4575            )
4576            .await?;
4577        match response {
4578            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4579            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4580        }
4581    }
4582    pub async fn get_log(
4583        &self,
4584        params: crate::chat::bsky::convo::get_log::Parameters,
4585    ) -> atrium_xrpc::Result<
4586        crate::chat::bsky::convo::get_log::Output,
4587        crate::chat::bsky::convo::get_log::Error,
4588    > {
4589        let response = self
4590            .xrpc
4591            .send_xrpc::<
4592                _,
4593                (),
4594                _,
4595                _,
4596            >(
4597                &atrium_xrpc::XrpcRequest {
4598                    method: http::Method::GET,
4599                    nsid: crate::chat::bsky::convo::get_log::NSID.into(),
4600                    parameters: Some(params),
4601                    input: None,
4602                    encoding: None,
4603                },
4604            )
4605            .await?;
4606        match response {
4607            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4608            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4609        }
4610    }
4611    ///Returns a page of messages from a conversation.
4612    pub async fn get_messages(
4613        &self,
4614        params: crate::chat::bsky::convo::get_messages::Parameters,
4615    ) -> atrium_xrpc::Result<
4616        crate::chat::bsky::convo::get_messages::Output,
4617        crate::chat::bsky::convo::get_messages::Error,
4618    > {
4619        let response = self
4620            .xrpc
4621            .send_xrpc::<
4622                _,
4623                (),
4624                _,
4625                _,
4626            >(
4627                &atrium_xrpc::XrpcRequest {
4628                    method: http::Method::GET,
4629                    nsid: crate::chat::bsky::convo::get_messages::NSID.into(),
4630                    parameters: Some(params),
4631                    input: None,
4632                    encoding: None,
4633                },
4634            )
4635            .await?;
4636        match response {
4637            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4638            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4639        }
4640    }
4641    ///Returns unread conversation counts for conversations that are unlocked, not muted, split by convo status. Direct convos are excluded when a block relationship exists between the actor and the other member, or when the other member's account is deleted or deactivated. Group convos are considered unread if they have unread join request counts.
4642    pub async fn get_unread_counts(
4643        &self,
4644        params: crate::chat::bsky::convo::get_unread_counts::Parameters,
4645    ) -> atrium_xrpc::Result<
4646        crate::chat::bsky::convo::get_unread_counts::Output,
4647        crate::chat::bsky::convo::get_unread_counts::Error,
4648    > {
4649        let response = self
4650            .xrpc
4651            .send_xrpc::<
4652                _,
4653                (),
4654                _,
4655                _,
4656            >(
4657                &atrium_xrpc::XrpcRequest {
4658                    method: http::Method::GET,
4659                    nsid: crate::chat::bsky::convo::get_unread_counts::NSID.into(),
4660                    parameters: Some(params),
4661                    input: None,
4662                    encoding: None,
4663                },
4664            )
4665            .await?;
4666        match response {
4667            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4668            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4669        }
4670    }
4671    ///Leaves a conversation (direct or group). For group, this effectively removes membership. For direct, membership is never removed, only changed to remove from enumerations by the user who left.
4672    pub async fn leave_convo(
4673        &self,
4674        input: crate::chat::bsky::convo::leave_convo::Input,
4675    ) -> atrium_xrpc::Result<
4676        crate::chat::bsky::convo::leave_convo::Output,
4677        crate::chat::bsky::convo::leave_convo::Error,
4678    > {
4679        let response = self
4680            .xrpc
4681            .send_xrpc::<
4682                (),
4683                _,
4684                _,
4685                _,
4686            >(
4687                &atrium_xrpc::XrpcRequest {
4688                    method: http::Method::POST,
4689                    nsid: crate::chat::bsky::convo::leave_convo::NSID.into(),
4690                    parameters: None,
4691                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4692                    encoding: Some(String::from("application/json")),
4693                },
4694            )
4695            .await?;
4696        match response {
4697            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4698            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4699        }
4700    }
4701    ///Returns a page of incoming conversation requests for the user. Direct convo requests are returned as convoView; group join requests made by the user are returned as joinRequestConvoView.
4702    pub async fn list_convo_requests(
4703        &self,
4704        params: crate::chat::bsky::convo::list_convo_requests::Parameters,
4705    ) -> atrium_xrpc::Result<
4706        crate::chat::bsky::convo::list_convo_requests::Output,
4707        crate::chat::bsky::convo::list_convo_requests::Error,
4708    > {
4709        let response = self
4710            .xrpc
4711            .send_xrpc::<
4712                _,
4713                (),
4714                _,
4715                _,
4716            >(
4717                &atrium_xrpc::XrpcRequest {
4718                    method: http::Method::GET,
4719                    nsid: crate::chat::bsky::convo::list_convo_requests::NSID.into(),
4720                    parameters: Some(params),
4721                    input: None,
4722                    encoding: None,
4723                },
4724            )
4725            .await?;
4726        match response {
4727            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4728            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4729        }
4730    }
4731    ///Returns a page of conversations (direct or group) for the user.
4732    pub async fn list_convos(
4733        &self,
4734        params: crate::chat::bsky::convo::list_convos::Parameters,
4735    ) -> atrium_xrpc::Result<
4736        crate::chat::bsky::convo::list_convos::Output,
4737        crate::chat::bsky::convo::list_convos::Error,
4738    > {
4739        let response = self
4740            .xrpc
4741            .send_xrpc::<
4742                _,
4743                (),
4744                _,
4745                _,
4746            >(
4747                &atrium_xrpc::XrpcRequest {
4748                    method: http::Method::GET,
4749                    nsid: crate::chat::bsky::convo::list_convos::NSID.into(),
4750                    parameters: Some(params),
4751                    input: None,
4752                    encoding: None,
4753                },
4754            )
4755            .await?;
4756        match response {
4757            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4758            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4759        }
4760    }
4761    ///Locks a group convo so no more content (messages, reactions) can be added to it.
4762    pub async fn lock_convo(
4763        &self,
4764        input: crate::chat::bsky::convo::lock_convo::Input,
4765    ) -> atrium_xrpc::Result<
4766        crate::chat::bsky::convo::lock_convo::Output,
4767        crate::chat::bsky::convo::lock_convo::Error,
4768    > {
4769        let response = self
4770            .xrpc
4771            .send_xrpc::<
4772                (),
4773                _,
4774                _,
4775                _,
4776            >(
4777                &atrium_xrpc::XrpcRequest {
4778                    method: http::Method::POST,
4779                    nsid: crate::chat::bsky::convo::lock_convo::NSID.into(),
4780                    parameters: None,
4781                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4782                    encoding: Some(String::from("application/json")),
4783                },
4784            )
4785            .await?;
4786        match response {
4787            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4788            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4789        }
4790    }
4791    ///Mutes a conversation, preventing notifications related to it.
4792    pub async fn mute_convo(
4793        &self,
4794        input: crate::chat::bsky::convo::mute_convo::Input,
4795    ) -> atrium_xrpc::Result<
4796        crate::chat::bsky::convo::mute_convo::Output,
4797        crate::chat::bsky::convo::mute_convo::Error,
4798    > {
4799        let response = self
4800            .xrpc
4801            .send_xrpc::<
4802                (),
4803                _,
4804                _,
4805                _,
4806            >(
4807                &atrium_xrpc::XrpcRequest {
4808                    method: http::Method::POST,
4809                    nsid: crate::chat::bsky::convo::mute_convo::NSID.into(),
4810                    parameters: None,
4811                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4812                    encoding: Some(String::from("application/json")),
4813                },
4814            )
4815            .await?;
4816        match response {
4817            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4818            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4819        }
4820    }
4821    ///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.
4822    pub async fn remove_reaction(
4823        &self,
4824        input: crate::chat::bsky::convo::remove_reaction::Input,
4825    ) -> atrium_xrpc::Result<
4826        crate::chat::bsky::convo::remove_reaction::Output,
4827        crate::chat::bsky::convo::remove_reaction::Error,
4828    > {
4829        let response = self
4830            .xrpc
4831            .send_xrpc::<
4832                (),
4833                _,
4834                _,
4835                _,
4836            >(
4837                &atrium_xrpc::XrpcRequest {
4838                    method: http::Method::POST,
4839                    nsid: crate::chat::bsky::convo::remove_reaction::NSID.into(),
4840                    parameters: None,
4841                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4842                    encoding: Some(String::from("application/json")),
4843                },
4844            )
4845            .await?;
4846        match response {
4847            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4848            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4849        }
4850    }
4851    ///Sends a message to a conversation.
4852    pub async fn send_message(
4853        &self,
4854        input: crate::chat::bsky::convo::send_message::Input,
4855    ) -> atrium_xrpc::Result<
4856        crate::chat::bsky::convo::send_message::Output,
4857        crate::chat::bsky::convo::send_message::Error,
4858    > {
4859        let response = self
4860            .xrpc
4861            .send_xrpc::<
4862                (),
4863                _,
4864                _,
4865                _,
4866            >(
4867                &atrium_xrpc::XrpcRequest {
4868                    method: http::Method::POST,
4869                    nsid: crate::chat::bsky::convo::send_message::NSID.into(),
4870                    parameters: None,
4871                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4872                    encoding: Some(String::from("application/json")),
4873                },
4874            )
4875            .await?;
4876        match response {
4877            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4878            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4879        }
4880    }
4881    ///Sends a batch of messages to a conversation.
4882    pub async fn send_message_batch(
4883        &self,
4884        input: crate::chat::bsky::convo::send_message_batch::Input,
4885    ) -> atrium_xrpc::Result<
4886        crate::chat::bsky::convo::send_message_batch::Output,
4887        crate::chat::bsky::convo::send_message_batch::Error,
4888    > {
4889        let response = self
4890            .xrpc
4891            .send_xrpc::<
4892                (),
4893                _,
4894                _,
4895                _,
4896            >(
4897                &atrium_xrpc::XrpcRequest {
4898                    method: http::Method::POST,
4899                    nsid: crate::chat::bsky::convo::send_message_batch::NSID.into(),
4900                    parameters: None,
4901                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4902                    encoding: Some(String::from("application/json")),
4903                },
4904            )
4905            .await?;
4906        match response {
4907            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4908            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4909        }
4910    }
4911    ///Unlocks a group convo so it is able to receive new content.
4912    pub async fn unlock_convo(
4913        &self,
4914        input: crate::chat::bsky::convo::unlock_convo::Input,
4915    ) -> atrium_xrpc::Result<
4916        crate::chat::bsky::convo::unlock_convo::Output,
4917        crate::chat::bsky::convo::unlock_convo::Error,
4918    > {
4919        let response = self
4920            .xrpc
4921            .send_xrpc::<
4922                (),
4923                _,
4924                _,
4925                _,
4926            >(
4927                &atrium_xrpc::XrpcRequest {
4928                    method: http::Method::POST,
4929                    nsid: crate::chat::bsky::convo::unlock_convo::NSID.into(),
4930                    parameters: None,
4931                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4932                    encoding: Some(String::from("application/json")),
4933                },
4934            )
4935            .await?;
4936        match response {
4937            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4938            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4939        }
4940    }
4941    ///Unmutes a conversation, allowing notifications related to it.
4942    pub async fn unmute_convo(
4943        &self,
4944        input: crate::chat::bsky::convo::unmute_convo::Input,
4945    ) -> atrium_xrpc::Result<
4946        crate::chat::bsky::convo::unmute_convo::Output,
4947        crate::chat::bsky::convo::unmute_convo::Error,
4948    > {
4949        let response = self
4950            .xrpc
4951            .send_xrpc::<
4952                (),
4953                _,
4954                _,
4955                _,
4956            >(
4957                &atrium_xrpc::XrpcRequest {
4958                    method: http::Method::POST,
4959                    nsid: crate::chat::bsky::convo::unmute_convo::NSID.into(),
4960                    parameters: None,
4961                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4962                    encoding: Some(String::from("application/json")),
4963                },
4964            )
4965            .await?;
4966        match response {
4967            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4968            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4969        }
4970    }
4971    ///Sets conversations from a user as read to the latest message, with filters.
4972    pub async fn update_all_read(
4973        &self,
4974        input: crate::chat::bsky::convo::update_all_read::Input,
4975    ) -> atrium_xrpc::Result<
4976        crate::chat::bsky::convo::update_all_read::Output,
4977        crate::chat::bsky::convo::update_all_read::Error,
4978    > {
4979        let response = self
4980            .xrpc
4981            .send_xrpc::<
4982                (),
4983                _,
4984                _,
4985                _,
4986            >(
4987                &atrium_xrpc::XrpcRequest {
4988                    method: http::Method::POST,
4989                    nsid: crate::chat::bsky::convo::update_all_read::NSID.into(),
4990                    parameters: None,
4991                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
4992                    encoding: Some(String::from("application/json")),
4993                },
4994            )
4995            .await?;
4996        match response {
4997            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
4998            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
4999        }
5000    }
5001    ///Updates the read state of a conversation from, optionally specifying the last read message.
5002    pub async fn update_read(
5003        &self,
5004        input: crate::chat::bsky::convo::update_read::Input,
5005    ) -> atrium_xrpc::Result<
5006        crate::chat::bsky::convo::update_read::Output,
5007        crate::chat::bsky::convo::update_read::Error,
5008    > {
5009        let response = self
5010            .xrpc
5011            .send_xrpc::<
5012                (),
5013                _,
5014                _,
5015                _,
5016            >(
5017                &atrium_xrpc::XrpcRequest {
5018                    method: http::Method::POST,
5019                    nsid: crate::chat::bsky::convo::update_read::NSID.into(),
5020                    parameters: None,
5021                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5022                    encoding: Some(String::from("application/json")),
5023                },
5024            )
5025            .await?;
5026        match response {
5027            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5028            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5029        }
5030    }
5031}
5032#[cfg(feature = "namespace-chatbsky")]
5033impl<T> chat::bsky::group::Service<T>
5034where
5035    T: atrium_xrpc::XrpcClient + Send + Sync,
5036{
5037    #[allow(unused_variables)]
5038    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5039        Self {
5040            xrpc,
5041            _phantom: core::marker::PhantomData,
5042        }
5043    }
5044    ///Adds members to a group. The members are added in 'request' status, so they have to accept it. This creates convo memberships.
5045    pub async fn add_members(
5046        &self,
5047        input: crate::chat::bsky::group::add_members::Input,
5048    ) -> atrium_xrpc::Result<
5049        crate::chat::bsky::group::add_members::Output,
5050        crate::chat::bsky::group::add_members::Error,
5051    > {
5052        let response = self
5053            .xrpc
5054            .send_xrpc::<
5055                (),
5056                _,
5057                _,
5058                _,
5059            >(
5060                &atrium_xrpc::XrpcRequest {
5061                    method: http::Method::POST,
5062                    nsid: crate::chat::bsky::group::add_members::NSID.into(),
5063                    parameters: None,
5064                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5065                    encoding: Some(String::from("application/json")),
5066                },
5067            )
5068            .await?;
5069        match response {
5070            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5071            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5072        }
5073    }
5074    ///Approves a request to join a group (via join link) the user owns. Action taken by the group owner.
5075    pub async fn approve_join_request(
5076        &self,
5077        input: crate::chat::bsky::group::approve_join_request::Input,
5078    ) -> atrium_xrpc::Result<
5079        crate::chat::bsky::group::approve_join_request::Output,
5080        crate::chat::bsky::group::approve_join_request::Error,
5081    > {
5082        let response = self
5083            .xrpc
5084            .send_xrpc::<
5085                (),
5086                _,
5087                _,
5088                _,
5089            >(
5090                &atrium_xrpc::XrpcRequest {
5091                    method: http::Method::POST,
5092                    nsid: crate::chat::bsky::group::approve_join_request::NSID.into(),
5093                    parameters: None,
5094                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5095                    encoding: Some(String::from("application/json")),
5096                },
5097            )
5098            .await?;
5099        match response {
5100            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5101            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5102        }
5103    }
5104    ///Creates a group convo, specifying the members to be added to it. Unlike getConvoForMembers, this isn't idempotent. It will create new groups even if the membership is identical to pre-existing groups. Will create 'request' membership for all members, except the owner who is 'accepted'.
5105    pub async fn create_group(
5106        &self,
5107        input: crate::chat::bsky::group::create_group::Input,
5108    ) -> atrium_xrpc::Result<
5109        crate::chat::bsky::group::create_group::Output,
5110        crate::chat::bsky::group::create_group::Error,
5111    > {
5112        let response = self
5113            .xrpc
5114            .send_xrpc::<
5115                (),
5116                _,
5117                _,
5118                _,
5119            >(
5120                &atrium_xrpc::XrpcRequest {
5121                    method: http::Method::POST,
5122                    nsid: crate::chat::bsky::group::create_group::NSID.into(),
5123                    parameters: None,
5124                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5125                    encoding: Some(String::from("application/json")),
5126                },
5127            )
5128            .await?;
5129        match response {
5130            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5131            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5132        }
5133    }
5134    ///Creates a join link for the group convo.
5135    pub async fn create_join_link(
5136        &self,
5137        input: crate::chat::bsky::group::create_join_link::Input,
5138    ) -> atrium_xrpc::Result<
5139        crate::chat::bsky::group::create_join_link::Output,
5140        crate::chat::bsky::group::create_join_link::Error,
5141    > {
5142        let response = self
5143            .xrpc
5144            .send_xrpc::<
5145                (),
5146                _,
5147                _,
5148                _,
5149            >(
5150                &atrium_xrpc::XrpcRequest {
5151                    method: http::Method::POST,
5152                    nsid: crate::chat::bsky::group::create_join_link::NSID.into(),
5153                    parameters: None,
5154                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5155                    encoding: Some(String::from("application/json")),
5156                },
5157            )
5158            .await?;
5159        match response {
5160            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5161            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5162        }
5163    }
5164    ///Disables the active join link for the group convo.
5165    pub async fn disable_join_link(
5166        &self,
5167        input: crate::chat::bsky::group::disable_join_link::Input,
5168    ) -> atrium_xrpc::Result<
5169        crate::chat::bsky::group::disable_join_link::Output,
5170        crate::chat::bsky::group::disable_join_link::Error,
5171    > {
5172        let response = self
5173            .xrpc
5174            .send_xrpc::<
5175                (),
5176                _,
5177                _,
5178                _,
5179            >(
5180                &atrium_xrpc::XrpcRequest {
5181                    method: http::Method::POST,
5182                    nsid: crate::chat::bsky::group::disable_join_link::NSID.into(),
5183                    parameters: None,
5184                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5185                    encoding: Some(String::from("application/json")),
5186                },
5187            )
5188            .await?;
5189        match response {
5190            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5191            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5192        }
5193    }
5194    ///Edits group settings.
5195    pub async fn edit_group(
5196        &self,
5197        input: crate::chat::bsky::group::edit_group::Input,
5198    ) -> atrium_xrpc::Result<
5199        crate::chat::bsky::group::edit_group::Output,
5200        crate::chat::bsky::group::edit_group::Error,
5201    > {
5202        let response = self
5203            .xrpc
5204            .send_xrpc::<
5205                (),
5206                _,
5207                _,
5208                _,
5209            >(
5210                &atrium_xrpc::XrpcRequest {
5211                    method: http::Method::POST,
5212                    nsid: crate::chat::bsky::group::edit_group::NSID.into(),
5213                    parameters: None,
5214                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5215                    encoding: Some(String::from("application/json")),
5216                },
5217            )
5218            .await?;
5219        match response {
5220            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5221            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5222        }
5223    }
5224    ///Edits the existing join link settings for the group convo.
5225    pub async fn edit_join_link(
5226        &self,
5227        input: crate::chat::bsky::group::edit_join_link::Input,
5228    ) -> atrium_xrpc::Result<
5229        crate::chat::bsky::group::edit_join_link::Output,
5230        crate::chat::bsky::group::edit_join_link::Error,
5231    > {
5232        let response = self
5233            .xrpc
5234            .send_xrpc::<
5235                (),
5236                _,
5237                _,
5238                _,
5239            >(
5240                &atrium_xrpc::XrpcRequest {
5241                    method: http::Method::POST,
5242                    nsid: crate::chat::bsky::group::edit_join_link::NSID.into(),
5243                    parameters: None,
5244                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5245                    encoding: Some(String::from("application/json")),
5246                },
5247            )
5248            .await?;
5249        match response {
5250            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5251            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5252        }
5253    }
5254    ///Re-enables a previously disabled join link for the group convo.
5255    pub async fn enable_join_link(
5256        &self,
5257        input: crate::chat::bsky::group::enable_join_link::Input,
5258    ) -> atrium_xrpc::Result<
5259        crate::chat::bsky::group::enable_join_link::Output,
5260        crate::chat::bsky::group::enable_join_link::Error,
5261    > {
5262        let response = self
5263            .xrpc
5264            .send_xrpc::<
5265                (),
5266                _,
5267                _,
5268                _,
5269            >(
5270                &atrium_xrpc::XrpcRequest {
5271                    method: http::Method::POST,
5272                    nsid: crate::chat::bsky::group::enable_join_link::NSID.into(),
5273                    parameters: None,
5274                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5275                    encoding: Some(String::from("application/json")),
5276                },
5277            )
5278            .await?;
5279        match response {
5280            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5281            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5282        }
5283    }
5284    ///Get public information about groups from join links. The output array matches the input codes one-to-one by position (and each view also carries its 'code'). Disabled codes return a disabledJoinLinkPreviewView, and codes that do not map to a previewable link return an invalidJoinLinkPreviewView.
5285    pub async fn get_join_link_previews(
5286        &self,
5287        params: crate::chat::bsky::group::get_join_link_previews::Parameters,
5288    ) -> atrium_xrpc::Result<
5289        crate::chat::bsky::group::get_join_link_previews::Output,
5290        crate::chat::bsky::group::get_join_link_previews::Error,
5291    > {
5292        let response = self
5293            .xrpc
5294            .send_xrpc::<
5295                _,
5296                (),
5297                _,
5298                _,
5299            >(
5300                &atrium_xrpc::XrpcRequest {
5301                    method: http::Method::GET,
5302                    nsid: crate::chat::bsky::group::get_join_link_previews::NSID.into(),
5303                    parameters: Some(params),
5304                    input: None,
5305                    encoding: None,
5306                },
5307            )
5308            .await?;
5309        match response {
5310            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5311            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5312        }
5313    }
5314    ///Lists a page of request to join a group (via join link) the user owns. Shows the data from the owner's point of view.
5315    pub async fn list_join_requests(
5316        &self,
5317        params: crate::chat::bsky::group::list_join_requests::Parameters,
5318    ) -> atrium_xrpc::Result<
5319        crate::chat::bsky::group::list_join_requests::Output,
5320        crate::chat::bsky::group::list_join_requests::Error,
5321    > {
5322        let response = self
5323            .xrpc
5324            .send_xrpc::<
5325                _,
5326                (),
5327                _,
5328                _,
5329            >(
5330                &atrium_xrpc::XrpcRequest {
5331                    method: http::Method::GET,
5332                    nsid: crate::chat::bsky::group::list_join_requests::NSID.into(),
5333                    parameters: Some(params),
5334                    input: None,
5335                    encoding: None,
5336                },
5337            )
5338            .await?;
5339        match response {
5340            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5341            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5342        }
5343    }
5344    ///Returns a page of group conversations that both the requester and the specified actor are members of.
5345    pub async fn list_mutual_groups(
5346        &self,
5347        params: crate::chat::bsky::group::list_mutual_groups::Parameters,
5348    ) -> atrium_xrpc::Result<
5349        crate::chat::bsky::group::list_mutual_groups::Output,
5350        crate::chat::bsky::group::list_mutual_groups::Error,
5351    > {
5352        let response = self
5353            .xrpc
5354            .send_xrpc::<
5355                _,
5356                (),
5357                _,
5358                _,
5359            >(
5360                &atrium_xrpc::XrpcRequest {
5361                    method: http::Method::GET,
5362                    nsid: crate::chat::bsky::group::list_mutual_groups::NSID.into(),
5363                    parameters: Some(params),
5364                    input: None,
5365                    encoding: None,
5366                },
5367            )
5368            .await?;
5369        match response {
5370            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5371            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5372        }
5373    }
5374    ///Rejects a request to join a group (via join link) the user owns. Action taken by the group owner.
5375    pub async fn reject_join_request(
5376        &self,
5377        input: crate::chat::bsky::group::reject_join_request::Input,
5378    ) -> atrium_xrpc::Result<
5379        crate::chat::bsky::group::reject_join_request::Output,
5380        crate::chat::bsky::group::reject_join_request::Error,
5381    > {
5382        let response = self
5383            .xrpc
5384            .send_xrpc::<
5385                (),
5386                _,
5387                _,
5388                _,
5389            >(
5390                &atrium_xrpc::XrpcRequest {
5391                    method: http::Method::POST,
5392                    nsid: crate::chat::bsky::group::reject_join_request::NSID.into(),
5393                    parameters: None,
5394                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5395                    encoding: Some(String::from("application/json")),
5396                },
5397            )
5398            .await?;
5399        match response {
5400            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5401            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5402        }
5403    }
5404    ///Removes members from a group. This deletes convo memberships, doesn't just set a status.
5405    pub async fn remove_members(
5406        &self,
5407        input: crate::chat::bsky::group::remove_members::Input,
5408    ) -> atrium_xrpc::Result<
5409        crate::chat::bsky::group::remove_members::Output,
5410        crate::chat::bsky::group::remove_members::Error,
5411    > {
5412        let response = self
5413            .xrpc
5414            .send_xrpc::<
5415                (),
5416                _,
5417                _,
5418                _,
5419            >(
5420                &atrium_xrpc::XrpcRequest {
5421                    method: http::Method::POST,
5422                    nsid: crate::chat::bsky::group::remove_members::NSID.into(),
5423                    parameters: None,
5424                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5425                    encoding: Some(String::from("application/json")),
5426                },
5427            )
5428            .await?;
5429        match response {
5430            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5431            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5432        }
5433    }
5434    ///Sends a request to join a group (via join link) to the group owner. Action taken by the prospective group member.
5435    pub async fn request_join(
5436        &self,
5437        input: crate::chat::bsky::group::request_join::Input,
5438    ) -> atrium_xrpc::Result<
5439        crate::chat::bsky::group::request_join::Output,
5440        crate::chat::bsky::group::request_join::Error,
5441    > {
5442        let response = self
5443            .xrpc
5444            .send_xrpc::<
5445                (),
5446                _,
5447                _,
5448                _,
5449            >(
5450                &atrium_xrpc::XrpcRequest {
5451                    method: http::Method::POST,
5452                    nsid: crate::chat::bsky::group::request_join::NSID.into(),
5453                    parameters: None,
5454                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5455                    encoding: Some(String::from("application/json")),
5456                },
5457            )
5458            .await?;
5459        match response {
5460            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5461            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5462        }
5463    }
5464    ///Marks all join requests as read for the group owner.
5465    pub async fn update_join_requests_read(
5466        &self,
5467        input: crate::chat::bsky::group::update_join_requests_read::Input,
5468    ) -> atrium_xrpc::Result<
5469        crate::chat::bsky::group::update_join_requests_read::Output,
5470        crate::chat::bsky::group::update_join_requests_read::Error,
5471    > {
5472        let response = self
5473            .xrpc
5474            .send_xrpc::<
5475                (),
5476                _,
5477                _,
5478                _,
5479            >(
5480                &atrium_xrpc::XrpcRequest {
5481                    method: http::Method::POST,
5482                    nsid: crate::chat::bsky::group::update_join_requests_read::NSID
5483                        .into(),
5484                    parameters: None,
5485                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5486                    encoding: Some(String::from("application/json")),
5487                },
5488            )
5489            .await?;
5490        match response {
5491            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5492            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5493        }
5494    }
5495    ///Withdraws a pending request to join a group. Action taken by the prospective member who originally requested to join.
5496    pub async fn withdraw_join_request(
5497        &self,
5498        input: crate::chat::bsky::group::withdraw_join_request::Input,
5499    ) -> atrium_xrpc::Result<
5500        crate::chat::bsky::group::withdraw_join_request::Output,
5501        crate::chat::bsky::group::withdraw_join_request::Error,
5502    > {
5503        let response = self
5504            .xrpc
5505            .send_xrpc::<
5506                (),
5507                _,
5508                _,
5509                _,
5510            >(
5511                &atrium_xrpc::XrpcRequest {
5512                    method: http::Method::POST,
5513                    nsid: crate::chat::bsky::group::withdraw_join_request::NSID.into(),
5514                    parameters: None,
5515                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5516                    encoding: Some(String::from("application/json")),
5517                },
5518            )
5519            .await?;
5520        match response {
5521            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5522            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5523        }
5524    }
5525}
5526#[cfg(feature = "namespace-chatbsky")]
5527impl<T> chat::bsky::moderation::Service<T>
5528where
5529    T: atrium_xrpc::XrpcClient + Send + Sync,
5530{
5531    #[allow(unused_variables)]
5532    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5533        Self {
5534            xrpc,
5535            _phantom: core::marker::PhantomData,
5536        }
5537    }
5538    pub async fn get_actor_metadata(
5539        &self,
5540        params: crate::chat::bsky::moderation::get_actor_metadata::Parameters,
5541    ) -> atrium_xrpc::Result<
5542        crate::chat::bsky::moderation::get_actor_metadata::Output,
5543        crate::chat::bsky::moderation::get_actor_metadata::Error,
5544    > {
5545        let response = self
5546            .xrpc
5547            .send_xrpc::<
5548                _,
5549                (),
5550                _,
5551                _,
5552            >(
5553                &atrium_xrpc::XrpcRequest {
5554                    method: http::Method::GET,
5555                    nsid: crate::chat::bsky::moderation::get_actor_metadata::NSID.into(),
5556                    parameters: Some(params),
5557                    input: None,
5558                    encoding: None,
5559                },
5560            )
5561            .await?;
5562        match response {
5563            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5564            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5565        }
5566    }
5567    ///Gets an existing conversation by its ID, for moderation purposes. Does not require the requester to be a member of the conversation.
5568    pub async fn get_convo(
5569        &self,
5570        params: crate::chat::bsky::moderation::get_convo::Parameters,
5571    ) -> atrium_xrpc::Result<
5572        crate::chat::bsky::moderation::get_convo::Output,
5573        crate::chat::bsky::moderation::get_convo::Error,
5574    > {
5575        let response = self
5576            .xrpc
5577            .send_xrpc::<
5578                _,
5579                (),
5580                _,
5581                _,
5582            >(
5583                &atrium_xrpc::XrpcRequest {
5584                    method: http::Method::GET,
5585                    nsid: crate::chat::bsky::moderation::get_convo::NSID.into(),
5586                    parameters: Some(params),
5587                    input: None,
5588                    encoding: None,
5589                },
5590            )
5591            .await?;
5592        match response {
5593            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5594            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5595        }
5596    }
5597    ///Returns a paginated list of members from a conversation, for moderation purposes. Does not require the requester to be a member of the conversation.
5598    pub async fn get_convo_members(
5599        &self,
5600        params: crate::chat::bsky::moderation::get_convo_members::Parameters,
5601    ) -> atrium_xrpc::Result<
5602        crate::chat::bsky::moderation::get_convo_members::Output,
5603        crate::chat::bsky::moderation::get_convo_members::Error,
5604    > {
5605        let response = self
5606            .xrpc
5607            .send_xrpc::<
5608                _,
5609                (),
5610                _,
5611                _,
5612            >(
5613                &atrium_xrpc::XrpcRequest {
5614                    method: http::Method::GET,
5615                    nsid: crate::chat::bsky::moderation::get_convo_members::NSID.into(),
5616                    parameters: Some(params),
5617                    input: None,
5618                    encoding: None,
5619                },
5620            )
5621            .await?;
5622        match response {
5623            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5624            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5625        }
5626    }
5627    ///Gets existing conversations by their IDs, for moderation purposes. Does not require the requester to be a member of the conversations. Unknown IDs are silently omitted from the response.
5628    pub async fn get_convos(
5629        &self,
5630        params: crate::chat::bsky::moderation::get_convos::Parameters,
5631    ) -> atrium_xrpc::Result<
5632        crate::chat::bsky::moderation::get_convos::Output,
5633        crate::chat::bsky::moderation::get_convos::Error,
5634    > {
5635        let response = self
5636            .xrpc
5637            .send_xrpc::<
5638                _,
5639                (),
5640                _,
5641                _,
5642            >(
5643                &atrium_xrpc::XrpcRequest {
5644                    method: http::Method::GET,
5645                    nsid: crate::chat::bsky::moderation::get_convos::NSID.into(),
5646                    parameters: Some(params),
5647                    input: None,
5648                    encoding: None,
5649                },
5650            )
5651            .await?;
5652        match response {
5653            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5654            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5655        }
5656    }
5657    pub async fn get_message_context(
5658        &self,
5659        params: crate::chat::bsky::moderation::get_message_context::Parameters,
5660    ) -> atrium_xrpc::Result<
5661        crate::chat::bsky::moderation::get_message_context::Output,
5662        crate::chat::bsky::moderation::get_message_context::Error,
5663    > {
5664        let response = self
5665            .xrpc
5666            .send_xrpc::<
5667                _,
5668                (),
5669                _,
5670                _,
5671            >(
5672                &atrium_xrpc::XrpcRequest {
5673                    method: http::Method::GET,
5674                    nsid: crate::chat::bsky::moderation::get_message_context::NSID
5675                        .into(),
5676                    parameters: Some(params),
5677                    input: None,
5678                    encoding: None,
5679                },
5680            )
5681            .await?;
5682        match response {
5683            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5684            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5685        }
5686    }
5687    pub async fn update_actor_access(
5688        &self,
5689        input: crate::chat::bsky::moderation::update_actor_access::Input,
5690    ) -> atrium_xrpc::Result<
5691        (),
5692        crate::chat::bsky::moderation::update_actor_access::Error,
5693    > {
5694        let response = self
5695            .xrpc
5696            .send_xrpc::<
5697                (),
5698                _,
5699                (),
5700                _,
5701            >(
5702                &atrium_xrpc::XrpcRequest {
5703                    method: http::Method::POST,
5704                    nsid: crate::chat::bsky::moderation::update_actor_access::NSID
5705                        .into(),
5706                    parameters: None,
5707                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5708                    encoding: Some(String::from("application/json")),
5709                },
5710            )
5711            .await?;
5712        match response {
5713            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5714            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5715        }
5716    }
5717}
5718#[cfg(feature = "namespace-chatbsky")]
5719impl<T> chat::bsky::notification::Service<T>
5720where
5721    T: atrium_xrpc::XrpcClient + Send + Sync,
5722{
5723    #[allow(unused_variables)]
5724    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5725        Self {
5726            xrpc,
5727            _phantom: core::marker::PhantomData,
5728        }
5729    }
5730    ///Get the requesting account's chat notification preferences. Defaults are returned for accounts that have not set any preferences. Requires auth.
5731    pub async fn get_preferences(
5732        &self,
5733    ) -> atrium_xrpc::Result<
5734        crate::chat::bsky::notification::get_preferences::Output,
5735        crate::chat::bsky::notification::get_preferences::Error,
5736    > {
5737        let response = self
5738            .xrpc
5739            .send_xrpc::<
5740                (),
5741                (),
5742                _,
5743                _,
5744            >(
5745                &atrium_xrpc::XrpcRequest {
5746                    method: http::Method::GET,
5747                    nsid: crate::chat::bsky::notification::get_preferences::NSID.into(),
5748                    parameters: None,
5749                    input: None,
5750                    encoding: None,
5751                },
5752            )
5753            .await?;
5754        match response {
5755            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5756            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5757        }
5758    }
5759    ///Set the requesting account's chat notification preferences. Only the provided preferences are updated; omitted preferences are left unchanged.
5760    pub async fn put_preferences(
5761        &self,
5762        input: crate::chat::bsky::notification::put_preferences::Input,
5763    ) -> atrium_xrpc::Result<
5764        crate::chat::bsky::notification::put_preferences::Output,
5765        crate::chat::bsky::notification::put_preferences::Error,
5766    > {
5767        let response = self
5768            .xrpc
5769            .send_xrpc::<
5770                (),
5771                _,
5772                _,
5773                _,
5774            >(
5775                &atrium_xrpc::XrpcRequest {
5776                    method: http::Method::POST,
5777                    nsid: crate::chat::bsky::notification::put_preferences::NSID.into(),
5778                    parameters: None,
5779                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5780                    encoding: Some(String::from("application/json")),
5781                },
5782            )
5783            .await?;
5784        match response {
5785            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5786            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5787        }
5788    }
5789}
5790impl<T> com::Service<T>
5791where
5792    T: atrium_xrpc::XrpcClient + Send + Sync,
5793{
5794    #[allow(unused_variables)]
5795    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5796        Self {
5797            atproto: com::atproto::Service::new(std::sync::Arc::clone(&xrpc)),
5798            _phantom: core::marker::PhantomData,
5799        }
5800    }
5801}
5802impl<T> com::atproto::Service<T>
5803where
5804    T: atrium_xrpc::XrpcClient + Send + Sync,
5805{
5806    #[allow(unused_variables)]
5807    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5808        Self {
5809            admin: com::atproto::admin::Service::new(std::sync::Arc::clone(&xrpc)),
5810            identity: com::atproto::identity::Service::new(std::sync::Arc::clone(&xrpc)),
5811            label: com::atproto::label::Service::new(std::sync::Arc::clone(&xrpc)),
5812            lexicon: com::atproto::lexicon::Service::new(std::sync::Arc::clone(&xrpc)),
5813            moderation: com::atproto::moderation::Service::new(
5814                std::sync::Arc::clone(&xrpc),
5815            ),
5816            repo: com::atproto::repo::Service::new(std::sync::Arc::clone(&xrpc)),
5817            server: com::atproto::server::Service::new(std::sync::Arc::clone(&xrpc)),
5818            sync: com::atproto::sync::Service::new(std::sync::Arc::clone(&xrpc)),
5819            temp: com::atproto::temp::Service::new(std::sync::Arc::clone(&xrpc)),
5820            _phantom: core::marker::PhantomData,
5821        }
5822    }
5823}
5824impl<T> com::atproto::admin::Service<T>
5825where
5826    T: atrium_xrpc::XrpcClient + Send + Sync,
5827{
5828    #[allow(unused_variables)]
5829    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
5830        Self {
5831            xrpc,
5832            _phantom: core::marker::PhantomData,
5833        }
5834    }
5835    ///Delete a user account as an administrator.
5836    pub async fn delete_account(
5837        &self,
5838        input: crate::com::atproto::admin::delete_account::Input,
5839    ) -> atrium_xrpc::Result<(), crate::com::atproto::admin::delete_account::Error> {
5840        let response = self
5841            .xrpc
5842            .send_xrpc::<
5843                (),
5844                _,
5845                (),
5846                _,
5847            >(
5848                &atrium_xrpc::XrpcRequest {
5849                    method: http::Method::POST,
5850                    nsid: crate::com::atproto::admin::delete_account::NSID.into(),
5851                    parameters: None,
5852                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5853                    encoding: Some(String::from("application/json")),
5854                },
5855            )
5856            .await?;
5857        match response {
5858            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5859            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5860        }
5861    }
5862    ///Disable an account from receiving new invite codes, but does not invalidate existing codes.
5863    pub async fn disable_account_invites(
5864        &self,
5865        input: crate::com::atproto::admin::disable_account_invites::Input,
5866    ) -> atrium_xrpc::Result<
5867        (),
5868        crate::com::atproto::admin::disable_account_invites::Error,
5869    > {
5870        let response = self
5871            .xrpc
5872            .send_xrpc::<
5873                (),
5874                _,
5875                (),
5876                _,
5877            >(
5878                &atrium_xrpc::XrpcRequest {
5879                    method: http::Method::POST,
5880                    nsid: crate::com::atproto::admin::disable_account_invites::NSID
5881                        .into(),
5882                    parameters: None,
5883                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5884                    encoding: Some(String::from("application/json")),
5885                },
5886            )
5887            .await?;
5888        match response {
5889            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5890            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5891        }
5892    }
5893    ///Disable some set of codes and/or all codes associated with a set of users.
5894    pub async fn disable_invite_codes(
5895        &self,
5896        input: crate::com::atproto::admin::disable_invite_codes::Input,
5897    ) -> atrium_xrpc::Result<
5898        (),
5899        crate::com::atproto::admin::disable_invite_codes::Error,
5900    > {
5901        let response = self
5902            .xrpc
5903            .send_xrpc::<
5904                (),
5905                _,
5906                (),
5907                _,
5908            >(
5909                &atrium_xrpc::XrpcRequest {
5910                    method: http::Method::POST,
5911                    nsid: crate::com::atproto::admin::disable_invite_codes::NSID.into(),
5912                    parameters: None,
5913                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5914                    encoding: Some(String::from("application/json")),
5915                },
5916            )
5917            .await?;
5918        match response {
5919            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5920            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5921        }
5922    }
5923    ///Re-enable an account's ability to receive invite codes.
5924    pub async fn enable_account_invites(
5925        &self,
5926        input: crate::com::atproto::admin::enable_account_invites::Input,
5927    ) -> atrium_xrpc::Result<
5928        (),
5929        crate::com::atproto::admin::enable_account_invites::Error,
5930    > {
5931        let response = self
5932            .xrpc
5933            .send_xrpc::<
5934                (),
5935                _,
5936                (),
5937                _,
5938            >(
5939                &atrium_xrpc::XrpcRequest {
5940                    method: http::Method::POST,
5941                    nsid: crate::com::atproto::admin::enable_account_invites::NSID
5942                        .into(),
5943                    parameters: None,
5944                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
5945                    encoding: Some(String::from("application/json")),
5946                },
5947            )
5948            .await?;
5949        match response {
5950            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
5951            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5952        }
5953    }
5954    ///Get details about an account.
5955    pub async fn get_account_info(
5956        &self,
5957        params: crate::com::atproto::admin::get_account_info::Parameters,
5958    ) -> atrium_xrpc::Result<
5959        crate::com::atproto::admin::get_account_info::Output,
5960        crate::com::atproto::admin::get_account_info::Error,
5961    > {
5962        let response = self
5963            .xrpc
5964            .send_xrpc::<
5965                _,
5966                (),
5967                _,
5968                _,
5969            >(
5970                &atrium_xrpc::XrpcRequest {
5971                    method: http::Method::GET,
5972                    nsid: crate::com::atproto::admin::get_account_info::NSID.into(),
5973                    parameters: Some(params),
5974                    input: None,
5975                    encoding: None,
5976                },
5977            )
5978            .await?;
5979        match response {
5980            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
5981            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
5982        }
5983    }
5984    ///Get details about some accounts.
5985    pub async fn get_account_infos(
5986        &self,
5987        params: crate::com::atproto::admin::get_account_infos::Parameters,
5988    ) -> atrium_xrpc::Result<
5989        crate::com::atproto::admin::get_account_infos::Output,
5990        crate::com::atproto::admin::get_account_infos::Error,
5991    > {
5992        let response = self
5993            .xrpc
5994            .send_xrpc::<
5995                _,
5996                (),
5997                _,
5998                _,
5999            >(
6000                &atrium_xrpc::XrpcRequest {
6001                    method: http::Method::GET,
6002                    nsid: crate::com::atproto::admin::get_account_infos::NSID.into(),
6003                    parameters: Some(params),
6004                    input: None,
6005                    encoding: None,
6006                },
6007            )
6008            .await?;
6009        match response {
6010            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6011            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6012        }
6013    }
6014    ///Get an admin view of invite codes.
6015    pub async fn get_invite_codes(
6016        &self,
6017        params: crate::com::atproto::admin::get_invite_codes::Parameters,
6018    ) -> atrium_xrpc::Result<
6019        crate::com::atproto::admin::get_invite_codes::Output,
6020        crate::com::atproto::admin::get_invite_codes::Error,
6021    > {
6022        let response = self
6023            .xrpc
6024            .send_xrpc::<
6025                _,
6026                (),
6027                _,
6028                _,
6029            >(
6030                &atrium_xrpc::XrpcRequest {
6031                    method: http::Method::GET,
6032                    nsid: crate::com::atproto::admin::get_invite_codes::NSID.into(),
6033                    parameters: Some(params),
6034                    input: None,
6035                    encoding: None,
6036                },
6037            )
6038            .await?;
6039        match response {
6040            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6041            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6042        }
6043    }
6044    ///Get the service-specific admin status of a subject (account, record, or blob).
6045    pub async fn get_subject_status(
6046        &self,
6047        params: crate::com::atproto::admin::get_subject_status::Parameters,
6048    ) -> atrium_xrpc::Result<
6049        crate::com::atproto::admin::get_subject_status::Output,
6050        crate::com::atproto::admin::get_subject_status::Error,
6051    > {
6052        let response = self
6053            .xrpc
6054            .send_xrpc::<
6055                _,
6056                (),
6057                _,
6058                _,
6059            >(
6060                &atrium_xrpc::XrpcRequest {
6061                    method: http::Method::GET,
6062                    nsid: crate::com::atproto::admin::get_subject_status::NSID.into(),
6063                    parameters: Some(params),
6064                    input: None,
6065                    encoding: None,
6066                },
6067            )
6068            .await?;
6069        match response {
6070            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6071            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6072        }
6073    }
6074    ///Get list of accounts that matches your search query.
6075    pub async fn search_accounts(
6076        &self,
6077        params: crate::com::atproto::admin::search_accounts::Parameters,
6078    ) -> atrium_xrpc::Result<
6079        crate::com::atproto::admin::search_accounts::Output,
6080        crate::com::atproto::admin::search_accounts::Error,
6081    > {
6082        let response = self
6083            .xrpc
6084            .send_xrpc::<
6085                _,
6086                (),
6087                _,
6088                _,
6089            >(
6090                &atrium_xrpc::XrpcRequest {
6091                    method: http::Method::GET,
6092                    nsid: crate::com::atproto::admin::search_accounts::NSID.into(),
6093                    parameters: Some(params),
6094                    input: None,
6095                    encoding: None,
6096                },
6097            )
6098            .await?;
6099        match response {
6100            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6101            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6102        }
6103    }
6104    ///Send email to a user's account email address.
6105    pub async fn send_email(
6106        &self,
6107        input: crate::com::atproto::admin::send_email::Input,
6108    ) -> atrium_xrpc::Result<
6109        crate::com::atproto::admin::send_email::Output,
6110        crate::com::atproto::admin::send_email::Error,
6111    > {
6112        let response = self
6113            .xrpc
6114            .send_xrpc::<
6115                (),
6116                _,
6117                _,
6118                _,
6119            >(
6120                &atrium_xrpc::XrpcRequest {
6121                    method: http::Method::POST,
6122                    nsid: crate::com::atproto::admin::send_email::NSID.into(),
6123                    parameters: None,
6124                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6125                    encoding: Some(String::from("application/json")),
6126                },
6127            )
6128            .await?;
6129        match response {
6130            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6131            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6132        }
6133    }
6134    ///Administrative action to update an account's email.
6135    pub async fn update_account_email(
6136        &self,
6137        input: crate::com::atproto::admin::update_account_email::Input,
6138    ) -> atrium_xrpc::Result<
6139        (),
6140        crate::com::atproto::admin::update_account_email::Error,
6141    > {
6142        let response = self
6143            .xrpc
6144            .send_xrpc::<
6145                (),
6146                _,
6147                (),
6148                _,
6149            >(
6150                &atrium_xrpc::XrpcRequest {
6151                    method: http::Method::POST,
6152                    nsid: crate::com::atproto::admin::update_account_email::NSID.into(),
6153                    parameters: None,
6154                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6155                    encoding: Some(String::from("application/json")),
6156                },
6157            )
6158            .await?;
6159        match response {
6160            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6161            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6162        }
6163    }
6164    ///Administrative action to update an account's handle.
6165    pub async fn update_account_handle(
6166        &self,
6167        input: crate::com::atproto::admin::update_account_handle::Input,
6168    ) -> atrium_xrpc::Result<
6169        (),
6170        crate::com::atproto::admin::update_account_handle::Error,
6171    > {
6172        let response = self
6173            .xrpc
6174            .send_xrpc::<
6175                (),
6176                _,
6177                (),
6178                _,
6179            >(
6180                &atrium_xrpc::XrpcRequest {
6181                    method: http::Method::POST,
6182                    nsid: crate::com::atproto::admin::update_account_handle::NSID.into(),
6183                    parameters: None,
6184                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6185                    encoding: Some(String::from("application/json")),
6186                },
6187            )
6188            .await?;
6189        match response {
6190            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6191            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6192        }
6193    }
6194    ///Update the password for a user account as an administrator.
6195    pub async fn update_account_password(
6196        &self,
6197        input: crate::com::atproto::admin::update_account_password::Input,
6198    ) -> atrium_xrpc::Result<
6199        (),
6200        crate::com::atproto::admin::update_account_password::Error,
6201    > {
6202        let response = self
6203            .xrpc
6204            .send_xrpc::<
6205                (),
6206                _,
6207                (),
6208                _,
6209            >(
6210                &atrium_xrpc::XrpcRequest {
6211                    method: http::Method::POST,
6212                    nsid: crate::com::atproto::admin::update_account_password::NSID
6213                        .into(),
6214                    parameters: None,
6215                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6216                    encoding: Some(String::from("application/json")),
6217                },
6218            )
6219            .await?;
6220        match response {
6221            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6222            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6223        }
6224    }
6225    ///Administrative action to update an account's signing key in their Did document.
6226    pub async fn update_account_signing_key(
6227        &self,
6228        input: crate::com::atproto::admin::update_account_signing_key::Input,
6229    ) -> atrium_xrpc::Result<
6230        (),
6231        crate::com::atproto::admin::update_account_signing_key::Error,
6232    > {
6233        let response = self
6234            .xrpc
6235            .send_xrpc::<
6236                (),
6237                _,
6238                (),
6239                _,
6240            >(
6241                &atrium_xrpc::XrpcRequest {
6242                    method: http::Method::POST,
6243                    nsid: crate::com::atproto::admin::update_account_signing_key::NSID
6244                        .into(),
6245                    parameters: None,
6246                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6247                    encoding: Some(String::from("application/json")),
6248                },
6249            )
6250            .await?;
6251        match response {
6252            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6253            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6254        }
6255    }
6256    ///Update the service-specific admin status of a subject (account, record, or blob).
6257    pub async fn update_subject_status(
6258        &self,
6259        input: crate::com::atproto::admin::update_subject_status::Input,
6260    ) -> atrium_xrpc::Result<
6261        crate::com::atproto::admin::update_subject_status::Output,
6262        crate::com::atproto::admin::update_subject_status::Error,
6263    > {
6264        let response = self
6265            .xrpc
6266            .send_xrpc::<
6267                (),
6268                _,
6269                _,
6270                _,
6271            >(
6272                &atrium_xrpc::XrpcRequest {
6273                    method: http::Method::POST,
6274                    nsid: crate::com::atproto::admin::update_subject_status::NSID.into(),
6275                    parameters: None,
6276                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6277                    encoding: Some(String::from("application/json")),
6278                },
6279            )
6280            .await?;
6281        match response {
6282            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6283            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6284        }
6285    }
6286}
6287impl<T> com::atproto::identity::Service<T>
6288where
6289    T: atrium_xrpc::XrpcClient + Send + Sync,
6290{
6291    #[allow(unused_variables)]
6292    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
6293        Self {
6294            xrpc,
6295            _phantom: core::marker::PhantomData,
6296        }
6297    }
6298    ///Describe the credentials that should be included in the DID doc of an account that is migrating to this service.
6299    pub async fn get_recommended_did_credentials(
6300        &self,
6301    ) -> atrium_xrpc::Result<
6302        crate::com::atproto::identity::get_recommended_did_credentials::Output,
6303        crate::com::atproto::identity::get_recommended_did_credentials::Error,
6304    > {
6305        let response = self
6306            .xrpc
6307            .send_xrpc::<
6308                (),
6309                (),
6310                _,
6311                _,
6312            >(
6313                &atrium_xrpc::XrpcRequest {
6314                    method: http::Method::GET,
6315                    nsid: crate::com::atproto::identity::get_recommended_did_credentials::NSID
6316                        .into(),
6317                    parameters: None,
6318                    input: None,
6319                    encoding: None,
6320                },
6321            )
6322            .await?;
6323        match response {
6324            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6325            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6326        }
6327    }
6328    ///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.
6329    pub async fn refresh_identity(
6330        &self,
6331        input: crate::com::atproto::identity::refresh_identity::Input,
6332    ) -> atrium_xrpc::Result<
6333        crate::com::atproto::identity::refresh_identity::Output,
6334        crate::com::atproto::identity::refresh_identity::Error,
6335    > {
6336        let response = self
6337            .xrpc
6338            .send_xrpc::<
6339                (),
6340                _,
6341                _,
6342                _,
6343            >(
6344                &atrium_xrpc::XrpcRequest {
6345                    method: http::Method::POST,
6346                    nsid: crate::com::atproto::identity::refresh_identity::NSID.into(),
6347                    parameters: None,
6348                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6349                    encoding: Some(String::from("application/json")),
6350                },
6351            )
6352            .await?;
6353        match response {
6354            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6355            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6356        }
6357    }
6358    ///Request an email with a code to in order to request a signed PLC operation. Requires Auth.
6359    pub async fn request_plc_operation_signature(
6360        &self,
6361    ) -> atrium_xrpc::Result<
6362        (),
6363        crate::com::atproto::identity::request_plc_operation_signature::Error,
6364    > {
6365        let response = self
6366            .xrpc
6367            .send_xrpc::<
6368                (),
6369                (),
6370                (),
6371                _,
6372            >(
6373                &atrium_xrpc::XrpcRequest {
6374                    method: http::Method::POST,
6375                    nsid: crate::com::atproto::identity::request_plc_operation_signature::NSID
6376                        .into(),
6377                    parameters: None,
6378                    input: None,
6379                    encoding: None,
6380                },
6381            )
6382            .await?;
6383        match response {
6384            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6385            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6386        }
6387    }
6388    ///Resolves DID to DID document. Does not bi-directionally verify handle.
6389    pub async fn resolve_did(
6390        &self,
6391        params: crate::com::atproto::identity::resolve_did::Parameters,
6392    ) -> atrium_xrpc::Result<
6393        crate::com::atproto::identity::resolve_did::Output,
6394        crate::com::atproto::identity::resolve_did::Error,
6395    > {
6396        let response = self
6397            .xrpc
6398            .send_xrpc::<
6399                _,
6400                (),
6401                _,
6402                _,
6403            >(
6404                &atrium_xrpc::XrpcRequest {
6405                    method: http::Method::GET,
6406                    nsid: crate::com::atproto::identity::resolve_did::NSID.into(),
6407                    parameters: Some(params),
6408                    input: None,
6409                    encoding: None,
6410                },
6411            )
6412            .await?;
6413        match response {
6414            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6415            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6416        }
6417    }
6418    ///Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document.
6419    pub async fn resolve_handle(
6420        &self,
6421        params: crate::com::atproto::identity::resolve_handle::Parameters,
6422    ) -> atrium_xrpc::Result<
6423        crate::com::atproto::identity::resolve_handle::Output,
6424        crate::com::atproto::identity::resolve_handle::Error,
6425    > {
6426        let response = self
6427            .xrpc
6428            .send_xrpc::<
6429                _,
6430                (),
6431                _,
6432                _,
6433            >(
6434                &atrium_xrpc::XrpcRequest {
6435                    method: http::Method::GET,
6436                    nsid: crate::com::atproto::identity::resolve_handle::NSID.into(),
6437                    parameters: Some(params),
6438                    input: None,
6439                    encoding: None,
6440                },
6441            )
6442            .await?;
6443        match response {
6444            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6445            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6446        }
6447    }
6448    ///Resolves an identity (DID or Handle) to a full identity (DID document and verified handle).
6449    pub async fn resolve_identity(
6450        &self,
6451        params: crate::com::atproto::identity::resolve_identity::Parameters,
6452    ) -> atrium_xrpc::Result<
6453        crate::com::atproto::identity::resolve_identity::Output,
6454        crate::com::atproto::identity::resolve_identity::Error,
6455    > {
6456        let response = self
6457            .xrpc
6458            .send_xrpc::<
6459                _,
6460                (),
6461                _,
6462                _,
6463            >(
6464                &atrium_xrpc::XrpcRequest {
6465                    method: http::Method::GET,
6466                    nsid: crate::com::atproto::identity::resolve_identity::NSID.into(),
6467                    parameters: Some(params),
6468                    input: None,
6469                    encoding: None,
6470                },
6471            )
6472            .await?;
6473        match response {
6474            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6475            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6476        }
6477    }
6478    ///Signs a PLC operation to update some value(s) in the requesting DID's document.
6479    pub async fn sign_plc_operation(
6480        &self,
6481        input: crate::com::atproto::identity::sign_plc_operation::Input,
6482    ) -> atrium_xrpc::Result<
6483        crate::com::atproto::identity::sign_plc_operation::Output,
6484        crate::com::atproto::identity::sign_plc_operation::Error,
6485    > {
6486        let response = self
6487            .xrpc
6488            .send_xrpc::<
6489                (),
6490                _,
6491                _,
6492                _,
6493            >(
6494                &atrium_xrpc::XrpcRequest {
6495                    method: http::Method::POST,
6496                    nsid: crate::com::atproto::identity::sign_plc_operation::NSID.into(),
6497                    parameters: None,
6498                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6499                    encoding: Some(String::from("application/json")),
6500                },
6501            )
6502            .await?;
6503        match response {
6504            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6505            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6506        }
6507    }
6508    ///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
6509    pub async fn submit_plc_operation(
6510        &self,
6511        input: crate::com::atproto::identity::submit_plc_operation::Input,
6512    ) -> atrium_xrpc::Result<
6513        (),
6514        crate::com::atproto::identity::submit_plc_operation::Error,
6515    > {
6516        let response = self
6517            .xrpc
6518            .send_xrpc::<
6519                (),
6520                _,
6521                (),
6522                _,
6523            >(
6524                &atrium_xrpc::XrpcRequest {
6525                    method: http::Method::POST,
6526                    nsid: crate::com::atproto::identity::submit_plc_operation::NSID
6527                        .into(),
6528                    parameters: None,
6529                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6530                    encoding: Some(String::from("application/json")),
6531                },
6532            )
6533            .await?;
6534        match response {
6535            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6536            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6537        }
6538    }
6539    ///Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.
6540    pub async fn update_handle(
6541        &self,
6542        input: crate::com::atproto::identity::update_handle::Input,
6543    ) -> atrium_xrpc::Result<(), crate::com::atproto::identity::update_handle::Error> {
6544        let response = self
6545            .xrpc
6546            .send_xrpc::<
6547                (),
6548                _,
6549                (),
6550                _,
6551            >(
6552                &atrium_xrpc::XrpcRequest {
6553                    method: http::Method::POST,
6554                    nsid: crate::com::atproto::identity::update_handle::NSID.into(),
6555                    parameters: None,
6556                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6557                    encoding: Some(String::from("application/json")),
6558                },
6559            )
6560            .await?;
6561        match response {
6562            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6563            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6564        }
6565    }
6566}
6567impl<T> com::atproto::label::Service<T>
6568where
6569    T: atrium_xrpc::XrpcClient + Send + Sync,
6570{
6571    #[allow(unused_variables)]
6572    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
6573        Self {
6574            xrpc,
6575            _phantom: core::marker::PhantomData,
6576        }
6577    }
6578    ///Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth.
6579    pub async fn query_labels(
6580        &self,
6581        params: crate::com::atproto::label::query_labels::Parameters,
6582    ) -> atrium_xrpc::Result<
6583        crate::com::atproto::label::query_labels::Output,
6584        crate::com::atproto::label::query_labels::Error,
6585    > {
6586        let response = self
6587            .xrpc
6588            .send_xrpc::<
6589                _,
6590                (),
6591                _,
6592                _,
6593            >(
6594                &atrium_xrpc::XrpcRequest {
6595                    method: http::Method::GET,
6596                    nsid: crate::com::atproto::label::query_labels::NSID.into(),
6597                    parameters: Some(params),
6598                    input: None,
6599                    encoding: None,
6600                },
6601            )
6602            .await?;
6603        match response {
6604            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6605            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6606        }
6607    }
6608}
6609impl<T> com::atproto::lexicon::Service<T>
6610where
6611    T: atrium_xrpc::XrpcClient + Send + Sync,
6612{
6613    #[allow(unused_variables)]
6614    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
6615        Self {
6616            xrpc,
6617            _phantom: core::marker::PhantomData,
6618        }
6619    }
6620    ///Resolves an atproto lexicon (NSID) to a schema.
6621    pub async fn resolve_lexicon(
6622        &self,
6623        params: crate::com::atproto::lexicon::resolve_lexicon::Parameters,
6624    ) -> atrium_xrpc::Result<
6625        crate::com::atproto::lexicon::resolve_lexicon::Output,
6626        crate::com::atproto::lexicon::resolve_lexicon::Error,
6627    > {
6628        let response = self
6629            .xrpc
6630            .send_xrpc::<
6631                _,
6632                (),
6633                _,
6634                _,
6635            >(
6636                &atrium_xrpc::XrpcRequest {
6637                    method: http::Method::GET,
6638                    nsid: crate::com::atproto::lexicon::resolve_lexicon::NSID.into(),
6639                    parameters: Some(params),
6640                    input: None,
6641                    encoding: None,
6642                },
6643            )
6644            .await?;
6645        match response {
6646            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6647            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6648        }
6649    }
6650}
6651impl<T> com::atproto::moderation::Service<T>
6652where
6653    T: atrium_xrpc::XrpcClient + Send + Sync,
6654{
6655    #[allow(unused_variables)]
6656    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
6657        Self {
6658            xrpc,
6659            _phantom: core::marker::PhantomData,
6660        }
6661    }
6662    ///Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.
6663    pub async fn create_report(
6664        &self,
6665        input: crate::com::atproto::moderation::create_report::Input,
6666    ) -> atrium_xrpc::Result<
6667        crate::com::atproto::moderation::create_report::Output,
6668        crate::com::atproto::moderation::create_report::Error,
6669    > {
6670        let response = self
6671            .xrpc
6672            .send_xrpc::<
6673                (),
6674                _,
6675                _,
6676                _,
6677            >(
6678                &atrium_xrpc::XrpcRequest {
6679                    method: http::Method::POST,
6680                    nsid: crate::com::atproto::moderation::create_report::NSID.into(),
6681                    parameters: None,
6682                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6683                    encoding: Some(String::from("application/json")),
6684                },
6685            )
6686            .await?;
6687        match response {
6688            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6689            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6690        }
6691    }
6692}
6693impl<T> com::atproto::repo::Service<T>
6694where
6695    T: atrium_xrpc::XrpcClient + Send + Sync,
6696{
6697    #[allow(unused_variables)]
6698    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
6699        Self {
6700            xrpc,
6701            _phantom: core::marker::PhantomData,
6702        }
6703    }
6704    ///Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.
6705    pub async fn apply_writes(
6706        &self,
6707        input: crate::com::atproto::repo::apply_writes::Input,
6708    ) -> atrium_xrpc::Result<
6709        crate::com::atproto::repo::apply_writes::Output,
6710        crate::com::atproto::repo::apply_writes::Error,
6711    > {
6712        let response = self
6713            .xrpc
6714            .send_xrpc::<
6715                (),
6716                _,
6717                _,
6718                _,
6719            >(
6720                &atrium_xrpc::XrpcRequest {
6721                    method: http::Method::POST,
6722                    nsid: crate::com::atproto::repo::apply_writes::NSID.into(),
6723                    parameters: None,
6724                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6725                    encoding: Some(String::from("application/json")),
6726                },
6727            )
6728            .await?;
6729        match response {
6730            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6731            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6732        }
6733    }
6734    ///Create a single new repository record. Requires auth, implemented by PDS.
6735    pub async fn create_record(
6736        &self,
6737        input: crate::com::atproto::repo::create_record::Input,
6738    ) -> atrium_xrpc::Result<
6739        crate::com::atproto::repo::create_record::Output,
6740        crate::com::atproto::repo::create_record::Error,
6741    > {
6742        let response = self
6743            .xrpc
6744            .send_xrpc::<
6745                (),
6746                _,
6747                _,
6748                _,
6749            >(
6750                &atrium_xrpc::XrpcRequest {
6751                    method: http::Method::POST,
6752                    nsid: crate::com::atproto::repo::create_record::NSID.into(),
6753                    parameters: None,
6754                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6755                    encoding: Some(String::from("application/json")),
6756                },
6757            )
6758            .await?;
6759        match response {
6760            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6761            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6762        }
6763    }
6764    ///Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.
6765    pub async fn delete_record(
6766        &self,
6767        input: crate::com::atproto::repo::delete_record::Input,
6768    ) -> atrium_xrpc::Result<
6769        crate::com::atproto::repo::delete_record::Output,
6770        crate::com::atproto::repo::delete_record::Error,
6771    > {
6772        let response = self
6773            .xrpc
6774            .send_xrpc::<
6775                (),
6776                _,
6777                _,
6778                _,
6779            >(
6780                &atrium_xrpc::XrpcRequest {
6781                    method: http::Method::POST,
6782                    nsid: crate::com::atproto::repo::delete_record::NSID.into(),
6783                    parameters: None,
6784                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6785                    encoding: Some(String::from("application/json")),
6786                },
6787            )
6788            .await?;
6789        match response {
6790            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6791            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6792        }
6793    }
6794    ///Get information about an account and repository, including the list of collections. Does not require auth.
6795    pub async fn describe_repo(
6796        &self,
6797        params: crate::com::atproto::repo::describe_repo::Parameters,
6798    ) -> atrium_xrpc::Result<
6799        crate::com::atproto::repo::describe_repo::Output,
6800        crate::com::atproto::repo::describe_repo::Error,
6801    > {
6802        let response = self
6803            .xrpc
6804            .send_xrpc::<
6805                _,
6806                (),
6807                _,
6808                _,
6809            >(
6810                &atrium_xrpc::XrpcRequest {
6811                    method: http::Method::GET,
6812                    nsid: crate::com::atproto::repo::describe_repo::NSID.into(),
6813                    parameters: Some(params),
6814                    input: None,
6815                    encoding: None,
6816                },
6817            )
6818            .await?;
6819        match response {
6820            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6821            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6822        }
6823    }
6824    ///Get a single record from a repository. Does not require auth.
6825    pub async fn get_record(
6826        &self,
6827        params: crate::com::atproto::repo::get_record::Parameters,
6828    ) -> atrium_xrpc::Result<
6829        crate::com::atproto::repo::get_record::Output,
6830        crate::com::atproto::repo::get_record::Error,
6831    > {
6832        let response = self
6833            .xrpc
6834            .send_xrpc::<
6835                _,
6836                (),
6837                _,
6838                _,
6839            >(
6840                &atrium_xrpc::XrpcRequest {
6841                    method: http::Method::GET,
6842                    nsid: crate::com::atproto::repo::get_record::NSID.into(),
6843                    parameters: Some(params),
6844                    input: None,
6845                    encoding: None,
6846                },
6847            )
6848            .await?;
6849        match response {
6850            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6851            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6852        }
6853    }
6854    ///Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set.
6855    pub async fn import_repo(
6856        &self,
6857        input: Vec<u8>,
6858    ) -> atrium_xrpc::Result<(), crate::com::atproto::repo::import_repo::Error> {
6859        let response = self
6860            .xrpc
6861            .send_xrpc::<
6862                (),
6863                Vec<u8>,
6864                (),
6865                _,
6866            >(
6867                &atrium_xrpc::XrpcRequest {
6868                    method: http::Method::POST,
6869                    nsid: crate::com::atproto::repo::import_repo::NSID.into(),
6870                    parameters: None,
6871                    input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
6872                    encoding: Some(String::from("application/vnd.ipld.car")),
6873                },
6874            )
6875            .await?;
6876        match response {
6877            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
6878            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6879        }
6880    }
6881    ///Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow.
6882    pub async fn list_missing_blobs(
6883        &self,
6884        params: crate::com::atproto::repo::list_missing_blobs::Parameters,
6885    ) -> atrium_xrpc::Result<
6886        crate::com::atproto::repo::list_missing_blobs::Output,
6887        crate::com::atproto::repo::list_missing_blobs::Error,
6888    > {
6889        let response = self
6890            .xrpc
6891            .send_xrpc::<
6892                _,
6893                (),
6894                _,
6895                _,
6896            >(
6897                &atrium_xrpc::XrpcRequest {
6898                    method: http::Method::GET,
6899                    nsid: crate::com::atproto::repo::list_missing_blobs::NSID.into(),
6900                    parameters: Some(params),
6901                    input: None,
6902                    encoding: None,
6903                },
6904            )
6905            .await?;
6906        match response {
6907            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6908            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6909        }
6910    }
6911    ///List a range of records in a repository, matching a specific collection. Does not require auth.
6912    pub async fn list_records(
6913        &self,
6914        params: crate::com::atproto::repo::list_records::Parameters,
6915    ) -> atrium_xrpc::Result<
6916        crate::com::atproto::repo::list_records::Output,
6917        crate::com::atproto::repo::list_records::Error,
6918    > {
6919        let response = self
6920            .xrpc
6921            .send_xrpc::<
6922                _,
6923                (),
6924                _,
6925                _,
6926            >(
6927                &atrium_xrpc::XrpcRequest {
6928                    method: http::Method::GET,
6929                    nsid: crate::com::atproto::repo::list_records::NSID.into(),
6930                    parameters: Some(params),
6931                    input: None,
6932                    encoding: None,
6933                },
6934            )
6935            .await?;
6936        match response {
6937            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6938            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6939        }
6940    }
6941    ///Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.
6942    pub async fn put_record(
6943        &self,
6944        input: crate::com::atproto::repo::put_record::Input,
6945    ) -> atrium_xrpc::Result<
6946        crate::com::atproto::repo::put_record::Output,
6947        crate::com::atproto::repo::put_record::Error,
6948    > {
6949        let response = self
6950            .xrpc
6951            .send_xrpc::<
6952                (),
6953                _,
6954                _,
6955                _,
6956            >(
6957                &atrium_xrpc::XrpcRequest {
6958                    method: http::Method::POST,
6959                    nsid: crate::com::atproto::repo::put_record::NSID.into(),
6960                    parameters: None,
6961                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
6962                    encoding: Some(String::from("application/json")),
6963                },
6964            )
6965            .await?;
6966        match response {
6967            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6968            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6969        }
6970    }
6971    ///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.
6972    pub async fn upload_blob(
6973        &self,
6974        input: Vec<u8>,
6975    ) -> atrium_xrpc::Result<
6976        crate::com::atproto::repo::upload_blob::Output,
6977        crate::com::atproto::repo::upload_blob::Error,
6978    > {
6979        let response = self
6980            .xrpc
6981            .send_xrpc::<
6982                (),
6983                Vec<u8>,
6984                _,
6985                _,
6986            >(
6987                &atrium_xrpc::XrpcRequest {
6988                    method: http::Method::POST,
6989                    nsid: crate::com::atproto::repo::upload_blob::NSID.into(),
6990                    parameters: None,
6991                    input: Some(atrium_xrpc::InputDataOrBytes::Bytes(input)),
6992                    encoding: Some(String::from("*/*")),
6993                },
6994            )
6995            .await?;
6996        match response {
6997            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
6998            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
6999        }
7000    }
7001}
7002impl<T> com::atproto::server::Service<T>
7003where
7004    T: atrium_xrpc::XrpcClient + Send + Sync,
7005{
7006    #[allow(unused_variables)]
7007    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
7008        Self {
7009            xrpc,
7010            _phantom: core::marker::PhantomData,
7011        }
7012    }
7013    ///Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup.
7014    pub async fn activate_account(
7015        &self,
7016    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::activate_account::Error> {
7017        let response = self
7018            .xrpc
7019            .send_xrpc::<
7020                (),
7021                (),
7022                (),
7023                _,
7024            >(
7025                &atrium_xrpc::XrpcRequest {
7026                    method: http::Method::POST,
7027                    nsid: crate::com::atproto::server::activate_account::NSID.into(),
7028                    parameters: None,
7029                    input: None,
7030                    encoding: None,
7031                },
7032            )
7033            .await?;
7034        match response {
7035            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7036            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7037        }
7038    }
7039    ///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.
7040    pub async fn check_account_status(
7041        &self,
7042    ) -> atrium_xrpc::Result<
7043        crate::com::atproto::server::check_account_status::Output,
7044        crate::com::atproto::server::check_account_status::Error,
7045    > {
7046        let response = self
7047            .xrpc
7048            .send_xrpc::<
7049                (),
7050                (),
7051                _,
7052                _,
7053            >(
7054                &atrium_xrpc::XrpcRequest {
7055                    method: http::Method::GET,
7056                    nsid: crate::com::atproto::server::check_account_status::NSID.into(),
7057                    parameters: None,
7058                    input: None,
7059                    encoding: None,
7060                },
7061            )
7062            .await?;
7063        match response {
7064            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7065            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7066        }
7067    }
7068    ///Confirm an email using a token from com.atproto.server.requestEmailConfirmation.
7069    pub async fn confirm_email(
7070        &self,
7071        input: crate::com::atproto::server::confirm_email::Input,
7072    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::confirm_email::Error> {
7073        let response = self
7074            .xrpc
7075            .send_xrpc::<
7076                (),
7077                _,
7078                (),
7079                _,
7080            >(
7081                &atrium_xrpc::XrpcRequest {
7082                    method: http::Method::POST,
7083                    nsid: crate::com::atproto::server::confirm_email::NSID.into(),
7084                    parameters: None,
7085                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7086                    encoding: Some(String::from("application/json")),
7087                },
7088            )
7089            .await?;
7090        match response {
7091            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7092            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7093        }
7094    }
7095    ///Create an account. Implemented by PDS.
7096    pub async fn create_account(
7097        &self,
7098        input: crate::com::atproto::server::create_account::Input,
7099    ) -> atrium_xrpc::Result<
7100        crate::com::atproto::server::create_account::Output,
7101        crate::com::atproto::server::create_account::Error,
7102    > {
7103        let response = self
7104            .xrpc
7105            .send_xrpc::<
7106                (),
7107                _,
7108                _,
7109                _,
7110            >(
7111                &atrium_xrpc::XrpcRequest {
7112                    method: http::Method::POST,
7113                    nsid: crate::com::atproto::server::create_account::NSID.into(),
7114                    parameters: None,
7115                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7116                    encoding: Some(String::from("application/json")),
7117                },
7118            )
7119            .await?;
7120        match response {
7121            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7122            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7123        }
7124    }
7125    ///Create an App Password.
7126    pub async fn create_app_password(
7127        &self,
7128        input: crate::com::atproto::server::create_app_password::Input,
7129    ) -> atrium_xrpc::Result<
7130        crate::com::atproto::server::create_app_password::Output,
7131        crate::com::atproto::server::create_app_password::Error,
7132    > {
7133        let response = self
7134            .xrpc
7135            .send_xrpc::<
7136                (),
7137                _,
7138                _,
7139                _,
7140            >(
7141                &atrium_xrpc::XrpcRequest {
7142                    method: http::Method::POST,
7143                    nsid: crate::com::atproto::server::create_app_password::NSID.into(),
7144                    parameters: None,
7145                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7146                    encoding: Some(String::from("application/json")),
7147                },
7148            )
7149            .await?;
7150        match response {
7151            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7152            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7153        }
7154    }
7155    ///Create an invite code.
7156    pub async fn create_invite_code(
7157        &self,
7158        input: crate::com::atproto::server::create_invite_code::Input,
7159    ) -> atrium_xrpc::Result<
7160        crate::com::atproto::server::create_invite_code::Output,
7161        crate::com::atproto::server::create_invite_code::Error,
7162    > {
7163        let response = self
7164            .xrpc
7165            .send_xrpc::<
7166                (),
7167                _,
7168                _,
7169                _,
7170            >(
7171                &atrium_xrpc::XrpcRequest {
7172                    method: http::Method::POST,
7173                    nsid: crate::com::atproto::server::create_invite_code::NSID.into(),
7174                    parameters: None,
7175                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7176                    encoding: Some(String::from("application/json")),
7177                },
7178            )
7179            .await?;
7180        match response {
7181            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7182            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7183        }
7184    }
7185    ///Create invite codes.
7186    pub async fn create_invite_codes(
7187        &self,
7188        input: crate::com::atproto::server::create_invite_codes::Input,
7189    ) -> atrium_xrpc::Result<
7190        crate::com::atproto::server::create_invite_codes::Output,
7191        crate::com::atproto::server::create_invite_codes::Error,
7192    > {
7193        let response = self
7194            .xrpc
7195            .send_xrpc::<
7196                (),
7197                _,
7198                _,
7199                _,
7200            >(
7201                &atrium_xrpc::XrpcRequest {
7202                    method: http::Method::POST,
7203                    nsid: crate::com::atproto::server::create_invite_codes::NSID.into(),
7204                    parameters: None,
7205                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7206                    encoding: Some(String::from("application/json")),
7207                },
7208            )
7209            .await?;
7210        match response {
7211            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7212            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7213        }
7214    }
7215    ///Create an authentication session.
7216    pub async fn create_session(
7217        &self,
7218        input: crate::com::atproto::server::create_session::Input,
7219    ) -> atrium_xrpc::Result<
7220        crate::com::atproto::server::create_session::Output,
7221        crate::com::atproto::server::create_session::Error,
7222    > {
7223        let response = self
7224            .xrpc
7225            .send_xrpc::<
7226                (),
7227                _,
7228                _,
7229                _,
7230            >(
7231                &atrium_xrpc::XrpcRequest {
7232                    method: http::Method::POST,
7233                    nsid: crate::com::atproto::server::create_session::NSID.into(),
7234                    parameters: None,
7235                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7236                    encoding: Some(String::from("application/json")),
7237                },
7238            )
7239            .await?;
7240        match response {
7241            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7242            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7243        }
7244    }
7245    ///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.
7246    pub async fn deactivate_account(
7247        &self,
7248        input: crate::com::atproto::server::deactivate_account::Input,
7249    ) -> atrium_xrpc::Result<
7250        (),
7251        crate::com::atproto::server::deactivate_account::Error,
7252    > {
7253        let response = self
7254            .xrpc
7255            .send_xrpc::<
7256                (),
7257                _,
7258                (),
7259                _,
7260            >(
7261                &atrium_xrpc::XrpcRequest {
7262                    method: http::Method::POST,
7263                    nsid: crate::com::atproto::server::deactivate_account::NSID.into(),
7264                    parameters: None,
7265                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7266                    encoding: Some(String::from("application/json")),
7267                },
7268            )
7269            .await?;
7270        match response {
7271            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7272            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7273        }
7274    }
7275    ///Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.
7276    pub async fn delete_account(
7277        &self,
7278        input: crate::com::atproto::server::delete_account::Input,
7279    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_account::Error> {
7280        let response = self
7281            .xrpc
7282            .send_xrpc::<
7283                (),
7284                _,
7285                (),
7286                _,
7287            >(
7288                &atrium_xrpc::XrpcRequest {
7289                    method: http::Method::POST,
7290                    nsid: crate::com::atproto::server::delete_account::NSID.into(),
7291                    parameters: None,
7292                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7293                    encoding: Some(String::from("application/json")),
7294                },
7295            )
7296            .await?;
7297        match response {
7298            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7299            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7300        }
7301    }
7302    ///Delete the current session. Requires auth using the 'refreshJwt' (not the 'accessJwt').
7303    pub async fn delete_session(
7304        &self,
7305    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::delete_session::Error> {
7306        let response = self
7307            .xrpc
7308            .send_xrpc::<
7309                (),
7310                (),
7311                (),
7312                _,
7313            >(
7314                &atrium_xrpc::XrpcRequest {
7315                    method: http::Method::POST,
7316                    nsid: crate::com::atproto::server::delete_session::NSID.into(),
7317                    parameters: None,
7318                    input: None,
7319                    encoding: None,
7320                },
7321            )
7322            .await?;
7323        match response {
7324            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7325            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7326        }
7327    }
7328    ///Describes the server's account creation requirements and capabilities. Implemented by PDS.
7329    pub async fn describe_server(
7330        &self,
7331    ) -> atrium_xrpc::Result<
7332        crate::com::atproto::server::describe_server::Output,
7333        crate::com::atproto::server::describe_server::Error,
7334    > {
7335        let response = self
7336            .xrpc
7337            .send_xrpc::<
7338                (),
7339                (),
7340                _,
7341                _,
7342            >(
7343                &atrium_xrpc::XrpcRequest {
7344                    method: http::Method::GET,
7345                    nsid: crate::com::atproto::server::describe_server::NSID.into(),
7346                    parameters: None,
7347                    input: None,
7348                    encoding: None,
7349                },
7350            )
7351            .await?;
7352        match response {
7353            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7354            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7355        }
7356    }
7357    ///Get all invite codes for the current account. Requires auth.
7358    pub async fn get_account_invite_codes(
7359        &self,
7360        params: crate::com::atproto::server::get_account_invite_codes::Parameters,
7361    ) -> atrium_xrpc::Result<
7362        crate::com::atproto::server::get_account_invite_codes::Output,
7363        crate::com::atproto::server::get_account_invite_codes::Error,
7364    > {
7365        let response = self
7366            .xrpc
7367            .send_xrpc::<
7368                _,
7369                (),
7370                _,
7371                _,
7372            >(
7373                &atrium_xrpc::XrpcRequest {
7374                    method: http::Method::GET,
7375                    nsid: crate::com::atproto::server::get_account_invite_codes::NSID
7376                        .into(),
7377                    parameters: Some(params),
7378                    input: None,
7379                    encoding: None,
7380                },
7381            )
7382            .await?;
7383        match response {
7384            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7385            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7386        }
7387    }
7388    ///Get a signed token on behalf of the requesting DID for the requested service.
7389    pub async fn get_service_auth(
7390        &self,
7391        params: crate::com::atproto::server::get_service_auth::Parameters,
7392    ) -> atrium_xrpc::Result<
7393        crate::com::atproto::server::get_service_auth::Output,
7394        crate::com::atproto::server::get_service_auth::Error,
7395    > {
7396        let response = self
7397            .xrpc
7398            .send_xrpc::<
7399                _,
7400                (),
7401                _,
7402                _,
7403            >(
7404                &atrium_xrpc::XrpcRequest {
7405                    method: http::Method::GET,
7406                    nsid: crate::com::atproto::server::get_service_auth::NSID.into(),
7407                    parameters: Some(params),
7408                    input: None,
7409                    encoding: None,
7410                },
7411            )
7412            .await?;
7413        match response {
7414            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7415            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7416        }
7417    }
7418    ///Get information about the current auth session. Requires auth.
7419    pub async fn get_session(
7420        &self,
7421    ) -> atrium_xrpc::Result<
7422        crate::com::atproto::server::get_session::Output,
7423        crate::com::atproto::server::get_session::Error,
7424    > {
7425        let response = self
7426            .xrpc
7427            .send_xrpc::<
7428                (),
7429                (),
7430                _,
7431                _,
7432            >(
7433                &atrium_xrpc::XrpcRequest {
7434                    method: http::Method::GET,
7435                    nsid: crate::com::atproto::server::get_session::NSID.into(),
7436                    parameters: None,
7437                    input: None,
7438                    encoding: None,
7439                },
7440            )
7441            .await?;
7442        match response {
7443            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7444            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7445        }
7446    }
7447    ///List all App Passwords.
7448    pub async fn list_app_passwords(
7449        &self,
7450    ) -> atrium_xrpc::Result<
7451        crate::com::atproto::server::list_app_passwords::Output,
7452        crate::com::atproto::server::list_app_passwords::Error,
7453    > {
7454        let response = self
7455            .xrpc
7456            .send_xrpc::<
7457                (),
7458                (),
7459                _,
7460                _,
7461            >(
7462                &atrium_xrpc::XrpcRequest {
7463                    method: http::Method::GET,
7464                    nsid: crate::com::atproto::server::list_app_passwords::NSID.into(),
7465                    parameters: None,
7466                    input: None,
7467                    encoding: None,
7468                },
7469            )
7470            .await?;
7471        match response {
7472            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7473            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7474        }
7475    }
7476    ///Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').
7477    pub async fn refresh_session(
7478        &self,
7479    ) -> atrium_xrpc::Result<
7480        crate::com::atproto::server::refresh_session::Output,
7481        crate::com::atproto::server::refresh_session::Error,
7482    > {
7483        let response = self
7484            .xrpc
7485            .send_xrpc::<
7486                (),
7487                (),
7488                _,
7489                _,
7490            >(
7491                &atrium_xrpc::XrpcRequest {
7492                    method: http::Method::POST,
7493                    nsid: crate::com::atproto::server::refresh_session::NSID.into(),
7494                    parameters: None,
7495                    input: None,
7496                    encoding: None,
7497                },
7498            )
7499            .await?;
7500        match response {
7501            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7502            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7503        }
7504    }
7505    ///Initiate a user account deletion via email.
7506    pub async fn request_account_delete(
7507        &self,
7508    ) -> atrium_xrpc::Result<
7509        (),
7510        crate::com::atproto::server::request_account_delete::Error,
7511    > {
7512        let response = self
7513            .xrpc
7514            .send_xrpc::<
7515                (),
7516                (),
7517                (),
7518                _,
7519            >(
7520                &atrium_xrpc::XrpcRequest {
7521                    method: http::Method::POST,
7522                    nsid: crate::com::atproto::server::request_account_delete::NSID
7523                        .into(),
7524                    parameters: None,
7525                    input: None,
7526                    encoding: None,
7527                },
7528            )
7529            .await?;
7530        match response {
7531            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7532            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7533        }
7534    }
7535    ///Request an email with a code to confirm ownership of email.
7536    pub async fn request_email_confirmation(
7537        &self,
7538    ) -> atrium_xrpc::Result<
7539        (),
7540        crate::com::atproto::server::request_email_confirmation::Error,
7541    > {
7542        let response = self
7543            .xrpc
7544            .send_xrpc::<
7545                (),
7546                (),
7547                (),
7548                _,
7549            >(
7550                &atrium_xrpc::XrpcRequest {
7551                    method: http::Method::POST,
7552                    nsid: crate::com::atproto::server::request_email_confirmation::NSID
7553                        .into(),
7554                    parameters: None,
7555                    input: None,
7556                    encoding: None,
7557                },
7558            )
7559            .await?;
7560        match response {
7561            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7562            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7563        }
7564    }
7565    ///Request a token in order to update email.
7566    pub async fn request_email_update(
7567        &self,
7568    ) -> atrium_xrpc::Result<
7569        crate::com::atproto::server::request_email_update::Output,
7570        crate::com::atproto::server::request_email_update::Error,
7571    > {
7572        let response = self
7573            .xrpc
7574            .send_xrpc::<
7575                (),
7576                (),
7577                _,
7578                _,
7579            >(
7580                &atrium_xrpc::XrpcRequest {
7581                    method: http::Method::POST,
7582                    nsid: crate::com::atproto::server::request_email_update::NSID.into(),
7583                    parameters: None,
7584                    input: None,
7585                    encoding: None,
7586                },
7587            )
7588            .await?;
7589        match response {
7590            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7591            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7592        }
7593    }
7594    ///Initiate a user account password reset via email.
7595    pub async fn request_password_reset(
7596        &self,
7597        input: crate::com::atproto::server::request_password_reset::Input,
7598    ) -> atrium_xrpc::Result<
7599        (),
7600        crate::com::atproto::server::request_password_reset::Error,
7601    > {
7602        let response = self
7603            .xrpc
7604            .send_xrpc::<
7605                (),
7606                _,
7607                (),
7608                _,
7609            >(
7610                &atrium_xrpc::XrpcRequest {
7611                    method: http::Method::POST,
7612                    nsid: crate::com::atproto::server::request_password_reset::NSID
7613                        .into(),
7614                    parameters: None,
7615                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7616                    encoding: Some(String::from("application/json")),
7617                },
7618            )
7619            .await?;
7620        match response {
7621            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7622            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7623        }
7624    }
7625    ///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.
7626    pub async fn reserve_signing_key(
7627        &self,
7628        input: crate::com::atproto::server::reserve_signing_key::Input,
7629    ) -> atrium_xrpc::Result<
7630        crate::com::atproto::server::reserve_signing_key::Output,
7631        crate::com::atproto::server::reserve_signing_key::Error,
7632    > {
7633        let response = self
7634            .xrpc
7635            .send_xrpc::<
7636                (),
7637                _,
7638                _,
7639                _,
7640            >(
7641                &atrium_xrpc::XrpcRequest {
7642                    method: http::Method::POST,
7643                    nsid: crate::com::atproto::server::reserve_signing_key::NSID.into(),
7644                    parameters: None,
7645                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7646                    encoding: Some(String::from("application/json")),
7647                },
7648            )
7649            .await?;
7650        match response {
7651            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7652            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7653        }
7654    }
7655    ///Reset a user account password using a token.
7656    pub async fn reset_password(
7657        &self,
7658        input: crate::com::atproto::server::reset_password::Input,
7659    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::reset_password::Error> {
7660        let response = self
7661            .xrpc
7662            .send_xrpc::<
7663                (),
7664                _,
7665                (),
7666                _,
7667            >(
7668                &atrium_xrpc::XrpcRequest {
7669                    method: http::Method::POST,
7670                    nsid: crate::com::atproto::server::reset_password::NSID.into(),
7671                    parameters: None,
7672                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7673                    encoding: Some(String::from("application/json")),
7674                },
7675            )
7676            .await?;
7677        match response {
7678            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7679            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7680        }
7681    }
7682    ///Revoke an App Password by name.
7683    pub async fn revoke_app_password(
7684        &self,
7685        input: crate::com::atproto::server::revoke_app_password::Input,
7686    ) -> atrium_xrpc::Result<
7687        (),
7688        crate::com::atproto::server::revoke_app_password::Error,
7689    > {
7690        let response = self
7691            .xrpc
7692            .send_xrpc::<
7693                (),
7694                _,
7695                (),
7696                _,
7697            >(
7698                &atrium_xrpc::XrpcRequest {
7699                    method: http::Method::POST,
7700                    nsid: crate::com::atproto::server::revoke_app_password::NSID.into(),
7701                    parameters: None,
7702                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7703                    encoding: Some(String::from("application/json")),
7704                },
7705            )
7706            .await?;
7707        match response {
7708            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7709            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7710        }
7711    }
7712    ///Update an account's email.
7713    pub async fn update_email(
7714        &self,
7715        input: crate::com::atproto::server::update_email::Input,
7716    ) -> atrium_xrpc::Result<(), crate::com::atproto::server::update_email::Error> {
7717        let response = self
7718            .xrpc
7719            .send_xrpc::<
7720                (),
7721                _,
7722                (),
7723                _,
7724            >(
7725                &atrium_xrpc::XrpcRequest {
7726                    method: http::Method::POST,
7727                    nsid: crate::com::atproto::server::update_email::NSID.into(),
7728                    parameters: None,
7729                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
7730                    encoding: Some(String::from("application/json")),
7731                },
7732            )
7733            .await?;
7734        match response {
7735            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
7736            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7737        }
7738    }
7739}
7740impl<T> com::atproto::sync::Service<T>
7741where
7742    T: atrium_xrpc::XrpcClient + Send + Sync,
7743{
7744    #[allow(unused_variables)]
7745    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
7746        Self {
7747            xrpc,
7748            _phantom: core::marker::PhantomData,
7749        }
7750    }
7751    ///Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.
7752    pub async fn get_blob(
7753        &self,
7754        params: crate::com::atproto::sync::get_blob::Parameters,
7755    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blob::Error> {
7756        let response = self
7757            .xrpc
7758            .send_xrpc::<
7759                _,
7760                (),
7761                (),
7762                _,
7763            >(
7764                &atrium_xrpc::XrpcRequest {
7765                    method: http::Method::GET,
7766                    nsid: crate::com::atproto::sync::get_blob::NSID.into(),
7767                    parameters: Some(params),
7768                    input: None,
7769                    encoding: None,
7770                },
7771            )
7772            .await?;
7773        match response {
7774            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
7775            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7776        }
7777    }
7778    ///Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.
7779    pub async fn get_blocks(
7780        &self,
7781        params: crate::com::atproto::sync::get_blocks::Parameters,
7782    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_blocks::Error> {
7783        let response = self
7784            .xrpc
7785            .send_xrpc::<
7786                _,
7787                (),
7788                (),
7789                _,
7790            >(
7791                &atrium_xrpc::XrpcRequest {
7792                    method: http::Method::GET,
7793                    nsid: crate::com::atproto::sync::get_blocks::NSID.into(),
7794                    parameters: Some(params),
7795                    input: None,
7796                    encoding: None,
7797                },
7798            )
7799            .await?;
7800        match response {
7801            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
7802            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7803        }
7804    }
7805    ///DEPRECATED - please use com.atproto.sync.getRepo instead
7806    pub async fn get_checkout(
7807        &self,
7808        params: crate::com::atproto::sync::get_checkout::Parameters,
7809    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_checkout::Error> {
7810        let response = self
7811            .xrpc
7812            .send_xrpc::<
7813                _,
7814                (),
7815                (),
7816                _,
7817            >(
7818                &atrium_xrpc::XrpcRequest {
7819                    method: http::Method::GET,
7820                    nsid: crate::com::atproto::sync::get_checkout::NSID.into(),
7821                    parameters: Some(params),
7822                    input: None,
7823                    encoding: None,
7824                },
7825            )
7826            .await?;
7827        match response {
7828            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
7829            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7830        }
7831    }
7832    ///DEPRECATED - please use com.atproto.sync.getLatestCommit instead
7833    pub async fn get_head(
7834        &self,
7835        params: crate::com::atproto::sync::get_head::Parameters,
7836    ) -> atrium_xrpc::Result<
7837        crate::com::atproto::sync::get_head::Output,
7838        crate::com::atproto::sync::get_head::Error,
7839    > {
7840        let response = self
7841            .xrpc
7842            .send_xrpc::<
7843                _,
7844                (),
7845                _,
7846                _,
7847            >(
7848                &atrium_xrpc::XrpcRequest {
7849                    method: http::Method::GET,
7850                    nsid: crate::com::atproto::sync::get_head::NSID.into(),
7851                    parameters: Some(params),
7852                    input: None,
7853                    encoding: None,
7854                },
7855            )
7856            .await?;
7857        match response {
7858            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7859            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7860        }
7861    }
7862    ///Returns information about a specified upstream host, as consumed by the server. Implemented by relays.
7863    pub async fn get_host_status(
7864        &self,
7865        params: crate::com::atproto::sync::get_host_status::Parameters,
7866    ) -> atrium_xrpc::Result<
7867        crate::com::atproto::sync::get_host_status::Output,
7868        crate::com::atproto::sync::get_host_status::Error,
7869    > {
7870        let response = self
7871            .xrpc
7872            .send_xrpc::<
7873                _,
7874                (),
7875                _,
7876                _,
7877            >(
7878                &atrium_xrpc::XrpcRequest {
7879                    method: http::Method::GET,
7880                    nsid: crate::com::atproto::sync::get_host_status::NSID.into(),
7881                    parameters: Some(params),
7882                    input: None,
7883                    encoding: None,
7884                },
7885            )
7886            .await?;
7887        match response {
7888            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7889            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7890        }
7891    }
7892    ///Get the current commit CID & revision of the specified repo. Does not require auth.
7893    pub async fn get_latest_commit(
7894        &self,
7895        params: crate::com::atproto::sync::get_latest_commit::Parameters,
7896    ) -> atrium_xrpc::Result<
7897        crate::com::atproto::sync::get_latest_commit::Output,
7898        crate::com::atproto::sync::get_latest_commit::Error,
7899    > {
7900        let response = self
7901            .xrpc
7902            .send_xrpc::<
7903                _,
7904                (),
7905                _,
7906                _,
7907            >(
7908                &atrium_xrpc::XrpcRequest {
7909                    method: http::Method::GET,
7910                    nsid: crate::com::atproto::sync::get_latest_commit::NSID.into(),
7911                    parameters: Some(params),
7912                    input: None,
7913                    encoding: None,
7914                },
7915            )
7916            .await?;
7917        match response {
7918            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
7919            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7920        }
7921    }
7922    ///Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.
7923    pub async fn get_record(
7924        &self,
7925        params: crate::com::atproto::sync::get_record::Parameters,
7926    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_record::Error> {
7927        let response = self
7928            .xrpc
7929            .send_xrpc::<
7930                _,
7931                (),
7932                (),
7933                _,
7934            >(
7935                &atrium_xrpc::XrpcRequest {
7936                    method: http::Method::GET,
7937                    nsid: crate::com::atproto::sync::get_record::NSID.into(),
7938                    parameters: Some(params),
7939                    input: None,
7940                    encoding: None,
7941                },
7942            )
7943            .await?;
7944        match response {
7945            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
7946            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7947        }
7948    }
7949    ///Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.
7950    pub async fn get_repo(
7951        &self,
7952        params: crate::com::atproto::sync::get_repo::Parameters,
7953    ) -> atrium_xrpc::Result<Vec<u8>, crate::com::atproto::sync::get_repo::Error> {
7954        let response = self
7955            .xrpc
7956            .send_xrpc::<
7957                _,
7958                (),
7959                (),
7960                _,
7961            >(
7962                &atrium_xrpc::XrpcRequest {
7963                    method: http::Method::GET,
7964                    nsid: crate::com::atproto::sync::get_repo::NSID.into(),
7965                    parameters: Some(params),
7966                    input: None,
7967                    encoding: None,
7968                },
7969            )
7970            .await?;
7971        match response {
7972            atrium_xrpc::OutputDataOrBytes::Bytes(bytes) => Ok(bytes),
7973            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
7974        }
7975    }
7976    ///Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay.
7977    pub async fn get_repo_status(
7978        &self,
7979        params: crate::com::atproto::sync::get_repo_status::Parameters,
7980    ) -> atrium_xrpc::Result<
7981        crate::com::atproto::sync::get_repo_status::Output,
7982        crate::com::atproto::sync::get_repo_status::Error,
7983    > {
7984        let response = self
7985            .xrpc
7986            .send_xrpc::<
7987                _,
7988                (),
7989                _,
7990                _,
7991            >(
7992                &atrium_xrpc::XrpcRequest {
7993                    method: http::Method::GET,
7994                    nsid: crate::com::atproto::sync::get_repo_status::NSID.into(),
7995                    parameters: Some(params),
7996                    input: None,
7997                    encoding: None,
7998                },
7999            )
8000            .await?;
8001        match response {
8002            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8003            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8004        }
8005    }
8006    ///List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS.
8007    pub async fn list_blobs(
8008        &self,
8009        params: crate::com::atproto::sync::list_blobs::Parameters,
8010    ) -> atrium_xrpc::Result<
8011        crate::com::atproto::sync::list_blobs::Output,
8012        crate::com::atproto::sync::list_blobs::Error,
8013    > {
8014        let response = self
8015            .xrpc
8016            .send_xrpc::<
8017                _,
8018                (),
8019                _,
8020                _,
8021            >(
8022                &atrium_xrpc::XrpcRequest {
8023                    method: http::Method::GET,
8024                    nsid: crate::com::atproto::sync::list_blobs::NSID.into(),
8025                    parameters: Some(params),
8026                    input: None,
8027                    encoding: None,
8028                },
8029            )
8030            .await?;
8031        match response {
8032            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8033            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8034        }
8035    }
8036    ///Enumerates upstream hosts (eg, PDS or relay instances) that this service consumes from. Implemented by relays.
8037    pub async fn list_hosts(
8038        &self,
8039        params: crate::com::atproto::sync::list_hosts::Parameters,
8040    ) -> atrium_xrpc::Result<
8041        crate::com::atproto::sync::list_hosts::Output,
8042        crate::com::atproto::sync::list_hosts::Error,
8043    > {
8044        let response = self
8045            .xrpc
8046            .send_xrpc::<
8047                _,
8048                (),
8049                _,
8050                _,
8051            >(
8052                &atrium_xrpc::XrpcRequest {
8053                    method: http::Method::GET,
8054                    nsid: crate::com::atproto::sync::list_hosts::NSID.into(),
8055                    parameters: Some(params),
8056                    input: None,
8057                    encoding: None,
8058                },
8059            )
8060            .await?;
8061        match response {
8062            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8063            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8064        }
8065    }
8066    ///Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.
8067    pub async fn list_repos(
8068        &self,
8069        params: crate::com::atproto::sync::list_repos::Parameters,
8070    ) -> atrium_xrpc::Result<
8071        crate::com::atproto::sync::list_repos::Output,
8072        crate::com::atproto::sync::list_repos::Error,
8073    > {
8074        let response = self
8075            .xrpc
8076            .send_xrpc::<
8077                _,
8078                (),
8079                _,
8080                _,
8081            >(
8082                &atrium_xrpc::XrpcRequest {
8083                    method: http::Method::GET,
8084                    nsid: crate::com::atproto::sync::list_repos::NSID.into(),
8085                    parameters: Some(params),
8086                    input: None,
8087                    encoding: None,
8088                },
8089            )
8090            .await?;
8091        match response {
8092            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8093            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8094        }
8095    }
8096    ///Enumerates all the DIDs which have records with the given collection NSID.
8097    pub async fn list_repos_by_collection(
8098        &self,
8099        params: crate::com::atproto::sync::list_repos_by_collection::Parameters,
8100    ) -> atrium_xrpc::Result<
8101        crate::com::atproto::sync::list_repos_by_collection::Output,
8102        crate::com::atproto::sync::list_repos_by_collection::Error,
8103    > {
8104        let response = self
8105            .xrpc
8106            .send_xrpc::<
8107                _,
8108                (),
8109                _,
8110                _,
8111            >(
8112                &atrium_xrpc::XrpcRequest {
8113                    method: http::Method::GET,
8114                    nsid: crate::com::atproto::sync::list_repos_by_collection::NSID
8115                        .into(),
8116                    parameters: Some(params),
8117                    input: None,
8118                    encoding: None,
8119                },
8120            )
8121            .await?;
8122        match response {
8123            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8124            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8125        }
8126    }
8127    ///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
8128    pub async fn notify_of_update(
8129        &self,
8130        input: crate::com::atproto::sync::notify_of_update::Input,
8131    ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::notify_of_update::Error> {
8132        let response = self
8133            .xrpc
8134            .send_xrpc::<
8135                (),
8136                _,
8137                (),
8138                _,
8139            >(
8140                &atrium_xrpc::XrpcRequest {
8141                    method: http::Method::POST,
8142                    nsid: crate::com::atproto::sync::notify_of_update::NSID.into(),
8143                    parameters: None,
8144                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8145                    encoding: Some(String::from("application/json")),
8146                },
8147            )
8148            .await?;
8149        match response {
8150            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
8151            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8152        }
8153    }
8154    ///Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth.
8155    pub async fn request_crawl(
8156        &self,
8157        input: crate::com::atproto::sync::request_crawl::Input,
8158    ) -> atrium_xrpc::Result<(), crate::com::atproto::sync::request_crawl::Error> {
8159        let response = self
8160            .xrpc
8161            .send_xrpc::<
8162                (),
8163                _,
8164                (),
8165                _,
8166            >(
8167                &atrium_xrpc::XrpcRequest {
8168                    method: http::Method::POST,
8169                    nsid: crate::com::atproto::sync::request_crawl::NSID.into(),
8170                    parameters: None,
8171                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8172                    encoding: Some(String::from("application/json")),
8173                },
8174            )
8175            .await?;
8176        match response {
8177            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
8178            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8179        }
8180    }
8181}
8182impl<T> com::atproto::temp::Service<T>
8183where
8184    T: atrium_xrpc::XrpcClient + Send + Sync,
8185{
8186    #[allow(unused_variables)]
8187    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8188        Self {
8189            xrpc,
8190            _phantom: core::marker::PhantomData,
8191        }
8192    }
8193    ///Add a handle to the set of reserved handles.
8194    pub async fn add_reserved_handle(
8195        &self,
8196        input: crate::com::atproto::temp::add_reserved_handle::Input,
8197    ) -> atrium_xrpc::Result<
8198        crate::com::atproto::temp::add_reserved_handle::Output,
8199        crate::com::atproto::temp::add_reserved_handle::Error,
8200    > {
8201        let response = self
8202            .xrpc
8203            .send_xrpc::<
8204                (),
8205                _,
8206                _,
8207                _,
8208            >(
8209                &atrium_xrpc::XrpcRequest {
8210                    method: http::Method::POST,
8211                    nsid: crate::com::atproto::temp::add_reserved_handle::NSID.into(),
8212                    parameters: None,
8213                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8214                    encoding: Some(String::from("application/json")),
8215                },
8216            )
8217            .await?;
8218        match response {
8219            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8220            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8221        }
8222    }
8223    ///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.
8224    pub async fn check_handle_availability(
8225        &self,
8226        params: crate::com::atproto::temp::check_handle_availability::Parameters,
8227    ) -> atrium_xrpc::Result<
8228        crate::com::atproto::temp::check_handle_availability::Output,
8229        crate::com::atproto::temp::check_handle_availability::Error,
8230    > {
8231        let response = self
8232            .xrpc
8233            .send_xrpc::<
8234                _,
8235                (),
8236                _,
8237                _,
8238            >(
8239                &atrium_xrpc::XrpcRequest {
8240                    method: http::Method::GET,
8241                    nsid: crate::com::atproto::temp::check_handle_availability::NSID
8242                        .into(),
8243                    parameters: Some(params),
8244                    input: None,
8245                    encoding: None,
8246                },
8247            )
8248            .await?;
8249        match response {
8250            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8251            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8252        }
8253    }
8254    ///Check accounts location in signup queue.
8255    pub async fn check_signup_queue(
8256        &self,
8257    ) -> atrium_xrpc::Result<
8258        crate::com::atproto::temp::check_signup_queue::Output,
8259        crate::com::atproto::temp::check_signup_queue::Error,
8260    > {
8261        let response = self
8262            .xrpc
8263            .send_xrpc::<
8264                (),
8265                (),
8266                _,
8267                _,
8268            >(
8269                &atrium_xrpc::XrpcRequest {
8270                    method: http::Method::GET,
8271                    nsid: crate::com::atproto::temp::check_signup_queue::NSID.into(),
8272                    parameters: None,
8273                    input: None,
8274                    encoding: None,
8275                },
8276            )
8277            .await?;
8278        match response {
8279            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8280            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8281        }
8282    }
8283    ///Allows finding the oauth permission scope from a reference
8284    pub async fn dereference_scope(
8285        &self,
8286        params: crate::com::atproto::temp::dereference_scope::Parameters,
8287    ) -> atrium_xrpc::Result<
8288        crate::com::atproto::temp::dereference_scope::Output,
8289        crate::com::atproto::temp::dereference_scope::Error,
8290    > {
8291        let response = self
8292            .xrpc
8293            .send_xrpc::<
8294                _,
8295                (),
8296                _,
8297                _,
8298            >(
8299                &atrium_xrpc::XrpcRequest {
8300                    method: http::Method::GET,
8301                    nsid: crate::com::atproto::temp::dereference_scope::NSID.into(),
8302                    parameters: Some(params),
8303                    input: None,
8304                    encoding: None,
8305                },
8306            )
8307            .await?;
8308        match response {
8309            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8310            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8311        }
8312    }
8313    ///DEPRECATED: use queryLabels or subscribeLabels instead -- Fetch all labels from a labeler created after a certain date.
8314    pub async fn fetch_labels(
8315        &self,
8316        params: crate::com::atproto::temp::fetch_labels::Parameters,
8317    ) -> atrium_xrpc::Result<
8318        crate::com::atproto::temp::fetch_labels::Output,
8319        crate::com::atproto::temp::fetch_labels::Error,
8320    > {
8321        let response = self
8322            .xrpc
8323            .send_xrpc::<
8324                _,
8325                (),
8326                _,
8327                _,
8328            >(
8329                &atrium_xrpc::XrpcRequest {
8330                    method: http::Method::GET,
8331                    nsid: crate::com::atproto::temp::fetch_labels::NSID.into(),
8332                    parameters: Some(params),
8333                    input: None,
8334                    encoding: None,
8335                },
8336            )
8337            .await?;
8338        match response {
8339            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8340            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8341        }
8342    }
8343    ///Request a verification code to be sent to the supplied phone number
8344    pub async fn request_phone_verification(
8345        &self,
8346        input: crate::com::atproto::temp::request_phone_verification::Input,
8347    ) -> atrium_xrpc::Result<
8348        (),
8349        crate::com::atproto::temp::request_phone_verification::Error,
8350    > {
8351        let response = self
8352            .xrpc
8353            .send_xrpc::<
8354                (),
8355                _,
8356                (),
8357                _,
8358            >(
8359                &atrium_xrpc::XrpcRequest {
8360                    method: http::Method::POST,
8361                    nsid: crate::com::atproto::temp::request_phone_verification::NSID
8362                        .into(),
8363                    parameters: None,
8364                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8365                    encoding: Some(String::from("application/json")),
8366                },
8367            )
8368            .await?;
8369        match response {
8370            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
8371            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8372        }
8373    }
8374    ///Revoke sessions, password, and app passwords associated with account. May be resolved by a password reset.
8375    pub async fn revoke_account_credentials(
8376        &self,
8377        input: crate::com::atproto::temp::revoke_account_credentials::Input,
8378    ) -> atrium_xrpc::Result<
8379        (),
8380        crate::com::atproto::temp::revoke_account_credentials::Error,
8381    > {
8382        let response = self
8383            .xrpc
8384            .send_xrpc::<
8385                (),
8386                _,
8387                (),
8388                _,
8389            >(
8390                &atrium_xrpc::XrpcRequest {
8391                    method: http::Method::POST,
8392                    nsid: crate::com::atproto::temp::revoke_account_credentials::NSID
8393                        .into(),
8394                    parameters: None,
8395                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8396                    encoding: Some(String::from("application/json")),
8397                },
8398            )
8399            .await?;
8400        match response {
8401            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
8402            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8403        }
8404    }
8405}
8406impl<T> tools::Service<T>
8407where
8408    T: atrium_xrpc::XrpcClient + Send + Sync,
8409{
8410    #[allow(unused_variables)]
8411    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8412        Self {
8413            #[cfg(feature = "namespace-toolsozone")]
8414            ozone: tools::ozone::Service::new(std::sync::Arc::clone(&xrpc)),
8415            _phantom: core::marker::PhantomData,
8416        }
8417    }
8418}
8419#[cfg(feature = "namespace-toolsozone")]
8420impl<T> tools::ozone::Service<T>
8421where
8422    T: atrium_xrpc::XrpcClient + Send + Sync,
8423{
8424    #[allow(unused_variables)]
8425    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8426        Self {
8427            communication: tools::ozone::communication::Service::new(
8428                std::sync::Arc::clone(&xrpc),
8429            ),
8430            hosting: tools::ozone::hosting::Service::new(std::sync::Arc::clone(&xrpc)),
8431            moderation: tools::ozone::moderation::Service::new(
8432                std::sync::Arc::clone(&xrpc),
8433            ),
8434            queue: tools::ozone::queue::Service::new(std::sync::Arc::clone(&xrpc)),
8435            report: tools::ozone::report::Service::new(std::sync::Arc::clone(&xrpc)),
8436            safelink: tools::ozone::safelink::Service::new(std::sync::Arc::clone(&xrpc)),
8437            server: tools::ozone::server::Service::new(std::sync::Arc::clone(&xrpc)),
8438            set: tools::ozone::set::Service::new(std::sync::Arc::clone(&xrpc)),
8439            setting: tools::ozone::setting::Service::new(std::sync::Arc::clone(&xrpc)),
8440            signature: tools::ozone::signature::Service::new(
8441                std::sync::Arc::clone(&xrpc),
8442            ),
8443            team: tools::ozone::team::Service::new(std::sync::Arc::clone(&xrpc)),
8444            verification: tools::ozone::verification::Service::new(
8445                std::sync::Arc::clone(&xrpc),
8446            ),
8447            _phantom: core::marker::PhantomData,
8448        }
8449    }
8450}
8451#[cfg(feature = "namespace-toolsozone")]
8452impl<T> tools::ozone::communication::Service<T>
8453where
8454    T: atrium_xrpc::XrpcClient + Send + Sync,
8455{
8456    #[allow(unused_variables)]
8457    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8458        Self {
8459            xrpc,
8460            _phantom: core::marker::PhantomData,
8461        }
8462    }
8463    ///Administrative action to create a new, re-usable communication (email for now) template.
8464    pub async fn create_template(
8465        &self,
8466        input: crate::tools::ozone::communication::create_template::Input,
8467    ) -> atrium_xrpc::Result<
8468        crate::tools::ozone::communication::create_template::Output,
8469        crate::tools::ozone::communication::create_template::Error,
8470    > {
8471        let response = self
8472            .xrpc
8473            .send_xrpc::<
8474                (),
8475                _,
8476                _,
8477                _,
8478            >(
8479                &atrium_xrpc::XrpcRequest {
8480                    method: http::Method::POST,
8481                    nsid: crate::tools::ozone::communication::create_template::NSID
8482                        .into(),
8483                    parameters: None,
8484                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8485                    encoding: Some(String::from("application/json")),
8486                },
8487            )
8488            .await?;
8489        match response {
8490            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8491            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8492        }
8493    }
8494    ///Delete a communication template.
8495    pub async fn delete_template(
8496        &self,
8497        input: crate::tools::ozone::communication::delete_template::Input,
8498    ) -> atrium_xrpc::Result<
8499        (),
8500        crate::tools::ozone::communication::delete_template::Error,
8501    > {
8502        let response = self
8503            .xrpc
8504            .send_xrpc::<
8505                (),
8506                _,
8507                (),
8508                _,
8509            >(
8510                &atrium_xrpc::XrpcRequest {
8511                    method: http::Method::POST,
8512                    nsid: crate::tools::ozone::communication::delete_template::NSID
8513                        .into(),
8514                    parameters: None,
8515                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8516                    encoding: Some(String::from("application/json")),
8517                },
8518            )
8519            .await?;
8520        match response {
8521            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
8522            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8523        }
8524    }
8525    ///Get list of all communication templates.
8526    pub async fn list_templates(
8527        &self,
8528    ) -> atrium_xrpc::Result<
8529        crate::tools::ozone::communication::list_templates::Output,
8530        crate::tools::ozone::communication::list_templates::Error,
8531    > {
8532        let response = self
8533            .xrpc
8534            .send_xrpc::<
8535                (),
8536                (),
8537                _,
8538                _,
8539            >(
8540                &atrium_xrpc::XrpcRequest {
8541                    method: http::Method::GET,
8542                    nsid: crate::tools::ozone::communication::list_templates::NSID
8543                        .into(),
8544                    parameters: None,
8545                    input: None,
8546                    encoding: None,
8547                },
8548            )
8549            .await?;
8550        match response {
8551            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8552            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8553        }
8554    }
8555    ///Administrative action to update an existing communication template. Allows passing partial fields to patch specific fields only.
8556    pub async fn update_template(
8557        &self,
8558        input: crate::tools::ozone::communication::update_template::Input,
8559    ) -> atrium_xrpc::Result<
8560        crate::tools::ozone::communication::update_template::Output,
8561        crate::tools::ozone::communication::update_template::Error,
8562    > {
8563        let response = self
8564            .xrpc
8565            .send_xrpc::<
8566                (),
8567                _,
8568                _,
8569                _,
8570            >(
8571                &atrium_xrpc::XrpcRequest {
8572                    method: http::Method::POST,
8573                    nsid: crate::tools::ozone::communication::update_template::NSID
8574                        .into(),
8575                    parameters: None,
8576                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8577                    encoding: Some(String::from("application/json")),
8578                },
8579            )
8580            .await?;
8581        match response {
8582            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8583            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8584        }
8585    }
8586}
8587#[cfg(feature = "namespace-toolsozone")]
8588impl<T> tools::ozone::hosting::Service<T>
8589where
8590    T: atrium_xrpc::XrpcClient + Send + Sync,
8591{
8592    #[allow(unused_variables)]
8593    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8594        Self {
8595            xrpc,
8596            _phantom: core::marker::PhantomData,
8597        }
8598    }
8599    ///Get account history, e.g. log of updated email addresses or other identity information.
8600    pub async fn get_account_history(
8601        &self,
8602        params: crate::tools::ozone::hosting::get_account_history::Parameters,
8603    ) -> atrium_xrpc::Result<
8604        crate::tools::ozone::hosting::get_account_history::Output,
8605        crate::tools::ozone::hosting::get_account_history::Error,
8606    > {
8607        let response = self
8608            .xrpc
8609            .send_xrpc::<
8610                _,
8611                (),
8612                _,
8613                _,
8614            >(
8615                &atrium_xrpc::XrpcRequest {
8616                    method: http::Method::GET,
8617                    nsid: crate::tools::ozone::hosting::get_account_history::NSID.into(),
8618                    parameters: Some(params),
8619                    input: None,
8620                    encoding: None,
8621                },
8622            )
8623            .await?;
8624        match response {
8625            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8626            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8627        }
8628    }
8629}
8630#[cfg(feature = "namespace-toolsozone")]
8631impl<T> tools::ozone::moderation::Service<T>
8632where
8633    T: atrium_xrpc::XrpcClient + Send + Sync,
8634{
8635    #[allow(unused_variables)]
8636    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
8637        Self {
8638            xrpc,
8639            _phantom: core::marker::PhantomData,
8640        }
8641    }
8642    ///Cancel all pending scheduled moderation actions for specified subjects
8643    pub async fn cancel_scheduled_actions(
8644        &self,
8645        input: crate::tools::ozone::moderation::cancel_scheduled_actions::Input,
8646    ) -> atrium_xrpc::Result<
8647        crate::tools::ozone::moderation::cancel_scheduled_actions::Output,
8648        crate::tools::ozone::moderation::cancel_scheduled_actions::Error,
8649    > {
8650        let response = self
8651            .xrpc
8652            .send_xrpc::<
8653                (),
8654                _,
8655                _,
8656                _,
8657            >(
8658                &atrium_xrpc::XrpcRequest {
8659                    method: http::Method::POST,
8660                    nsid: crate::tools::ozone::moderation::cancel_scheduled_actions::NSID
8661                        .into(),
8662                    parameters: None,
8663                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8664                    encoding: Some(String::from("application/json")),
8665                },
8666            )
8667            .await?;
8668        match response {
8669            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8670            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8671        }
8672    }
8673    ///Take a moderation action on an actor.
8674    pub async fn emit_event(
8675        &self,
8676        input: crate::tools::ozone::moderation::emit_event::Input,
8677    ) -> atrium_xrpc::Result<
8678        crate::tools::ozone::moderation::emit_event::Output,
8679        crate::tools::ozone::moderation::emit_event::Error,
8680    > {
8681        let response = self
8682            .xrpc
8683            .send_xrpc::<
8684                (),
8685                _,
8686                _,
8687                _,
8688            >(
8689                &atrium_xrpc::XrpcRequest {
8690                    method: http::Method::POST,
8691                    nsid: crate::tools::ozone::moderation::emit_event::NSID.into(),
8692                    parameters: None,
8693                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8694                    encoding: Some(String::from("application/json")),
8695                },
8696            )
8697            .await?;
8698        match response {
8699            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8700            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8701        }
8702    }
8703    ///Get timeline of all available events of an account. This includes moderation events, account history and did history.
8704    pub async fn get_account_timeline(
8705        &self,
8706        params: crate::tools::ozone::moderation::get_account_timeline::Parameters,
8707    ) -> atrium_xrpc::Result<
8708        crate::tools::ozone::moderation::get_account_timeline::Output,
8709        crate::tools::ozone::moderation::get_account_timeline::Error,
8710    > {
8711        let response = self
8712            .xrpc
8713            .send_xrpc::<
8714                _,
8715                (),
8716                _,
8717                _,
8718            >(
8719                &atrium_xrpc::XrpcRequest {
8720                    method: http::Method::GET,
8721                    nsid: crate::tools::ozone::moderation::get_account_timeline::NSID
8722                        .into(),
8723                    parameters: Some(params),
8724                    input: None,
8725                    encoding: None,
8726                },
8727            )
8728            .await?;
8729        match response {
8730            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8731            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8732        }
8733    }
8734    ///Get details about a moderation event.
8735    pub async fn get_event(
8736        &self,
8737        params: crate::tools::ozone::moderation::get_event::Parameters,
8738    ) -> atrium_xrpc::Result<
8739        crate::tools::ozone::moderation::get_event::Output,
8740        crate::tools::ozone::moderation::get_event::Error,
8741    > {
8742        let response = self
8743            .xrpc
8744            .send_xrpc::<
8745                _,
8746                (),
8747                _,
8748                _,
8749            >(
8750                &atrium_xrpc::XrpcRequest {
8751                    method: http::Method::GET,
8752                    nsid: crate::tools::ozone::moderation::get_event::NSID.into(),
8753                    parameters: Some(params),
8754                    input: None,
8755                    encoding: None,
8756                },
8757            )
8758            .await?;
8759        match response {
8760            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8761            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8762        }
8763    }
8764    ///Get details about a record.
8765    pub async fn get_record(
8766        &self,
8767        params: crate::tools::ozone::moderation::get_record::Parameters,
8768    ) -> atrium_xrpc::Result<
8769        crate::tools::ozone::moderation::get_record::Output,
8770        crate::tools::ozone::moderation::get_record::Error,
8771    > {
8772        let response = self
8773            .xrpc
8774            .send_xrpc::<
8775                _,
8776                (),
8777                _,
8778                _,
8779            >(
8780                &atrium_xrpc::XrpcRequest {
8781                    method: http::Method::GET,
8782                    nsid: crate::tools::ozone::moderation::get_record::NSID.into(),
8783                    parameters: Some(params),
8784                    input: None,
8785                    encoding: None,
8786                },
8787            )
8788            .await?;
8789        match response {
8790            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8791            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8792        }
8793    }
8794    ///Get details about some records.
8795    pub async fn get_records(
8796        &self,
8797        params: crate::tools::ozone::moderation::get_records::Parameters,
8798    ) -> atrium_xrpc::Result<
8799        crate::tools::ozone::moderation::get_records::Output,
8800        crate::tools::ozone::moderation::get_records::Error,
8801    > {
8802        let response = self
8803            .xrpc
8804            .send_xrpc::<
8805                _,
8806                (),
8807                _,
8808                _,
8809            >(
8810                &atrium_xrpc::XrpcRequest {
8811                    method: http::Method::GET,
8812                    nsid: crate::tools::ozone::moderation::get_records::NSID.into(),
8813                    parameters: Some(params),
8814                    input: None,
8815                    encoding: None,
8816                },
8817            )
8818            .await?;
8819        match response {
8820            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8821            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8822        }
8823    }
8824    ///Get details about a repository.
8825    pub async fn get_repo(
8826        &self,
8827        params: crate::tools::ozone::moderation::get_repo::Parameters,
8828    ) -> atrium_xrpc::Result<
8829        crate::tools::ozone::moderation::get_repo::Output,
8830        crate::tools::ozone::moderation::get_repo::Error,
8831    > {
8832        let response = self
8833            .xrpc
8834            .send_xrpc::<
8835                _,
8836                (),
8837                _,
8838                _,
8839            >(
8840                &atrium_xrpc::XrpcRequest {
8841                    method: http::Method::GET,
8842                    nsid: crate::tools::ozone::moderation::get_repo::NSID.into(),
8843                    parameters: Some(params),
8844                    input: None,
8845                    encoding: None,
8846                },
8847            )
8848            .await?;
8849        match response {
8850            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8851            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8852        }
8853    }
8854    ///Get reporter stats for a list of users.
8855    pub async fn get_reporter_stats(
8856        &self,
8857        params: crate::tools::ozone::moderation::get_reporter_stats::Parameters,
8858    ) -> atrium_xrpc::Result<
8859        crate::tools::ozone::moderation::get_reporter_stats::Output,
8860        crate::tools::ozone::moderation::get_reporter_stats::Error,
8861    > {
8862        let response = self
8863            .xrpc
8864            .send_xrpc::<
8865                _,
8866                (),
8867                _,
8868                _,
8869            >(
8870                &atrium_xrpc::XrpcRequest {
8871                    method: http::Method::GET,
8872                    nsid: crate::tools::ozone::moderation::get_reporter_stats::NSID
8873                        .into(),
8874                    parameters: Some(params),
8875                    input: None,
8876                    encoding: None,
8877                },
8878            )
8879            .await?;
8880        match response {
8881            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8882            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8883        }
8884    }
8885    ///Get details about some repositories.
8886    pub async fn get_repos(
8887        &self,
8888        params: crate::tools::ozone::moderation::get_repos::Parameters,
8889    ) -> atrium_xrpc::Result<
8890        crate::tools::ozone::moderation::get_repos::Output,
8891        crate::tools::ozone::moderation::get_repos::Error,
8892    > {
8893        let response = self
8894            .xrpc
8895            .send_xrpc::<
8896                _,
8897                (),
8898                _,
8899                _,
8900            >(
8901                &atrium_xrpc::XrpcRequest {
8902                    method: http::Method::GET,
8903                    nsid: crate::tools::ozone::moderation::get_repos::NSID.into(),
8904                    parameters: Some(params),
8905                    input: None,
8906                    encoding: None,
8907                },
8908            )
8909            .await?;
8910        match response {
8911            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8912            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8913        }
8914    }
8915    ///Get details about subjects.
8916    pub async fn get_subjects(
8917        &self,
8918        params: crate::tools::ozone::moderation::get_subjects::Parameters,
8919    ) -> atrium_xrpc::Result<
8920        crate::tools::ozone::moderation::get_subjects::Output,
8921        crate::tools::ozone::moderation::get_subjects::Error,
8922    > {
8923        let response = self
8924            .xrpc
8925            .send_xrpc::<
8926                _,
8927                (),
8928                _,
8929                _,
8930            >(
8931                &atrium_xrpc::XrpcRequest {
8932                    method: http::Method::GET,
8933                    nsid: crate::tools::ozone::moderation::get_subjects::NSID.into(),
8934                    parameters: Some(params),
8935                    input: None,
8936                    encoding: None,
8937                },
8938            )
8939            .await?;
8940        match response {
8941            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8942            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8943        }
8944    }
8945    ///List scheduled moderation actions with optional filtering
8946    pub async fn list_scheduled_actions(
8947        &self,
8948        input: crate::tools::ozone::moderation::list_scheduled_actions::Input,
8949    ) -> atrium_xrpc::Result<
8950        crate::tools::ozone::moderation::list_scheduled_actions::Output,
8951        crate::tools::ozone::moderation::list_scheduled_actions::Error,
8952    > {
8953        let response = self
8954            .xrpc
8955            .send_xrpc::<
8956                (),
8957                _,
8958                _,
8959                _,
8960            >(
8961                &atrium_xrpc::XrpcRequest {
8962                    method: http::Method::POST,
8963                    nsid: crate::tools::ozone::moderation::list_scheduled_actions::NSID
8964                        .into(),
8965                    parameters: None,
8966                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
8967                    encoding: Some(String::from("application/json")),
8968                },
8969            )
8970            .await?;
8971        match response {
8972            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
8973            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
8974        }
8975    }
8976    ///List moderation events related to a subject.
8977    pub async fn query_events(
8978        &self,
8979        params: crate::tools::ozone::moderation::query_events::Parameters,
8980    ) -> atrium_xrpc::Result<
8981        crate::tools::ozone::moderation::query_events::Output,
8982        crate::tools::ozone::moderation::query_events::Error,
8983    > {
8984        let response = self
8985            .xrpc
8986            .send_xrpc::<
8987                _,
8988                (),
8989                _,
8990                _,
8991            >(
8992                &atrium_xrpc::XrpcRequest {
8993                    method: http::Method::GET,
8994                    nsid: crate::tools::ozone::moderation::query_events::NSID.into(),
8995                    parameters: Some(params),
8996                    input: None,
8997                    encoding: None,
8998                },
8999            )
9000            .await?;
9001        match response {
9002            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9003            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9004        }
9005    }
9006    ///View moderation statuses of subjects (record or repo).
9007    pub async fn query_statuses(
9008        &self,
9009        params: crate::tools::ozone::moderation::query_statuses::Parameters,
9010    ) -> atrium_xrpc::Result<
9011        crate::tools::ozone::moderation::query_statuses::Output,
9012        crate::tools::ozone::moderation::query_statuses::Error,
9013    > {
9014        let response = self
9015            .xrpc
9016            .send_xrpc::<
9017                _,
9018                (),
9019                _,
9020                _,
9021            >(
9022                &atrium_xrpc::XrpcRequest {
9023                    method: http::Method::GET,
9024                    nsid: crate::tools::ozone::moderation::query_statuses::NSID.into(),
9025                    parameters: Some(params),
9026                    input: None,
9027                    encoding: None,
9028                },
9029            )
9030            .await?;
9031        match response {
9032            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9033            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9034        }
9035    }
9036    ///Schedule a moderation action to be executed at a future time
9037    pub async fn schedule_action(
9038        &self,
9039        input: crate::tools::ozone::moderation::schedule_action::Input,
9040    ) -> atrium_xrpc::Result<
9041        crate::tools::ozone::moderation::schedule_action::Output,
9042        crate::tools::ozone::moderation::schedule_action::Error,
9043    > {
9044        let response = self
9045            .xrpc
9046            .send_xrpc::<
9047                (),
9048                _,
9049                _,
9050                _,
9051            >(
9052                &atrium_xrpc::XrpcRequest {
9053                    method: http::Method::POST,
9054                    nsid: crate::tools::ozone::moderation::schedule_action::NSID.into(),
9055                    parameters: None,
9056                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9057                    encoding: Some(String::from("application/json")),
9058                },
9059            )
9060            .await?;
9061        match response {
9062            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9063            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9064        }
9065    }
9066    ///Find repositories based on a search term.
9067    pub async fn search_repos(
9068        &self,
9069        params: crate::tools::ozone::moderation::search_repos::Parameters,
9070    ) -> atrium_xrpc::Result<
9071        crate::tools::ozone::moderation::search_repos::Output,
9072        crate::tools::ozone::moderation::search_repos::Error,
9073    > {
9074        let response = self
9075            .xrpc
9076            .send_xrpc::<
9077                _,
9078                (),
9079                _,
9080                _,
9081            >(
9082                &atrium_xrpc::XrpcRequest {
9083                    method: http::Method::GET,
9084                    nsid: crate::tools::ozone::moderation::search_repos::NSID.into(),
9085                    parameters: Some(params),
9086                    input: None,
9087                    encoding: None,
9088                },
9089            )
9090            .await?;
9091        match response {
9092            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9093            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9094        }
9095    }
9096}
9097#[cfg(feature = "namespace-toolsozone")]
9098impl<T> tools::ozone::queue::Service<T>
9099where
9100    T: atrium_xrpc::XrpcClient + Send + Sync,
9101{
9102    #[allow(unused_variables)]
9103    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
9104        Self {
9105            xrpc,
9106            _phantom: core::marker::PhantomData,
9107        }
9108    }
9109    ///Assign a user to a queue.
9110    pub async fn assign_moderator(
9111        &self,
9112        input: crate::tools::ozone::queue::assign_moderator::Input,
9113    ) -> atrium_xrpc::Result<
9114        crate::tools::ozone::queue::assign_moderator::Output,
9115        crate::tools::ozone::queue::assign_moderator::Error,
9116    > {
9117        let response = self
9118            .xrpc
9119            .send_xrpc::<
9120                (),
9121                _,
9122                _,
9123                _,
9124            >(
9125                &atrium_xrpc::XrpcRequest {
9126                    method: http::Method::POST,
9127                    nsid: crate::tools::ozone::queue::assign_moderator::NSID.into(),
9128                    parameters: None,
9129                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9130                    encoding: Some(String::from("application/json")),
9131                },
9132            )
9133            .await?;
9134        match response {
9135            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9136            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9137        }
9138    }
9139    ///Create a new moderation queue. A queue can have optional matching criteria that ozone's queue router will use to match reports. A queue with no criteria must have reports assigned to it manually via (1) `modTool.meta.queueId` in `tools.ozone.moderation.emitEvent` or (2) `tools.ozone.report.reassignQueue`.
9140    pub async fn create_queue(
9141        &self,
9142        input: crate::tools::ozone::queue::create_queue::Input,
9143    ) -> atrium_xrpc::Result<
9144        crate::tools::ozone::queue::create_queue::Output,
9145        crate::tools::ozone::queue::create_queue::Error,
9146    > {
9147        let response = self
9148            .xrpc
9149            .send_xrpc::<
9150                (),
9151                _,
9152                _,
9153                _,
9154            >(
9155                &atrium_xrpc::XrpcRequest {
9156                    method: http::Method::POST,
9157                    nsid: crate::tools::ozone::queue::create_queue::NSID.into(),
9158                    parameters: None,
9159                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9160                    encoding: Some(String::from("application/json")),
9161                },
9162            )
9163            .await?;
9164        match response {
9165            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9166            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9167        }
9168    }
9169    ///Delete a moderation queue. Optionally migrate reports to another queue.
9170    pub async fn delete_queue(
9171        &self,
9172        input: crate::tools::ozone::queue::delete_queue::Input,
9173    ) -> atrium_xrpc::Result<
9174        crate::tools::ozone::queue::delete_queue::Output,
9175        crate::tools::ozone::queue::delete_queue::Error,
9176    > {
9177        let response = self
9178            .xrpc
9179            .send_xrpc::<
9180                (),
9181                _,
9182                _,
9183                _,
9184            >(
9185                &atrium_xrpc::XrpcRequest {
9186                    method: http::Method::POST,
9187                    nsid: crate::tools::ozone::queue::delete_queue::NSID.into(),
9188                    parameters: None,
9189                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9190                    encoding: Some(String::from("application/json")),
9191                },
9192            )
9193            .await?;
9194        match response {
9195            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9196            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9197        }
9198    }
9199    ///Get moderator assignments, optionally filtered by active status, queue, or moderator.
9200    pub async fn get_assignments(
9201        &self,
9202        params: crate::tools::ozone::queue::get_assignments::Parameters,
9203    ) -> atrium_xrpc::Result<
9204        crate::tools::ozone::queue::get_assignments::Output,
9205        crate::tools::ozone::queue::get_assignments::Error,
9206    > {
9207        let response = self
9208            .xrpc
9209            .send_xrpc::<
9210                _,
9211                (),
9212                _,
9213                _,
9214            >(
9215                &atrium_xrpc::XrpcRequest {
9216                    method: http::Method::GET,
9217                    nsid: crate::tools::ozone::queue::get_assignments::NSID.into(),
9218                    parameters: Some(params),
9219                    input: None,
9220                    encoding: None,
9221                },
9222            )
9223            .await?;
9224        match response {
9225            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9226            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9227        }
9228    }
9229    ///List all configured moderation queues with statistics.
9230    pub async fn list_queues(
9231        &self,
9232        params: crate::tools::ozone::queue::list_queues::Parameters,
9233    ) -> atrium_xrpc::Result<
9234        crate::tools::ozone::queue::list_queues::Output,
9235        crate::tools::ozone::queue::list_queues::Error,
9236    > {
9237        let response = self
9238            .xrpc
9239            .send_xrpc::<
9240                _,
9241                (),
9242                _,
9243                _,
9244            >(
9245                &atrium_xrpc::XrpcRequest {
9246                    method: http::Method::GET,
9247                    nsid: crate::tools::ozone::queue::list_queues::NSID.into(),
9248                    parameters: Some(params),
9249                    input: None,
9250                    encoding: None,
9251                },
9252            )
9253            .await?;
9254        match response {
9255            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9256            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9257        }
9258    }
9259    ///Route reports within an ID range to matching queues based.
9260    pub async fn route_reports(
9261        &self,
9262        input: crate::tools::ozone::queue::route_reports::Input,
9263    ) -> atrium_xrpc::Result<
9264        crate::tools::ozone::queue::route_reports::Output,
9265        crate::tools::ozone::queue::route_reports::Error,
9266    > {
9267        let response = self
9268            .xrpc
9269            .send_xrpc::<
9270                (),
9271                _,
9272                _,
9273                _,
9274            >(
9275                &atrium_xrpc::XrpcRequest {
9276                    method: http::Method::POST,
9277                    nsid: crate::tools::ozone::queue::route_reports::NSID.into(),
9278                    parameters: None,
9279                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9280                    encoding: Some(String::from("application/json")),
9281                },
9282            )
9283            .await?;
9284        match response {
9285            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9286            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9287        }
9288    }
9289    ///Remove a user's assignment from a queue.
9290    pub async fn unassign_moderator(
9291        &self,
9292        input: crate::tools::ozone::queue::unassign_moderator::Input,
9293    ) -> atrium_xrpc::Result<(), crate::tools::ozone::queue::unassign_moderator::Error> {
9294        let response = self
9295            .xrpc
9296            .send_xrpc::<
9297                (),
9298                _,
9299                (),
9300                _,
9301            >(
9302                &atrium_xrpc::XrpcRequest {
9303                    method: http::Method::POST,
9304                    nsid: crate::tools::ozone::queue::unassign_moderator::NSID.into(),
9305                    parameters: None,
9306                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9307                    encoding: Some(String::from("application/json")),
9308                },
9309            )
9310            .await?;
9311        match response {
9312            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
9313            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9314        }
9315    }
9316    ///Update queue properties.
9317    pub async fn update_queue(
9318        &self,
9319        input: crate::tools::ozone::queue::update_queue::Input,
9320    ) -> atrium_xrpc::Result<
9321        crate::tools::ozone::queue::update_queue::Output,
9322        crate::tools::ozone::queue::update_queue::Error,
9323    > {
9324        let response = self
9325            .xrpc
9326            .send_xrpc::<
9327                (),
9328                _,
9329                _,
9330                _,
9331            >(
9332                &atrium_xrpc::XrpcRequest {
9333                    method: http::Method::POST,
9334                    nsid: crate::tools::ozone::queue::update_queue::NSID.into(),
9335                    parameters: None,
9336                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9337                    encoding: Some(String::from("application/json")),
9338                },
9339            )
9340            .await?;
9341        match response {
9342            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9343            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9344        }
9345    }
9346}
9347#[cfg(feature = "namespace-toolsozone")]
9348impl<T> tools::ozone::report::Service<T>
9349where
9350    T: atrium_xrpc::XrpcClient + Send + Sync,
9351{
9352    #[allow(unused_variables)]
9353    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
9354        Self {
9355            xrpc,
9356            _phantom: core::marker::PhantomData,
9357        }
9358    }
9359    ///Assign a report to a user. Defaults to the caller. Admins may assign to any moderator.
9360    pub async fn assign_moderator(
9361        &self,
9362        input: crate::tools::ozone::report::assign_moderator::Input,
9363    ) -> atrium_xrpc::Result<
9364        crate::tools::ozone::report::assign_moderator::Output,
9365        crate::tools::ozone::report::assign_moderator::Error,
9366    > {
9367        let response = self
9368            .xrpc
9369            .send_xrpc::<
9370                (),
9371                _,
9372                _,
9373                _,
9374            >(
9375                &atrium_xrpc::XrpcRequest {
9376                    method: http::Method::POST,
9377                    nsid: crate::tools::ozone::report::assign_moderator::NSID.into(),
9378                    parameters: None,
9379                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9380                    encoding: Some(String::from("application/json")),
9381                },
9382            )
9383            .await?;
9384        match response {
9385            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9386            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9387        }
9388    }
9389    ///Close all reports on a subject matching the given criteria. Reports whose current status does not permit a transition to closed are skipped silently. Intended for automated flows that resolve reports without taking action on the subject.
9390    pub async fn close_reports(
9391        &self,
9392        input: crate::tools::ozone::report::close_reports::Input,
9393    ) -> atrium_xrpc::Result<
9394        crate::tools::ozone::report::close_reports::Output,
9395        crate::tools::ozone::report::close_reports::Error,
9396    > {
9397        let response = self
9398            .xrpc
9399            .send_xrpc::<
9400                (),
9401                _,
9402                _,
9403                _,
9404            >(
9405                &atrium_xrpc::XrpcRequest {
9406                    method: http::Method::POST,
9407                    nsid: crate::tools::ozone::report::close_reports::NSID.into(),
9408                    parameters: None,
9409                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9410                    encoding: Some(String::from("application/json")),
9411                },
9412            )
9413            .await?;
9414        match response {
9415            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9416            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9417        }
9418    }
9419    ///Register an activity on a report. For state-change activity types, validates the transition and updates report.status atomically.
9420    pub async fn create_activity(
9421        &self,
9422        input: crate::tools::ozone::report::create_activity::Input,
9423    ) -> atrium_xrpc::Result<
9424        crate::tools::ozone::report::create_activity::Output,
9425        crate::tools::ozone::report::create_activity::Error,
9426    > {
9427        let response = self
9428            .xrpc
9429            .send_xrpc::<
9430                (),
9431                _,
9432                _,
9433                _,
9434            >(
9435                &atrium_xrpc::XrpcRequest {
9436                    method: http::Method::POST,
9437                    nsid: crate::tools::ozone::report::create_activity::NSID.into(),
9438                    parameters: None,
9439                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9440                    encoding: Some(String::from("application/json")),
9441                },
9442            )
9443            .await?;
9444        match response {
9445            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9446            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9447        }
9448    }
9449    ///Get assignments for reports.
9450    pub async fn get_assignments(
9451        &self,
9452        params: crate::tools::ozone::report::get_assignments::Parameters,
9453    ) -> atrium_xrpc::Result<
9454        crate::tools::ozone::report::get_assignments::Output,
9455        crate::tools::ozone::report::get_assignments::Error,
9456    > {
9457        let response = self
9458            .xrpc
9459            .send_xrpc::<
9460                _,
9461                (),
9462                _,
9463                _,
9464            >(
9465                &atrium_xrpc::XrpcRequest {
9466                    method: http::Method::GET,
9467                    nsid: crate::tools::ozone::report::get_assignments::NSID.into(),
9468                    parameters: Some(params),
9469                    input: None,
9470                    encoding: None,
9471                },
9472            )
9473            .await?;
9474        match response {
9475            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9476            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9477        }
9478    }
9479    ///Get historical daily report statistics. Returns a paginated list of daily stat snapshots, newest first. Filter by queue, moderator, or report type.
9480    pub async fn get_historical_stats(
9481        &self,
9482        params: crate::tools::ozone::report::get_historical_stats::Parameters,
9483    ) -> atrium_xrpc::Result<
9484        crate::tools::ozone::report::get_historical_stats::Output,
9485        crate::tools::ozone::report::get_historical_stats::Error,
9486    > {
9487        let response = self
9488            .xrpc
9489            .send_xrpc::<
9490                _,
9491                (),
9492                _,
9493                _,
9494            >(
9495                &atrium_xrpc::XrpcRequest {
9496                    method: http::Method::GET,
9497                    nsid: crate::tools::ozone::report::get_historical_stats::NSID.into(),
9498                    parameters: Some(params),
9499                    input: None,
9500                    encoding: None,
9501                },
9502            )
9503            .await?;
9504        match response {
9505            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9506            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9507        }
9508    }
9509    ///Get the most recent report.
9510    pub async fn get_latest_report(
9511        &self,
9512        params: crate::tools::ozone::report::get_latest_report::Parameters,
9513    ) -> atrium_xrpc::Result<
9514        crate::tools::ozone::report::get_latest_report::Output,
9515        crate::tools::ozone::report::get_latest_report::Error,
9516    > {
9517        let response = self
9518            .xrpc
9519            .send_xrpc::<
9520                _,
9521                (),
9522                _,
9523                _,
9524            >(
9525                &atrium_xrpc::XrpcRequest {
9526                    method: http::Method::GET,
9527                    nsid: crate::tools::ozone::report::get_latest_report::NSID.into(),
9528                    parameters: Some(params),
9529                    input: None,
9530                    encoding: None,
9531                },
9532            )
9533            .await?;
9534        match response {
9535            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9536            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9537        }
9538    }
9539    ///Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.
9540    pub async fn get_live_stats(
9541        &self,
9542        params: crate::tools::ozone::report::get_live_stats::Parameters,
9543    ) -> atrium_xrpc::Result<
9544        crate::tools::ozone::report::get_live_stats::Output,
9545        crate::tools::ozone::report::get_live_stats::Error,
9546    > {
9547        let response = self
9548            .xrpc
9549            .send_xrpc::<
9550                _,
9551                (),
9552                _,
9553                _,
9554            >(
9555                &atrium_xrpc::XrpcRequest {
9556                    method: http::Method::GET,
9557                    nsid: crate::tools::ozone::report::get_live_stats::NSID.into(),
9558                    parameters: Some(params),
9559                    input: None,
9560                    encoding: None,
9561                },
9562            )
9563            .await?;
9564        match response {
9565            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9566            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9567        }
9568    }
9569    ///Get details about a single moderation report by ID.
9570    pub async fn get_report(
9571        &self,
9572        params: crate::tools::ozone::report::get_report::Parameters,
9573    ) -> atrium_xrpc::Result<
9574        crate::tools::ozone::report::get_report::Output,
9575        crate::tools::ozone::report::get_report::Error,
9576    > {
9577        let response = self
9578            .xrpc
9579            .send_xrpc::<
9580                _,
9581                (),
9582                _,
9583                _,
9584            >(
9585                &atrium_xrpc::XrpcRequest {
9586                    method: http::Method::GET,
9587                    nsid: crate::tools::ozone::report::get_report::NSID.into(),
9588                    parameters: Some(params),
9589                    input: None,
9590                    encoding: None,
9591                },
9592            )
9593            .await?;
9594        match response {
9595            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9596            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9597        }
9598    }
9599    ///List all activities for a report, sorted most-recent-first.
9600    pub async fn list_activities(
9601        &self,
9602        params: crate::tools::ozone::report::list_activities::Parameters,
9603    ) -> atrium_xrpc::Result<
9604        crate::tools::ozone::report::list_activities::Output,
9605        crate::tools::ozone::report::list_activities::Error,
9606    > {
9607        let response = self
9608            .xrpc
9609            .send_xrpc::<
9610                _,
9611                (),
9612                _,
9613                _,
9614            >(
9615                &atrium_xrpc::XrpcRequest {
9616                    method: http::Method::GET,
9617                    nsid: crate::tools::ozone::report::list_activities::NSID.into(),
9618                    parameters: Some(params),
9619                    input: None,
9620                    encoding: None,
9621                },
9622            )
9623            .await?;
9624        match response {
9625            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9626            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9627        }
9628    }
9629    ///Query report activities across all reports, ordered by createdAt. Used by downstream pollers; for per-report activity history use listActivities.
9630    pub async fn query_activities(
9631        &self,
9632        params: crate::tools::ozone::report::query_activities::Parameters,
9633    ) -> atrium_xrpc::Result<
9634        crate::tools::ozone::report::query_activities::Output,
9635        crate::tools::ozone::report::query_activities::Error,
9636    > {
9637        let response = self
9638            .xrpc
9639            .send_xrpc::<
9640                _,
9641                (),
9642                _,
9643                _,
9644            >(
9645                &atrium_xrpc::XrpcRequest {
9646                    method: http::Method::GET,
9647                    nsid: crate::tools::ozone::report::query_activities::NSID.into(),
9648                    parameters: Some(params),
9649                    input: None,
9650                    encoding: None,
9651                },
9652            )
9653            .await?;
9654        match response {
9655            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9656            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9657        }
9658    }
9659    ///View moderation reports. Reports are individual instances of content being reported, as opposed to subject statuses which aggregate reports at the subject level.
9660    pub async fn query_reports(
9661        &self,
9662        params: crate::tools::ozone::report::query_reports::Parameters,
9663    ) -> atrium_xrpc::Result<
9664        crate::tools::ozone::report::query_reports::Output,
9665        crate::tools::ozone::report::query_reports::Error,
9666    > {
9667        let response = self
9668            .xrpc
9669            .send_xrpc::<
9670                _,
9671                (),
9672                _,
9673                _,
9674            >(
9675                &atrium_xrpc::XrpcRequest {
9676                    method: http::Method::GET,
9677                    nsid: crate::tools::ozone::report::query_reports::NSID.into(),
9678                    parameters: Some(params),
9679                    input: None,
9680                    encoding: None,
9681                },
9682            )
9683            .await?;
9684        match response {
9685            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9686            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9687        }
9688    }
9689    ///Manually reassign a report to a different queue (or unassign it). Records a queueActivity entry on the report.
9690    pub async fn reassign_queue(
9691        &self,
9692        input: crate::tools::ozone::report::reassign_queue::Input,
9693    ) -> atrium_xrpc::Result<
9694        crate::tools::ozone::report::reassign_queue::Output,
9695        crate::tools::ozone::report::reassign_queue::Error,
9696    > {
9697        let response = self
9698            .xrpc
9699            .send_xrpc::<
9700                (),
9701                _,
9702                _,
9703                _,
9704            >(
9705                &atrium_xrpc::XrpcRequest {
9706                    method: http::Method::POST,
9707                    nsid: crate::tools::ozone::report::reassign_queue::NSID.into(),
9708                    parameters: None,
9709                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9710                    encoding: Some(String::from("application/json")),
9711                },
9712            )
9713            .await?;
9714        match response {
9715            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9716            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9717        }
9718    }
9719    ///Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.
9720    pub async fn refresh_stats(
9721        &self,
9722        input: crate::tools::ozone::report::refresh_stats::Input,
9723    ) -> atrium_xrpc::Result<
9724        crate::tools::ozone::report::refresh_stats::Output,
9725        crate::tools::ozone::report::refresh_stats::Error,
9726    > {
9727        let response = self
9728            .xrpc
9729            .send_xrpc::<
9730                (),
9731                _,
9732                _,
9733                _,
9734            >(
9735                &atrium_xrpc::XrpcRequest {
9736                    method: http::Method::POST,
9737                    nsid: crate::tools::ozone::report::refresh_stats::NSID.into(),
9738                    parameters: None,
9739                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9740                    encoding: Some(String::from("application/json")),
9741                },
9742            )
9743            .await?;
9744        match response {
9745            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9746            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9747        }
9748    }
9749    ///Remove report assignment.
9750    pub async fn unassign_moderator(
9751        &self,
9752        input: crate::tools::ozone::report::unassign_moderator::Input,
9753    ) -> atrium_xrpc::Result<
9754        crate::tools::ozone::report::unassign_moderator::Output,
9755        crate::tools::ozone::report::unassign_moderator::Error,
9756    > {
9757        let response = self
9758            .xrpc
9759            .send_xrpc::<
9760                (),
9761                _,
9762                _,
9763                _,
9764            >(
9765                &atrium_xrpc::XrpcRequest {
9766                    method: http::Method::POST,
9767                    nsid: crate::tools::ozone::report::unassign_moderator::NSID.into(),
9768                    parameters: None,
9769                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9770                    encoding: Some(String::from("application/json")),
9771                },
9772            )
9773            .await?;
9774        match response {
9775            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9776            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9777        }
9778    }
9779}
9780#[cfg(feature = "namespace-toolsozone")]
9781impl<T> tools::ozone::safelink::Service<T>
9782where
9783    T: atrium_xrpc::XrpcClient + Send + Sync,
9784{
9785    #[allow(unused_variables)]
9786    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
9787        Self {
9788            xrpc,
9789            _phantom: core::marker::PhantomData,
9790        }
9791    }
9792    ///Add a new URL safety rule
9793    pub async fn add_rule(
9794        &self,
9795        input: crate::tools::ozone::safelink::add_rule::Input,
9796    ) -> atrium_xrpc::Result<
9797        crate::tools::ozone::safelink::add_rule::Output,
9798        crate::tools::ozone::safelink::add_rule::Error,
9799    > {
9800        let response = self
9801            .xrpc
9802            .send_xrpc::<
9803                (),
9804                _,
9805                _,
9806                _,
9807            >(
9808                &atrium_xrpc::XrpcRequest {
9809                    method: http::Method::POST,
9810                    nsid: crate::tools::ozone::safelink::add_rule::NSID.into(),
9811                    parameters: None,
9812                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9813                    encoding: Some(String::from("application/json")),
9814                },
9815            )
9816            .await?;
9817        match response {
9818            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9819            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9820        }
9821    }
9822    ///Query URL safety audit events
9823    pub async fn query_events(
9824        &self,
9825        input: crate::tools::ozone::safelink::query_events::Input,
9826    ) -> atrium_xrpc::Result<
9827        crate::tools::ozone::safelink::query_events::Output,
9828        crate::tools::ozone::safelink::query_events::Error,
9829    > {
9830        let response = self
9831            .xrpc
9832            .send_xrpc::<
9833                (),
9834                _,
9835                _,
9836                _,
9837            >(
9838                &atrium_xrpc::XrpcRequest {
9839                    method: http::Method::POST,
9840                    nsid: crate::tools::ozone::safelink::query_events::NSID.into(),
9841                    parameters: None,
9842                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9843                    encoding: Some(String::from("application/json")),
9844                },
9845            )
9846            .await?;
9847        match response {
9848            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9849            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9850        }
9851    }
9852    ///Query URL safety rules
9853    pub async fn query_rules(
9854        &self,
9855        input: crate::tools::ozone::safelink::query_rules::Input,
9856    ) -> atrium_xrpc::Result<
9857        crate::tools::ozone::safelink::query_rules::Output,
9858        crate::tools::ozone::safelink::query_rules::Error,
9859    > {
9860        let response = self
9861            .xrpc
9862            .send_xrpc::<
9863                (),
9864                _,
9865                _,
9866                _,
9867            >(
9868                &atrium_xrpc::XrpcRequest {
9869                    method: http::Method::POST,
9870                    nsid: crate::tools::ozone::safelink::query_rules::NSID.into(),
9871                    parameters: None,
9872                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9873                    encoding: Some(String::from("application/json")),
9874                },
9875            )
9876            .await?;
9877        match response {
9878            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9879            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9880        }
9881    }
9882    ///Remove an existing URL safety rule
9883    pub async fn remove_rule(
9884        &self,
9885        input: crate::tools::ozone::safelink::remove_rule::Input,
9886    ) -> atrium_xrpc::Result<
9887        crate::tools::ozone::safelink::remove_rule::Output,
9888        crate::tools::ozone::safelink::remove_rule::Error,
9889    > {
9890        let response = self
9891            .xrpc
9892            .send_xrpc::<
9893                (),
9894                _,
9895                _,
9896                _,
9897            >(
9898                &atrium_xrpc::XrpcRequest {
9899                    method: http::Method::POST,
9900                    nsid: crate::tools::ozone::safelink::remove_rule::NSID.into(),
9901                    parameters: None,
9902                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9903                    encoding: Some(String::from("application/json")),
9904                },
9905            )
9906            .await?;
9907        match response {
9908            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9909            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9910        }
9911    }
9912    ///Update an existing URL safety rule
9913    pub async fn update_rule(
9914        &self,
9915        input: crate::tools::ozone::safelink::update_rule::Input,
9916    ) -> atrium_xrpc::Result<
9917        crate::tools::ozone::safelink::update_rule::Output,
9918        crate::tools::ozone::safelink::update_rule::Error,
9919    > {
9920        let response = self
9921            .xrpc
9922            .send_xrpc::<
9923                (),
9924                _,
9925                _,
9926                _,
9927            >(
9928                &atrium_xrpc::XrpcRequest {
9929                    method: http::Method::POST,
9930                    nsid: crate::tools::ozone::safelink::update_rule::NSID.into(),
9931                    parameters: None,
9932                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
9933                    encoding: Some(String::from("application/json")),
9934                },
9935            )
9936            .await?;
9937        match response {
9938            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9939            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9940        }
9941    }
9942}
9943#[cfg(feature = "namespace-toolsozone")]
9944impl<T> tools::ozone::server::Service<T>
9945where
9946    T: atrium_xrpc::XrpcClient + Send + Sync,
9947{
9948    #[allow(unused_variables)]
9949    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
9950        Self {
9951            xrpc,
9952            _phantom: core::marker::PhantomData,
9953        }
9954    }
9955    ///Get details about ozone's server configuration.
9956    pub async fn get_config(
9957        &self,
9958    ) -> atrium_xrpc::Result<
9959        crate::tools::ozone::server::get_config::Output,
9960        crate::tools::ozone::server::get_config::Error,
9961    > {
9962        let response = self
9963            .xrpc
9964            .send_xrpc::<
9965                (),
9966                (),
9967                _,
9968                _,
9969            >(
9970                &atrium_xrpc::XrpcRequest {
9971                    method: http::Method::GET,
9972                    nsid: crate::tools::ozone::server::get_config::NSID.into(),
9973                    parameters: None,
9974                    input: None,
9975                    encoding: None,
9976                },
9977            )
9978            .await?;
9979        match response {
9980            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
9981            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
9982        }
9983    }
9984}
9985#[cfg(feature = "namespace-toolsozone")]
9986impl<T> tools::ozone::set::Service<T>
9987where
9988    T: atrium_xrpc::XrpcClient + Send + Sync,
9989{
9990    #[allow(unused_variables)]
9991    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
9992        Self {
9993            xrpc,
9994            _phantom: core::marker::PhantomData,
9995        }
9996    }
9997    ///Add values to a specific set. Attempting to add values to a set that does not exist will result in an error.
9998    pub async fn add_values(
9999        &self,
10000        input: crate::tools::ozone::set::add_values::Input,
10001    ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::add_values::Error> {
10002        let response = self
10003            .xrpc
10004            .send_xrpc::<
10005                (),
10006                _,
10007                (),
10008                _,
10009            >(
10010                &atrium_xrpc::XrpcRequest {
10011                    method: http::Method::POST,
10012                    nsid: crate::tools::ozone::set::add_values::NSID.into(),
10013                    parameters: None,
10014                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10015                    encoding: Some(String::from("application/json")),
10016                },
10017            )
10018            .await?;
10019        match response {
10020            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
10021            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10022        }
10023    }
10024    ///Delete an entire set. Attempting to delete a set that does not exist will result in an error.
10025    pub async fn delete_set(
10026        &self,
10027        input: crate::tools::ozone::set::delete_set::Input,
10028    ) -> atrium_xrpc::Result<
10029        crate::tools::ozone::set::delete_set::Output,
10030        crate::tools::ozone::set::delete_set::Error,
10031    > {
10032        let response = self
10033            .xrpc
10034            .send_xrpc::<
10035                (),
10036                _,
10037                _,
10038                _,
10039            >(
10040                &atrium_xrpc::XrpcRequest {
10041                    method: http::Method::POST,
10042                    nsid: crate::tools::ozone::set::delete_set::NSID.into(),
10043                    parameters: None,
10044                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10045                    encoding: Some(String::from("application/json")),
10046                },
10047            )
10048            .await?;
10049        match response {
10050            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10051            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10052        }
10053    }
10054    ///Delete values from a specific set. Attempting to delete values that are not in the set will not result in an error
10055    pub async fn delete_values(
10056        &self,
10057        input: crate::tools::ozone::set::delete_values::Input,
10058    ) -> atrium_xrpc::Result<(), crate::tools::ozone::set::delete_values::Error> {
10059        let response = self
10060            .xrpc
10061            .send_xrpc::<
10062                (),
10063                _,
10064                (),
10065                _,
10066            >(
10067                &atrium_xrpc::XrpcRequest {
10068                    method: http::Method::POST,
10069                    nsid: crate::tools::ozone::set::delete_values::NSID.into(),
10070                    parameters: None,
10071                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10072                    encoding: Some(String::from("application/json")),
10073                },
10074            )
10075            .await?;
10076        match response {
10077            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
10078            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10079        }
10080    }
10081    ///Get a specific set and its values
10082    pub async fn get_values(
10083        &self,
10084        params: crate::tools::ozone::set::get_values::Parameters,
10085    ) -> atrium_xrpc::Result<
10086        crate::tools::ozone::set::get_values::Output,
10087        crate::tools::ozone::set::get_values::Error,
10088    > {
10089        let response = self
10090            .xrpc
10091            .send_xrpc::<
10092                _,
10093                (),
10094                _,
10095                _,
10096            >(
10097                &atrium_xrpc::XrpcRequest {
10098                    method: http::Method::GET,
10099                    nsid: crate::tools::ozone::set::get_values::NSID.into(),
10100                    parameters: Some(params),
10101                    input: None,
10102                    encoding: None,
10103                },
10104            )
10105            .await?;
10106        match response {
10107            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10108            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10109        }
10110    }
10111    ///Query available sets
10112    pub async fn query_sets(
10113        &self,
10114        params: crate::tools::ozone::set::query_sets::Parameters,
10115    ) -> atrium_xrpc::Result<
10116        crate::tools::ozone::set::query_sets::Output,
10117        crate::tools::ozone::set::query_sets::Error,
10118    > {
10119        let response = self
10120            .xrpc
10121            .send_xrpc::<
10122                _,
10123                (),
10124                _,
10125                _,
10126            >(
10127                &atrium_xrpc::XrpcRequest {
10128                    method: http::Method::GET,
10129                    nsid: crate::tools::ozone::set::query_sets::NSID.into(),
10130                    parameters: Some(params),
10131                    input: None,
10132                    encoding: None,
10133                },
10134            )
10135            .await?;
10136        match response {
10137            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10138            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10139        }
10140    }
10141    ///Create or update set metadata
10142    pub async fn upsert_set(
10143        &self,
10144        input: crate::tools::ozone::set::upsert_set::Input,
10145    ) -> atrium_xrpc::Result<
10146        crate::tools::ozone::set::upsert_set::Output,
10147        crate::tools::ozone::set::upsert_set::Error,
10148    > {
10149        let response = self
10150            .xrpc
10151            .send_xrpc::<
10152                (),
10153                _,
10154                _,
10155                _,
10156            >(
10157                &atrium_xrpc::XrpcRequest {
10158                    method: http::Method::POST,
10159                    nsid: crate::tools::ozone::set::upsert_set::NSID.into(),
10160                    parameters: None,
10161                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10162                    encoding: Some(String::from("application/json")),
10163                },
10164            )
10165            .await?;
10166        match response {
10167            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10168            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10169        }
10170    }
10171}
10172#[cfg(feature = "namespace-toolsozone")]
10173impl<T> tools::ozone::setting::Service<T>
10174where
10175    T: atrium_xrpc::XrpcClient + Send + Sync,
10176{
10177    #[allow(unused_variables)]
10178    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
10179        Self {
10180            xrpc,
10181            _phantom: core::marker::PhantomData,
10182        }
10183    }
10184    ///List settings with optional filtering
10185    pub async fn list_options(
10186        &self,
10187        params: crate::tools::ozone::setting::list_options::Parameters,
10188    ) -> atrium_xrpc::Result<
10189        crate::tools::ozone::setting::list_options::Output,
10190        crate::tools::ozone::setting::list_options::Error,
10191    > {
10192        let response = self
10193            .xrpc
10194            .send_xrpc::<
10195                _,
10196                (),
10197                _,
10198                _,
10199            >(
10200                &atrium_xrpc::XrpcRequest {
10201                    method: http::Method::GET,
10202                    nsid: crate::tools::ozone::setting::list_options::NSID.into(),
10203                    parameters: Some(params),
10204                    input: None,
10205                    encoding: None,
10206                },
10207            )
10208            .await?;
10209        match response {
10210            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10211            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10212        }
10213    }
10214    ///Delete settings by key
10215    pub async fn remove_options(
10216        &self,
10217        input: crate::tools::ozone::setting::remove_options::Input,
10218    ) -> atrium_xrpc::Result<
10219        crate::tools::ozone::setting::remove_options::Output,
10220        crate::tools::ozone::setting::remove_options::Error,
10221    > {
10222        let response = self
10223            .xrpc
10224            .send_xrpc::<
10225                (),
10226                _,
10227                _,
10228                _,
10229            >(
10230                &atrium_xrpc::XrpcRequest {
10231                    method: http::Method::POST,
10232                    nsid: crate::tools::ozone::setting::remove_options::NSID.into(),
10233                    parameters: None,
10234                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10235                    encoding: Some(String::from("application/json")),
10236                },
10237            )
10238            .await?;
10239        match response {
10240            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10241            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10242        }
10243    }
10244    ///Create or update setting option
10245    pub async fn upsert_option(
10246        &self,
10247        input: crate::tools::ozone::setting::upsert_option::Input,
10248    ) -> atrium_xrpc::Result<
10249        crate::tools::ozone::setting::upsert_option::Output,
10250        crate::tools::ozone::setting::upsert_option::Error,
10251    > {
10252        let response = self
10253            .xrpc
10254            .send_xrpc::<
10255                (),
10256                _,
10257                _,
10258                _,
10259            >(
10260                &atrium_xrpc::XrpcRequest {
10261                    method: http::Method::POST,
10262                    nsid: crate::tools::ozone::setting::upsert_option::NSID.into(),
10263                    parameters: None,
10264                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10265                    encoding: Some(String::from("application/json")),
10266                },
10267            )
10268            .await?;
10269        match response {
10270            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10271            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10272        }
10273    }
10274}
10275#[cfg(feature = "namespace-toolsozone")]
10276impl<T> tools::ozone::signature::Service<T>
10277where
10278    T: atrium_xrpc::XrpcClient + Send + Sync,
10279{
10280    #[allow(unused_variables)]
10281    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
10282        Self {
10283            xrpc,
10284            _phantom: core::marker::PhantomData,
10285        }
10286    }
10287    ///Find all correlated threat signatures between 2 or more accounts.
10288    pub async fn find_correlation(
10289        &self,
10290        params: crate::tools::ozone::signature::find_correlation::Parameters,
10291    ) -> atrium_xrpc::Result<
10292        crate::tools::ozone::signature::find_correlation::Output,
10293        crate::tools::ozone::signature::find_correlation::Error,
10294    > {
10295        let response = self
10296            .xrpc
10297            .send_xrpc::<
10298                _,
10299                (),
10300                _,
10301                _,
10302            >(
10303                &atrium_xrpc::XrpcRequest {
10304                    method: http::Method::GET,
10305                    nsid: crate::tools::ozone::signature::find_correlation::NSID.into(),
10306                    parameters: Some(params),
10307                    input: None,
10308                    encoding: None,
10309                },
10310            )
10311            .await?;
10312        match response {
10313            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10314            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10315        }
10316    }
10317    ///Get accounts that share some matching threat signatures with the root account.
10318    pub async fn find_related_accounts(
10319        &self,
10320        params: crate::tools::ozone::signature::find_related_accounts::Parameters,
10321    ) -> atrium_xrpc::Result<
10322        crate::tools::ozone::signature::find_related_accounts::Output,
10323        crate::tools::ozone::signature::find_related_accounts::Error,
10324    > {
10325        let response = self
10326            .xrpc
10327            .send_xrpc::<
10328                _,
10329                (),
10330                _,
10331                _,
10332            >(
10333                &atrium_xrpc::XrpcRequest {
10334                    method: http::Method::GET,
10335                    nsid: crate::tools::ozone::signature::find_related_accounts::NSID
10336                        .into(),
10337                    parameters: Some(params),
10338                    input: None,
10339                    encoding: None,
10340                },
10341            )
10342            .await?;
10343        match response {
10344            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10345            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10346        }
10347    }
10348    ///Search for accounts that match one or more threat signature values.
10349    pub async fn search_accounts(
10350        &self,
10351        params: crate::tools::ozone::signature::search_accounts::Parameters,
10352    ) -> atrium_xrpc::Result<
10353        crate::tools::ozone::signature::search_accounts::Output,
10354        crate::tools::ozone::signature::search_accounts::Error,
10355    > {
10356        let response = self
10357            .xrpc
10358            .send_xrpc::<
10359                _,
10360                (),
10361                _,
10362                _,
10363            >(
10364                &atrium_xrpc::XrpcRequest {
10365                    method: http::Method::GET,
10366                    nsid: crate::tools::ozone::signature::search_accounts::NSID.into(),
10367                    parameters: Some(params),
10368                    input: None,
10369                    encoding: None,
10370                },
10371            )
10372            .await?;
10373        match response {
10374            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10375            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10376        }
10377    }
10378}
10379#[cfg(feature = "namespace-toolsozone")]
10380impl<T> tools::ozone::team::Service<T>
10381where
10382    T: atrium_xrpc::XrpcClient + Send + Sync,
10383{
10384    #[allow(unused_variables)]
10385    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
10386        Self {
10387            xrpc,
10388            _phantom: core::marker::PhantomData,
10389        }
10390    }
10391    ///Add a member to the ozone team. Requires admin role.
10392    pub async fn add_member(
10393        &self,
10394        input: crate::tools::ozone::team::add_member::Input,
10395    ) -> atrium_xrpc::Result<
10396        crate::tools::ozone::team::add_member::Output,
10397        crate::tools::ozone::team::add_member::Error,
10398    > {
10399        let response = self
10400            .xrpc
10401            .send_xrpc::<
10402                (),
10403                _,
10404                _,
10405                _,
10406            >(
10407                &atrium_xrpc::XrpcRequest {
10408                    method: http::Method::POST,
10409                    nsid: crate::tools::ozone::team::add_member::NSID.into(),
10410                    parameters: None,
10411                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10412                    encoding: Some(String::from("application/json")),
10413                },
10414            )
10415            .await?;
10416        match response {
10417            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10418            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10419        }
10420    }
10421    ///Delete a member from ozone team. Requires admin role.
10422    pub async fn delete_member(
10423        &self,
10424        input: crate::tools::ozone::team::delete_member::Input,
10425    ) -> atrium_xrpc::Result<(), crate::tools::ozone::team::delete_member::Error> {
10426        let response = self
10427            .xrpc
10428            .send_xrpc::<
10429                (),
10430                _,
10431                (),
10432                _,
10433            >(
10434                &atrium_xrpc::XrpcRequest {
10435                    method: http::Method::POST,
10436                    nsid: crate::tools::ozone::team::delete_member::NSID.into(),
10437                    parameters: None,
10438                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10439                    encoding: Some(String::from("application/json")),
10440                },
10441            )
10442            .await?;
10443        match response {
10444            atrium_xrpc::OutputDataOrBytes::Bytes(_) => Ok(()),
10445            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10446        }
10447    }
10448    ///List all members with access to the ozone service.
10449    pub async fn list_members(
10450        &self,
10451        params: crate::tools::ozone::team::list_members::Parameters,
10452    ) -> atrium_xrpc::Result<
10453        crate::tools::ozone::team::list_members::Output,
10454        crate::tools::ozone::team::list_members::Error,
10455    > {
10456        let response = self
10457            .xrpc
10458            .send_xrpc::<
10459                _,
10460                (),
10461                _,
10462                _,
10463            >(
10464                &atrium_xrpc::XrpcRequest {
10465                    method: http::Method::GET,
10466                    nsid: crate::tools::ozone::team::list_members::NSID.into(),
10467                    parameters: Some(params),
10468                    input: None,
10469                    encoding: None,
10470                },
10471            )
10472            .await?;
10473        match response {
10474            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10475            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10476        }
10477    }
10478    ///Update a member in the ozone service. Requires admin role.
10479    pub async fn update_member(
10480        &self,
10481        input: crate::tools::ozone::team::update_member::Input,
10482    ) -> atrium_xrpc::Result<
10483        crate::tools::ozone::team::update_member::Output,
10484        crate::tools::ozone::team::update_member::Error,
10485    > {
10486        let response = self
10487            .xrpc
10488            .send_xrpc::<
10489                (),
10490                _,
10491                _,
10492                _,
10493            >(
10494                &atrium_xrpc::XrpcRequest {
10495                    method: http::Method::POST,
10496                    nsid: crate::tools::ozone::team::update_member::NSID.into(),
10497                    parameters: None,
10498                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10499                    encoding: Some(String::from("application/json")),
10500                },
10501            )
10502            .await?;
10503        match response {
10504            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10505            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10506        }
10507    }
10508}
10509#[cfg(feature = "namespace-toolsozone")]
10510impl<T> tools::ozone::verification::Service<T>
10511where
10512    T: atrium_xrpc::XrpcClient + Send + Sync,
10513{
10514    #[allow(unused_variables)]
10515    pub(crate) fn new(xrpc: std::sync::Arc<T>) -> Self {
10516        Self {
10517            xrpc,
10518            _phantom: core::marker::PhantomData,
10519        }
10520    }
10521    ///Grant verifications to multiple subjects. Allows batch processing of up to 100 verifications at once.
10522    pub async fn grant_verifications(
10523        &self,
10524        input: crate::tools::ozone::verification::grant_verifications::Input,
10525    ) -> atrium_xrpc::Result<
10526        crate::tools::ozone::verification::grant_verifications::Output,
10527        crate::tools::ozone::verification::grant_verifications::Error,
10528    > {
10529        let response = self
10530            .xrpc
10531            .send_xrpc::<
10532                (),
10533                _,
10534                _,
10535                _,
10536            >(
10537                &atrium_xrpc::XrpcRequest {
10538                    method: http::Method::POST,
10539                    nsid: crate::tools::ozone::verification::grant_verifications::NSID
10540                        .into(),
10541                    parameters: None,
10542                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10543                    encoding: Some(String::from("application/json")),
10544                },
10545            )
10546            .await?;
10547        match response {
10548            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10549            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10550        }
10551    }
10552    ///List verifications
10553    pub async fn list_verifications(
10554        &self,
10555        params: crate::tools::ozone::verification::list_verifications::Parameters,
10556    ) -> atrium_xrpc::Result<
10557        crate::tools::ozone::verification::list_verifications::Output,
10558        crate::tools::ozone::verification::list_verifications::Error,
10559    > {
10560        let response = self
10561            .xrpc
10562            .send_xrpc::<
10563                _,
10564                (),
10565                _,
10566                _,
10567            >(
10568                &atrium_xrpc::XrpcRequest {
10569                    method: http::Method::GET,
10570                    nsid: crate::tools::ozone::verification::list_verifications::NSID
10571                        .into(),
10572                    parameters: Some(params),
10573                    input: None,
10574                    encoding: None,
10575                },
10576            )
10577            .await?;
10578        match response {
10579            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10580            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10581        }
10582    }
10583    ///Revoke previously granted verifications in batches of up to 100.
10584    pub async fn revoke_verifications(
10585        &self,
10586        input: crate::tools::ozone::verification::revoke_verifications::Input,
10587    ) -> atrium_xrpc::Result<
10588        crate::tools::ozone::verification::revoke_verifications::Output,
10589        crate::tools::ozone::verification::revoke_verifications::Error,
10590    > {
10591        let response = self
10592            .xrpc
10593            .send_xrpc::<
10594                (),
10595                _,
10596                _,
10597                _,
10598            >(
10599                &atrium_xrpc::XrpcRequest {
10600                    method: http::Method::POST,
10601                    nsid: crate::tools::ozone::verification::revoke_verifications::NSID
10602                        .into(),
10603                    parameters: None,
10604                    input: Some(atrium_xrpc::InputDataOrBytes::Data(input)),
10605                    encoding: Some(String::from("application/json")),
10606                },
10607            )
10608            .await?;
10609        match response {
10610            atrium_xrpc::OutputDataOrBytes::Data(data) => Ok(data),
10611            _ => Err(atrium_xrpc::Error::UnexpectedResponseType),
10612        }
10613    }
10614}