use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SessionTurnErrorCodeResource {
#[serde(rename = "context_length_exceeded")]
ContextLengthExceeded,
#[serde(rename = "session_budget_exceeded")]
SessionBudgetExceeded,
#[serde(rename = "usage_limit_exceeded")]
UsageLimitExceeded,
#[serde(rename = "project_spend_limit_exceeded")]
ProjectSpendLimitExceeded,
#[serde(rename = "organization_spend_limit_exceeded")]
OrganizationSpendLimitExceeded,
#[serde(rename = "organization_usage_limit_exceeded")]
OrganizationUsageLimitExceeded,
#[serde(rename = "billing_not_active")]
BillingNotActive,
#[serde(rename = "credit_balance_exhausted")]
CreditBalanceExhausted,
#[serde(rename = "rate_limit_exceeded")]
RateLimitExceeded,
#[serde(rename = "flex_unavailable")]
FlexUnavailable,
#[serde(rename = "server_overloaded")]
ServerOverloaded,
#[serde(rename = "cyber_policy")]
CyberPolicy,
#[serde(rename = "misalignment_policy_violation")]
MisalignmentPolicyViolation,
#[serde(rename = "connection_failed")]
ConnectionFailed,
#[serde(rename = "server_error")]
ServerError,
#[serde(rename = "authentication_error")]
AuthenticationError,
#[serde(rename = "invalid_request")]
InvalidRequest,
#[serde(rename = "resource_not_found")]
ResourceNotFound,
#[serde(rename = "sandbox_error")]
SandboxError,
#[serde(rename = "executor_version_incompatible")]
ExecutorVersionIncompatible,
#[serde(rename = "active_turn_not_steerable")]
ActiveTurnNotSteerable,
#[serde(rename = "request_timeout")]
RequestTimeout,
#[serde(rename = "internal_error")]
InternalError,
}
impl std::fmt::Display for SessionTurnErrorCodeResource {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ContextLengthExceeded => write!(f, "context_length_exceeded"),
Self::SessionBudgetExceeded => write!(f, "session_budget_exceeded"),
Self::UsageLimitExceeded => write!(f, "usage_limit_exceeded"),
Self::ProjectSpendLimitExceeded => write!(f, "project_spend_limit_exceeded"),
Self::OrganizationSpendLimitExceeded => write!(f, "organization_spend_limit_exceeded"),
Self::OrganizationUsageLimitExceeded => write!(f, "organization_usage_limit_exceeded"),
Self::BillingNotActive => write!(f, "billing_not_active"),
Self::CreditBalanceExhausted => write!(f, "credit_balance_exhausted"),
Self::RateLimitExceeded => write!(f, "rate_limit_exceeded"),
Self::FlexUnavailable => write!(f, "flex_unavailable"),
Self::ServerOverloaded => write!(f, "server_overloaded"),
Self::CyberPolicy => write!(f, "cyber_policy"),
Self::MisalignmentPolicyViolation => write!(f, "misalignment_policy_violation"),
Self::ConnectionFailed => write!(f, "connection_failed"),
Self::ServerError => write!(f, "server_error"),
Self::AuthenticationError => write!(f, "authentication_error"),
Self::InvalidRequest => write!(f, "invalid_request"),
Self::ResourceNotFound => write!(f, "resource_not_found"),
Self::SandboxError => write!(f, "sandbox_error"),
Self::ExecutorVersionIncompatible => write!(f, "executor_version_incompatible"),
Self::ActiveTurnNotSteerable => write!(f, "active_turn_not_steerable"),
Self::RequestTimeout => write!(f, "request_timeout"),
Self::InternalError => write!(f, "internal_error"),
}
}
}
impl Default for SessionTurnErrorCodeResource {
fn default() -> SessionTurnErrorCodeResource {
Self::ContextLengthExceeded
}
}