vapi_client/models/
create_azure_open_ai_credential_dto.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
18pub struct CreateAzureOpenAiCredentialDto {
19    #[serde(rename = "provider")]
20    pub provider: Provider,
21    #[serde(rename = "region")]
22    pub region: Region,
23    #[serde(rename = "models")]
24    pub models: Vec<Models>,
25    /// This is not returned in the API.
26    #[serde(rename = "openAIKey")]
27    pub open_ai_key: String,
28    /// This is not returned in the API.
29    #[serde(
30        rename = "ocpApimSubscriptionKey",
31        skip_serializing_if = "Option::is_none"
32    )]
33    pub ocp_apim_subscription_key: Option<String>,
34    #[serde(rename = "openAIEndpoint")]
35    pub open_ai_endpoint: String,
36    /// This is the name of credential. This is just for your reference.
37    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
38    pub name: Option<String>,
39}
40
41impl CreateAzureOpenAiCredentialDto {
42    pub fn new(
43        provider: Provider,
44        region: Region,
45        models: Vec<Models>,
46        open_ai_key: String,
47        open_ai_endpoint: String,
48    ) -> CreateAzureOpenAiCredentialDto {
49        CreateAzureOpenAiCredentialDto {
50            provider,
51            region,
52            models,
53            open_ai_key,
54            ocp_apim_subscription_key: None,
55            open_ai_endpoint,
56            name: None,
57        }
58    }
59}
60///
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
62pub enum Provider {
63    #[serde(rename = "azure-openai")]
64    AzureOpenai,
65}
66
67impl Default for Provider {
68    fn default() -> Provider {
69        Self::AzureOpenai
70    }
71}
72///
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
74pub enum Region {
75    #[serde(rename = "australia")]
76    Australia,
77    #[serde(rename = "canadaeast")]
78    Canadaeast,
79    #[serde(rename = "canadacentral")]
80    Canadacentral,
81    #[serde(rename = "eastus2")]
82    Eastus2,
83    #[serde(rename = "eastus")]
84    Eastus,
85    #[serde(rename = "france")]
86    France,
87    #[serde(rename = "india")]
88    India,
89    #[serde(rename = "japaneast")]
90    Japaneast,
91    #[serde(rename = "japanwest")]
92    Japanwest,
93    #[serde(rename = "uaenorth")]
94    Uaenorth,
95    #[serde(rename = "northcentralus")]
96    Northcentralus,
97    #[serde(rename = "norway")]
98    Norway,
99    #[serde(rename = "southcentralus")]
100    Southcentralus,
101    #[serde(rename = "swedencentral")]
102    Swedencentral,
103    #[serde(rename = "switzerland")]
104    Switzerland,
105    #[serde(rename = "uk")]
106    Uk,
107    #[serde(rename = "westus")]
108    Westus,
109    #[serde(rename = "westus3")]
110    Westus3,
111}
112
113impl Default for Region {
114    fn default() -> Region {
115        Self::Australia
116    }
117}
118///
119#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
120pub enum Models {
121    #[serde(rename = "gpt-4o-2024-08-06")]
122    Gpt4o20240806,
123    #[serde(rename = "gpt-4o-mini-2024-07-18")]
124    Gpt4oMini20240718,
125    #[serde(rename = "gpt-4o-2024-05-13")]
126    Gpt4o20240513,
127    #[serde(rename = "gpt-4-turbo-2024-04-09")]
128    Gpt4Turbo20240409,
129    #[serde(rename = "gpt-4-0125-preview")]
130    Gpt40125Preview,
131    #[serde(rename = "gpt-4-1106-preview")]
132    Gpt41106Preview,
133    #[serde(rename = "gpt-4-0613")]
134    Gpt40613,
135    #[serde(rename = "gpt-35-turbo-0125")]
136    Gpt35Turbo0125,
137    #[serde(rename = "gpt-35-turbo-1106")]
138    Gpt35Turbo1106,
139}
140
141impl Default for Models {
142    fn default() -> Models {
143        Self::Gpt4o20240806
144    }
145}