// @generated by jacquard-lexicon. DO NOT EDIT. // // Lexicon: com.atproto.server.describeServer // // This file was automatically generated from Lexicon schemas. // Any manual changes will be overwritten on the next regeneration. #[jacquard_derive::lexicon] #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, Default )] #[serde(rename_all = "camelCase")] pub struct Contact<'a> { #[serde(skip_serializing_if = "std::option::Option::is_none")] #[serde(borrow)] pub email: std::option::Option>, } fn lexicon_doc_com_atproto_server_describeServer() -> ::jacquard_lexicon::lexicon::LexiconDoc< 'static, > { ::jacquard_lexicon::lexicon::LexiconDoc { lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1, id: ::jacquard_common::CowStr::new_static("com.atproto.server.describeServer"), revision: None, description: None, defs: { let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("contact"), ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject { description: None, required: None, nullable: None, properties: { #[allow(unused_mut)] let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("email"), ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { description: None, format: None, default: None, min_length: None, max_length: None, min_graphemes: None, max_graphemes: None, r#enum: None, r#const: None, known_values: None, }), ); map }, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("links"), ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject { description: None, required: None, nullable: None, properties: { #[allow(unused_mut)] let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static( "privacyPolicy", ), ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { description: None, format: Some( ::jacquard_lexicon::lexicon::LexStringFormat::Uri, ), default: None, min_length: None, max_length: None, min_graphemes: None, max_graphemes: None, r#enum: None, r#const: None, known_values: None, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static( "termsOfService", ), ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString { description: None, format: Some( ::jacquard_lexicon::lexicon::LexStringFormat::Uri, ), default: None, min_length: None, max_length: None, min_graphemes: None, max_graphemes: None, r#enum: None, r#const: None, known_values: None, }), ); map }, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("main"), ::jacquard_lexicon::lexicon::LexUserType::XrpcQuery(::jacquard_lexicon::lexicon::LexXrpcQuery { description: None, parameters: None, output: None, errors: None, }), ); map }, } } impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Contact<'a> { fn nsid() -> &'static str { "com.atproto.server.describeServer" } fn def_name() -> &'static str { "contact" } fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> { lexicon_doc_com_atproto_server_describeServer() } fn validate( &self, ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> { Ok(()) } } #[jacquard_derive::lexicon] #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic, Default )] #[serde(rename_all = "camelCase")] pub struct Links<'a> { #[serde(skip_serializing_if = "std::option::Option::is_none")] #[serde(borrow)] pub privacy_policy: std::option::Option>, #[serde(skip_serializing_if = "std::option::Option::is_none")] #[serde(borrow)] pub terms_of_service: std::option::Option>, } impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Links<'a> { fn nsid() -> &'static str { "com.atproto.server.describeServer" } fn def_name() -> &'static str { "links" } fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> { lexicon_doc_com_atproto_server_describeServer() } fn validate( &self, ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> { Ok(()) } } #[jacquard_derive::lexicon] #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic )] #[serde(rename_all = "camelCase")] pub struct DescribeServerOutput<'a> { /// List of domain suffixes that can be used in account handles. #[serde(borrow)] pub available_user_domains: Vec>, /// Contact information #[serde(skip_serializing_if = "std::option::Option::is_none")] #[serde(borrow)] pub contact: std::option::Option< crate::com_atproto::server::describe_server::Contact<'a>, >, #[serde(borrow)] pub did: jacquard_common::types::string::Did<'a>, /// If true, an invite code must be supplied to create an account on this instance. #[serde(skip_serializing_if = "std::option::Option::is_none")] pub invite_code_required: std::option::Option, /// URLs of service policy documents. #[serde(skip_serializing_if = "std::option::Option::is_none")] #[serde(borrow)] pub links: std::option::Option< crate::com_atproto::server::describe_server::Links<'a>, >, /// If true, a phone verification token must be supplied to create an account on this instance. #[serde(skip_serializing_if = "std::option::Option::is_none")] pub phone_verification_required: std::option::Option, } /// XRPC request marker type #[derive( Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize, jacquard_derive::IntoStatic )] pub struct DescribeServer; /// Response type for ///com.atproto.server.describeServer pub struct DescribeServerResponse; impl jacquard_common::xrpc::XrpcResp for DescribeServerResponse { const NSID: &'static str = "com.atproto.server.describeServer"; const ENCODING: &'static str = "application/json"; type Output<'de> = DescribeServerOutput<'de>; type Err<'de> = jacquard_common::xrpc::GenericError<'de>; } impl jacquard_common::xrpc::XrpcRequest for DescribeServer { const NSID: &'static str = "com.atproto.server.describeServer"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Response = DescribeServerResponse; } /// Endpoint type for ///com.atproto.server.describeServer pub struct DescribeServerRequest; impl jacquard_common::xrpc::XrpcEndpoint for DescribeServerRequest { const PATH: &'static str = "/xrpc/com.atproto.server.describeServer"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Request<'de> = DescribeServer; type Response = DescribeServerResponse; }