/*
 * Orvanta API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.2
 * Contact: contact@orvanta.cloud
 * Generated by: https://openapi-generator.tech
 */

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

/// ProviderConfig : Complete AI provider configuration with resource reference and model selection
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProviderConfig {
    #[serde(rename = "kind")]
    pub kind: models::AiProviderKind,
    /// Resource reference in format '$res:{resource_path}' pointing to provider credentials
    #[serde(rename = "resource")]
    pub resource: String,
    /// Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229', 'gemini-pro')
    #[serde(rename = "model")]
    pub model: String,
}

impl ProviderConfig {
    /// Complete AI provider configuration with resource reference and model selection
    pub fn new(kind: models::AiProviderKind, resource: String, model: String) -> ProviderConfig {
        ProviderConfig {
            kind,
            resource,
            model,
        }
    }
}

