openai-client-base 0.8.1

Auto-generated Rust client for the OpenAI API
/*
 * OpenAI API
 *
 * The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
 *
 * The version of the OpenAPI document: 2.3.0
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ChatModel {
    #[serde(rename = "gpt-5.1")]
    Gpt51,
    #[serde(rename = "gpt-5.1-2025-11-13")]
    Gpt5120251113,
    #[serde(rename = "gpt-5.1-codex")]
    Gpt51Codex,
    #[serde(rename = "gpt-5.1-mini")]
    Gpt51Mini,
    #[serde(rename = "gpt-5.1-chat-latest")]
    Gpt51ChatLatest,
    #[serde(rename = "gpt-5")]
    Gpt5,
    #[serde(rename = "gpt-5-mini")]
    Gpt5Mini,
    #[serde(rename = "gpt-5-nano")]
    Gpt5Nano,
    #[serde(rename = "gpt-5-2025-08-07")]
    Gpt520250807,
    #[serde(rename = "gpt-5-mini-2025-08-07")]
    Gpt5Mini20250807,
    #[serde(rename = "gpt-5-nano-2025-08-07")]
    Gpt5Nano20250807,
    #[serde(rename = "gpt-5-chat-latest")]
    Gpt5ChatLatest,
    #[serde(rename = "gpt-4.1")]
    Gpt41,
    #[serde(rename = "gpt-4.1-mini")]
    Gpt41Mini,
    #[serde(rename = "gpt-4.1-nano")]
    Gpt41Nano,
    #[serde(rename = "gpt-4.1-2025-04-14")]
    Gpt4120250414,
    #[serde(rename = "gpt-4.1-mini-2025-04-14")]
    Gpt41Mini20250414,
    #[serde(rename = "gpt-4.1-nano-2025-04-14")]
    Gpt41Nano20250414,
    #[serde(rename = "o4-mini")]
    O4Mini,
    #[serde(rename = "o4-mini-2025-04-16")]
    O4Mini20250416,
    #[serde(rename = "o3")]
    O3,
    #[serde(rename = "o3-2025-04-16")]
    O320250416,
    #[serde(rename = "o3-mini")]
    O3Mini,
    #[serde(rename = "o3-mini-2025-01-31")]
    O3Mini20250131,
    #[serde(rename = "o1")]
    O1,
    #[serde(rename = "o1-2024-12-17")]
    O120241217,
    #[serde(rename = "o1-preview")]
    O1Preview,
    #[serde(rename = "o1-preview-2024-09-12")]
    O1Preview20240912,
    #[serde(rename = "o1-mini")]
    O1Mini,
    #[serde(rename = "o1-mini-2024-09-12")]
    O1Mini20240912,
    #[serde(rename = "gpt-4o")]
    Gpt4o,
    #[serde(rename = "gpt-4o-2024-11-20")]
    Gpt4o20241120,
    #[serde(rename = "gpt-4o-2024-08-06")]
    Gpt4o20240806,
    #[serde(rename = "gpt-4o-2024-05-13")]
    Gpt4o20240513,
    #[serde(rename = "gpt-4o-audio-preview")]
    Gpt4oAudioPreview,
    #[serde(rename = "gpt-4o-audio-preview-2024-10-01")]
    Gpt4oAudioPreview20241001,
    #[serde(rename = "gpt-4o-audio-preview-2024-12-17")]
    Gpt4oAudioPreview20241217,
    #[serde(rename = "gpt-4o-audio-preview-2025-06-03")]
    Gpt4oAudioPreview20250603,
    #[serde(rename = "gpt-4o-mini-audio-preview")]
    Gpt4oMiniAudioPreview,
    #[serde(rename = "gpt-4o-mini-audio-preview-2024-12-17")]
    Gpt4oMiniAudioPreview20241217,
    #[serde(rename = "gpt-4o-search-preview")]
    Gpt4oSearchPreview,
    #[serde(rename = "gpt-4o-mini-search-preview")]
    Gpt4oMiniSearchPreview,
    #[serde(rename = "gpt-4o-search-preview-2025-03-11")]
    Gpt4oSearchPreview20250311,
    #[serde(rename = "gpt-4o-mini-search-preview-2025-03-11")]
    Gpt4oMiniSearchPreview20250311,
    #[serde(rename = "chatgpt-4o-latest")]
    Chatgpt4oLatest,
    #[serde(rename = "codex-mini-latest")]
    CodexMiniLatest,
    #[serde(rename = "gpt-4o-mini")]
    Gpt4oMini,
    #[serde(rename = "gpt-4o-mini-2024-07-18")]
    Gpt4oMini20240718,
    #[serde(rename = "gpt-4-turbo")]
    Gpt4Turbo,
    #[serde(rename = "gpt-4-turbo-2024-04-09")]
    Gpt4Turbo20240409,
    #[serde(rename = "gpt-4-0125-preview")]
    Gpt40125Preview,
    #[serde(rename = "gpt-4-turbo-preview")]
    Gpt4TurboPreview,
    #[serde(rename = "gpt-4-1106-preview")]
    Gpt41106Preview,
    #[serde(rename = "gpt-4-vision-preview")]
    Gpt4VisionPreview,
    #[serde(rename = "gpt-4")]
    Gpt4,
    #[serde(rename = "gpt-4-0314")]
    Gpt40314,
    #[serde(rename = "gpt-4-0613")]
    Gpt40613,
    #[serde(rename = "gpt-4-32k")]
    Gpt432k,
    #[serde(rename = "gpt-4-32k-0314")]
    Gpt432k0314,
    #[serde(rename = "gpt-4-32k-0613")]
    Gpt432k0613,
    #[serde(rename = "gpt-3.5-turbo")]
    Gpt35Turbo,
    #[serde(rename = "gpt-3.5-turbo-16k")]
    Gpt35Turbo16k,
    #[serde(rename = "gpt-3.5-turbo-0301")]
    Gpt35Turbo0301,
    #[serde(rename = "gpt-3.5-turbo-0613")]
    Gpt35Turbo0613,
    #[serde(rename = "gpt-3.5-turbo-1106")]
    Gpt35Turbo1106,
    #[serde(rename = "gpt-3.5-turbo-0125")]
    Gpt35Turbo0125,
    #[serde(rename = "gpt-3.5-turbo-16k-0613")]
    Gpt35Turbo16k0613,
}

impl std::fmt::Display for ChatModel {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Gpt51 => write!(f, "gpt-5.1"),
            Self::Gpt5120251113 => write!(f, "gpt-5.1-2025-11-13"),
            Self::Gpt51Codex => write!(f, "gpt-5.1-codex"),
            Self::Gpt51Mini => write!(f, "gpt-5.1-mini"),
            Self::Gpt51ChatLatest => write!(f, "gpt-5.1-chat-latest"),
            Self::Gpt5 => write!(f, "gpt-5"),
            Self::Gpt5Mini => write!(f, "gpt-5-mini"),
            Self::Gpt5Nano => write!(f, "gpt-5-nano"),
            Self::Gpt520250807 => write!(f, "gpt-5-2025-08-07"),
            Self::Gpt5Mini20250807 => write!(f, "gpt-5-mini-2025-08-07"),
            Self::Gpt5Nano20250807 => write!(f, "gpt-5-nano-2025-08-07"),
            Self::Gpt5ChatLatest => write!(f, "gpt-5-chat-latest"),
            Self::Gpt41 => write!(f, "gpt-4.1"),
            Self::Gpt41Mini => write!(f, "gpt-4.1-mini"),
            Self::Gpt41Nano => write!(f, "gpt-4.1-nano"),
            Self::Gpt4120250414 => write!(f, "gpt-4.1-2025-04-14"),
            Self::Gpt41Mini20250414 => write!(f, "gpt-4.1-mini-2025-04-14"),
            Self::Gpt41Nano20250414 => write!(f, "gpt-4.1-nano-2025-04-14"),
            Self::O4Mini => write!(f, "o4-mini"),
            Self::O4Mini20250416 => write!(f, "o4-mini-2025-04-16"),
            Self::O3 => write!(f, "o3"),
            Self::O320250416 => write!(f, "o3-2025-04-16"),
            Self::O3Mini => write!(f, "o3-mini"),
            Self::O3Mini20250131 => write!(f, "o3-mini-2025-01-31"),
            Self::O1 => write!(f, "o1"),
            Self::O120241217 => write!(f, "o1-2024-12-17"),
            Self::O1Preview => write!(f, "o1-preview"),
            Self::O1Preview20240912 => write!(f, "o1-preview-2024-09-12"),
            Self::O1Mini => write!(f, "o1-mini"),
            Self::O1Mini20240912 => write!(f, "o1-mini-2024-09-12"),
            Self::Gpt4o => write!(f, "gpt-4o"),
            Self::Gpt4o20241120 => write!(f, "gpt-4o-2024-11-20"),
            Self::Gpt4o20240806 => write!(f, "gpt-4o-2024-08-06"),
            Self::Gpt4o20240513 => write!(f, "gpt-4o-2024-05-13"),
            Self::Gpt4oAudioPreview => write!(f, "gpt-4o-audio-preview"),
            Self::Gpt4oAudioPreview20241001 => write!(f, "gpt-4o-audio-preview-2024-10-01"),
            Self::Gpt4oAudioPreview20241217 => write!(f, "gpt-4o-audio-preview-2024-12-17"),
            Self::Gpt4oAudioPreview20250603 => write!(f, "gpt-4o-audio-preview-2025-06-03"),
            Self::Gpt4oMiniAudioPreview => write!(f, "gpt-4o-mini-audio-preview"),
            Self::Gpt4oMiniAudioPreview20241217 => {
                write!(f, "gpt-4o-mini-audio-preview-2024-12-17")
            }
            Self::Gpt4oSearchPreview => write!(f, "gpt-4o-search-preview"),
            Self::Gpt4oMiniSearchPreview => write!(f, "gpt-4o-mini-search-preview"),
            Self::Gpt4oSearchPreview20250311 => write!(f, "gpt-4o-search-preview-2025-03-11"),
            Self::Gpt4oMiniSearchPreview20250311 => {
                write!(f, "gpt-4o-mini-search-preview-2025-03-11")
            }
            Self::Chatgpt4oLatest => write!(f, "chatgpt-4o-latest"),
            Self::CodexMiniLatest => write!(f, "codex-mini-latest"),
            Self::Gpt4oMini => write!(f, "gpt-4o-mini"),
            Self::Gpt4oMini20240718 => write!(f, "gpt-4o-mini-2024-07-18"),
            Self::Gpt4Turbo => write!(f, "gpt-4-turbo"),
            Self::Gpt4Turbo20240409 => write!(f, "gpt-4-turbo-2024-04-09"),
            Self::Gpt40125Preview => write!(f, "gpt-4-0125-preview"),
            Self::Gpt4TurboPreview => write!(f, "gpt-4-turbo-preview"),
            Self::Gpt41106Preview => write!(f, "gpt-4-1106-preview"),
            Self::Gpt4VisionPreview => write!(f, "gpt-4-vision-preview"),
            Self::Gpt4 => write!(f, "gpt-4"),
            Self::Gpt40314 => write!(f, "gpt-4-0314"),
            Self::Gpt40613 => write!(f, "gpt-4-0613"),
            Self::Gpt432k => write!(f, "gpt-4-32k"),
            Self::Gpt432k0314 => write!(f, "gpt-4-32k-0314"),
            Self::Gpt432k0613 => write!(f, "gpt-4-32k-0613"),
            Self::Gpt35Turbo => write!(f, "gpt-3.5-turbo"),
            Self::Gpt35Turbo16k => write!(f, "gpt-3.5-turbo-16k"),
            Self::Gpt35Turbo0301 => write!(f, "gpt-3.5-turbo-0301"),
            Self::Gpt35Turbo0613 => write!(f, "gpt-3.5-turbo-0613"),
            Self::Gpt35Turbo1106 => write!(f, "gpt-3.5-turbo-1106"),
            Self::Gpt35Turbo0125 => write!(f, "gpt-3.5-turbo-0125"),
            Self::Gpt35Turbo16k0613 => write!(f, "gpt-3.5-turbo-16k-0613"),
        }
    }
}

impl Default for ChatModel {
    fn default() -> ChatModel {
        Self::Gpt51
    }
}