1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateAzureOpenAiCredentialDto {
16 #[serde(rename = "provider")]
17 pub provider: ProviderTrue,
18 #[serde(rename = "region")]
19 pub region: RegionTrue,
20 #[serde(rename = "models")]
21 pub models: Vec<ModelsTrue>,
22 #[serde(rename = "openAIKey")]
24 pub open_ai_key: String,
25 #[serde(
27 rename = "ocpApimSubscriptionKey",
28 skip_serializing_if = "Option::is_none"
29 )]
30 pub ocp_apim_subscription_key: Option<String>,
31 #[serde(rename = "openAIEndpoint")]
32 pub open_ai_endpoint: String,
33 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
35 pub name: Option<String>,
36}
37
38impl CreateAzureOpenAiCredentialDto {
39 pub fn new(
40 provider: ProviderTrue,
41 region: RegionTrue,
42 models: Vec<ModelsTrue>,
43 open_ai_key: String,
44 open_ai_endpoint: String,
45 ) -> CreateAzureOpenAiCredentialDto {
46 CreateAzureOpenAiCredentialDto {
47 provider,
48 region,
49 models,
50 open_ai_key,
51 ocp_apim_subscription_key: None,
52 open_ai_endpoint,
53 name: None,
54 }
55 }
56}
57#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
59pub enum ProviderTrue {
60 #[serde(rename = "azure-openai")]
61 AzureOpenai,
62}
63
64impl Default for ProviderTrue {
65 fn default() -> ProviderTrue {
66 Self::AzureOpenai
67 }
68}
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
71pub enum RegionTrue {
72 #[serde(rename = "australia")]
73 Australia,
74 #[serde(rename = "canadaeast")]
75 Canadaeast,
76 #[serde(rename = "canadacentral")]
77 Canadacentral,
78 #[serde(rename = "eastus2")]
79 Eastus2,
80 #[serde(rename = "eastus")]
81 Eastus,
82 #[serde(rename = "france")]
83 France,
84 #[serde(rename = "india")]
85 India,
86 #[serde(rename = "japaneast")]
87 Japaneast,
88 #[serde(rename = "japanwest")]
89 Japanwest,
90 #[serde(rename = "uaenorth")]
91 Uaenorth,
92 #[serde(rename = "northcentralus")]
93 Northcentralus,
94 #[serde(rename = "norway")]
95 Norway,
96 #[serde(rename = "southcentralus")]
97 Southcentralus,
98 #[serde(rename = "swedencentral")]
99 Swedencentral,
100 #[serde(rename = "switzerland")]
101 Switzerland,
102 #[serde(rename = "uk")]
103 Uk,
104 #[serde(rename = "westus")]
105 Westus,
106 #[serde(rename = "westus3")]
107 Westus3,
108}
109
110impl Default for RegionTrue {
111 fn default() -> RegionTrue {
112 Self::Australia
113 }
114}
115#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
117pub enum ModelsTrue {
118 #[serde(rename = "gpt-4.1-2025-04-14")]
119 Gpt4Period120250414,
120 #[serde(rename = "gpt-4.1-mini-2025-04-14")]
121 Gpt4Period1Mini20250414,
122 #[serde(rename = "gpt-4.1-nano-2025-04-14")]
123 Gpt4Period1Nano20250414,
124 #[serde(rename = "gpt-4o-2024-11-20")]
125 Gpt4o20241120,
126 #[serde(rename = "gpt-4o-2024-08-06")]
127 Gpt4o20240806,
128 #[serde(rename = "gpt-4o-2024-05-13")]
129 Gpt4o20240513,
130 #[serde(rename = "gpt-4o-mini-2024-07-18")]
131 Gpt4oMini20240718,
132 #[serde(rename = "gpt-4-turbo-2024-04-09")]
133 Gpt4Turbo20240409,
134 #[serde(rename = "gpt-4-0125-preview")]
135 Gpt40125Preview,
136 #[serde(rename = "gpt-4-1106-preview")]
137 Gpt41106Preview,
138 #[serde(rename = "gpt-4-0613")]
139 Gpt40613,
140 #[serde(rename = "gpt-35-turbo-0125")]
141 Gpt35Turbo0125,
142 #[serde(rename = "gpt-35-turbo-1106")]
143 Gpt35Turbo1106,
144}
145
146impl Default for ModelsTrue {
147 fn default() -> ModelsTrue {
148 Self::Gpt4Period120250414
149 }
150}