vapi_client/models/
template.rs1use serde::{Deserialize, Serialize};
12use utoipa::OpenApi;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, OpenApi)]
18pub struct Template {
19 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
20 pub details: Option<models::CreateToolTemplateDtoDetails>,
21 #[serde(rename = "providerDetails", skip_serializing_if = "Option::is_none")]
22 pub provider_details: Option<models::CreateToolTemplateDtoProviderDetails>,
23 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
24 pub metadata: Option<models::ToolTemplateMetadata>,
25 #[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
26 pub visibility: Option<Visibility>,
27 #[serde(rename = "type")]
28 pub r#type: Type,
29 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
31 pub name: Option<String>,
32 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
33 pub provider: Option<Provider>,
34 #[serde(rename = "id")]
36 pub id: String,
37 #[serde(rename = "orgId")]
39 pub org_id: String,
40 #[serde(rename = "createdAt")]
42 pub created_at: String,
43 #[serde(rename = "updatedAt")]
45 pub updated_at: String,
46}
47
48impl Template {
49 pub fn new(
50 r#type: Type,
51 id: String,
52 org_id: String,
53 created_at: String,
54 updated_at: String,
55 ) -> Template {
56 Template {
57 details: None,
58 provider_details: None,
59 metadata: None,
60 visibility: None,
61 r#type,
62 name: None,
63 provider: None,
64 id,
65 org_id,
66 created_at,
67 updated_at,
68 }
69 }
70}
71#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
73pub enum Visibility {
74 #[serde(rename = "public")]
75 Public,
76 #[serde(rename = "private")]
77 Private,
78}
79
80impl Default for Visibility {
81 fn default() -> Visibility {
82 Self::Public
83 }
84}
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
87pub enum Type {
88 #[serde(rename = "tool")]
89 Tool,
90}
91
92impl Default for Type {
93 fn default() -> Type {
94 Self::Tool
95 }
96}
97#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
99pub enum Provider {
100 #[serde(rename = "make")]
101 Make,
102 #[serde(rename = "gohighlevel")]
103 Gohighlevel,
104 #[serde(rename = "function")]
105 Function,
106}
107
108impl Default for Provider {
109 fn default() -> Provider {
110 Self::Make
111 }
112}