jacquard_api/tools_ozone/communication/
create_template.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.communication.createTemplate
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    bon::Builder
17)]
18#[serde(rename_all = "camelCase")]
19#[builder(start_fn = new)]
20pub struct CreateTemplate<'a> {
21    ///Content of the template, markdown supported, can contain variable placeholders.
22    #[serde(borrow)]
23    #[builder(into)]
24    pub content_markdown: jacquard_common::CowStr<'a>,
25    ///DID of the user who is creating the template.
26    #[serde(skip_serializing_if = "std::option::Option::is_none")]
27    #[serde(borrow)]
28    pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
29    ///Message language.
30    #[serde(skip_serializing_if = "std::option::Option::is_none")]
31    pub lang: std::option::Option<jacquard_common::types::string::Language>,
32    ///Name of the template.
33    #[serde(borrow)]
34    #[builder(into)]
35    pub name: jacquard_common::CowStr<'a>,
36    ///Subject of the message, used in emails.
37    #[serde(borrow)]
38    #[builder(into)]
39    pub subject: jacquard_common::CowStr<'a>,
40    #[serde(flatten)]
41    #[serde(borrow)]
42    #[builder(default)]
43    pub extra_data: ::std::collections::BTreeMap<
44        ::jacquard_common::smol_str::SmolStr,
45        ::jacquard_common::types::value::Data<'a>,
46    >,
47}
48
49impl jacquard_common::IntoStatic for CreateTemplate<'_> {
50    type Output = CreateTemplate<'static>;
51    fn into_static(self) -> Self::Output {
52        CreateTemplate {
53            content_markdown: self.content_markdown.into_static(),
54            created_by: self.created_by.into_static(),
55            lang: self.lang.into_static(),
56            name: self.name.into_static(),
57            subject: self.subject.into_static(),
58            extra_data: self.extra_data.into_static(),
59        }
60    }
61}
62
63#[jacquard_derive::lexicon]
64#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
65#[serde(rename_all = "camelCase")]
66pub struct CreateTemplateOutput<'a> {
67    #[serde(flatten)]
68    #[serde(borrow)]
69    pub value: crate::tools_ozone::communication::TemplateView<'a>,
70}
71
72impl jacquard_common::IntoStatic for CreateTemplateOutput<'_> {
73    type Output = CreateTemplateOutput<'static>;
74    fn into_static(self) -> Self::Output {
75        CreateTemplateOutput {
76            value: self.value.into_static(),
77            extra_data: self.extra_data.into_static(),
78        }
79    }
80}
81
82#[jacquard_derive::open_union]
83#[derive(
84    serde::Serialize,
85    serde::Deserialize,
86    Debug,
87    Clone,
88    PartialEq,
89    Eq,
90    thiserror::Error,
91    miette::Diagnostic
92)]
93#[serde(tag = "error", content = "message")]
94#[serde(bound(deserialize = "'de: 'a"))]
95pub enum CreateTemplateError<'a> {
96    #[serde(rename = "DuplicateTemplateName")]
97    DuplicateTemplateName(std::option::Option<String>),
98}
99
100impl std::fmt::Display for CreateTemplateError<'_> {
101    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
102        match self {
103            Self::DuplicateTemplateName(msg) => {
104                write!(f, "DuplicateTemplateName")?;
105                if let Some(msg) = msg {
106                    write!(f, ": {}", msg)?;
107                }
108                Ok(())
109            }
110            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
111        }
112    }
113}
114
115impl jacquard_common::IntoStatic for CreateTemplateError<'_> {
116    type Output = CreateTemplateError<'static>;
117    fn into_static(self) -> Self::Output {
118        match self {
119            CreateTemplateError::DuplicateTemplateName(v) => {
120                CreateTemplateError::DuplicateTemplateName(v.into_static())
121            }
122            CreateTemplateError::Unknown(v) => {
123                CreateTemplateError::Unknown(v.into_static())
124            }
125        }
126    }
127}
128
129impl jacquard_common::types::xrpc::XrpcRequest for CreateTemplate<'_> {
130    const NSID: &'static str = "tools.ozone.communication.createTemplate";
131    const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Procedure(
132        "application/json",
133    );
134    const OUTPUT_ENCODING: &'static str = "application/json";
135    type Output<'de> = CreateTemplateOutput<'de>;
136    type Err<'de> = CreateTemplateError<'de>;
137}