jacquard_api/com_atproto/server/
create_app_password.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.server.createAppPassword
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[jacquard_derive::lexicon]
9#[derive(
10    serde::Serialize,
11    serde::Deserialize,
12    Debug,
13    Clone,
14    PartialEq,
15    Eq,
16    jacquard_derive::IntoStatic
17)]
18#[serde(rename_all = "camelCase")]
19pub struct AppPassword<'a> {
20    pub created_at: jacquard_common::types::string::Datetime,
21    #[serde(borrow)]
22    pub name: jacquard_common::CowStr<'a>,
23    #[serde(borrow)]
24    pub password: jacquard_common::CowStr<'a>,
25    #[serde(skip_serializing_if = "std::option::Option::is_none")]
26    pub privileged: std::option::Option<bool>,
27}
28
29#[jacquard_derive::lexicon]
30#[derive(
31    serde::Serialize,
32    serde::Deserialize,
33    Debug,
34    Clone,
35    PartialEq,
36    Eq,
37    bon::Builder,
38    jacquard_derive::IntoStatic
39)]
40#[serde(rename_all = "camelCase")]
41#[builder(start_fn = new)]
42pub struct CreateAppPassword<'a> {
43    ///A short name for the App Password, to help distinguish them.
44    #[serde(borrow)]
45    #[builder(into)]
46    pub name: jacquard_common::CowStr<'a>,
47    ///If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients.
48    #[serde(skip_serializing_if = "std::option::Option::is_none")]
49    pub privileged: std::option::Option<bool>,
50    #[serde(flatten)]
51    #[serde(borrow)]
52    #[builder(default)]
53    pub extra_data: ::std::collections::BTreeMap<
54        ::jacquard_common::smol_str::SmolStr,
55        ::jacquard_common::types::value::Data<'a>,
56    >,
57}
58
59#[jacquard_derive::lexicon]
60#[derive(
61    serde::Serialize,
62    serde::Deserialize,
63    Debug,
64    Clone,
65    PartialEq,
66    Eq,
67    jacquard_derive::IntoStatic
68)]
69#[serde(rename_all = "camelCase")]
70pub struct CreateAppPasswordOutput<'a> {
71    #[serde(flatten)]
72    #[serde(borrow)]
73    pub value: jacquard_common::types::value::Data<'a>,
74}
75
76#[jacquard_derive::open_union]
77#[derive(
78    serde::Serialize,
79    serde::Deserialize,
80    Debug,
81    Clone,
82    PartialEq,
83    Eq,
84    thiserror::Error,
85    miette::Diagnostic,
86    jacquard_derive::IntoStatic
87)]
88#[serde(tag = "error", content = "message")]
89#[serde(bound(deserialize = "'de: 'a"))]
90pub enum CreateAppPasswordError<'a> {
91    #[serde(rename = "AccountTakedown")]
92    AccountTakedown(std::option::Option<String>),
93}
94
95impl std::fmt::Display for CreateAppPasswordError<'_> {
96    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
97        match self {
98            Self::AccountTakedown(msg) => {
99                write!(f, "AccountTakedown")?;
100                if let Some(msg) = msg {
101                    write!(f, ": {}", msg)?;
102                }
103                Ok(())
104            }
105            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
106        }
107    }
108}
109
110///Response type for
111///com.atproto.server.createAppPassword
112pub struct CreateAppPasswordResponse;
113impl jacquard_common::xrpc::XrpcResp for CreateAppPasswordResponse {
114    const NSID: &'static str = "com.atproto.server.createAppPassword";
115    const ENCODING: &'static str = "application/json";
116    type Output<'de> = CreateAppPasswordOutput<'de>;
117    type Err<'de> = CreateAppPasswordError<'de>;
118}
119
120impl<'a> jacquard_common::xrpc::XrpcRequest for CreateAppPassword<'a> {
121    const NSID: &'static str = "com.atproto.server.createAppPassword";
122    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
123        "application/json",
124    );
125    type Response = CreateAppPasswordResponse;
126}
127
128///Endpoint type for
129///com.atproto.server.createAppPassword
130pub struct CreateAppPasswordRequest;
131impl jacquard_common::xrpc::XrpcEndpoint for CreateAppPasswordRequest {
132    const PATH: &'static str = "/xrpc/com.atproto.server.createAppPassword";
133    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
134        "application/json",
135    );
136    type Request<'de> = CreateAppPassword<'de>;
137    type Response = CreateAppPasswordResponse;
138}