Codex Handbook
codex-backend-openapi-models/src/models/rate_limit_status_payload.rs 133 lines
/* * codex-backend * * codex-backend * * The version of the OpenAPI document: 0.0.1 * * Generated by: https://openapi-generator.tech */use crate::models;use serde::Deserialize;use serde::Serialize;#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]pub struct RateLimitStatusPayload {    #[serde(rename = "plan_type")]    pub plan_type: PlanType,    #[serde(        rename = "rate_limit",        default,        with = "::serde_with::rust::double_option",        skip_serializing_if = "Option::is_none"    )]    pub rate_limit: Option<Option<Box<models::RateLimitStatusDetails>>>,    #[serde(        rename = "credits",        default,        with = "::serde_with::rust::double_option",        skip_serializing_if = "Option::is_none"    )]    pub credits: Option<Option<Box<models::CreditStatusDetails>>>,    #[serde(        rename = "spend_control",        default,        with = "::serde_with::rust::double_option",        skip_serializing_if = "Option::is_none"    )]    pub spend_control: Option<Option<Box<models::SpendControlStatusDetails>>>,    #[serde(        rename = "additional_rate_limits",        default,        with = "::serde_with::rust::double_option",        skip_serializing_if = "Option::is_none"    )]    pub additional_rate_limits: Option<Option<Vec<models::AdditionalRateLimitDetails>>>,    #[serde(        rename = "rate_limit_reached_type",        default,        with = "::serde_with::rust::double_option",        skip_serializing_if = "Option::is_none"    )]    pub rate_limit_reached_type: Option<Option<RateLimitReachedType>>,}impl RateLimitStatusPayload {    pub fn new(plan_type: PlanType) -> RateLimitStatusPayload {        RateLimitStatusPayload {            plan_type,            rate_limit: None,            credits: None,            spend_control: None,            additional_rate_limits: None,            rate_limit_reached_type: None,        }    }}#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]pub struct RateLimitReachedType {    #[serde(rename = "type")]    pub kind: RateLimitReachedKind,}#[derive(    Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,)]pub enum RateLimitReachedKind {    #[serde(rename = "rate_limit_reached")]    RateLimitReached,    #[serde(rename = "workspace_owner_credits_depleted")]    WorkspaceOwnerCreditsDepleted,    #[serde(rename = "workspace_member_credits_depleted")]    WorkspaceMemberCreditsDepleted,    #[serde(rename = "workspace_owner_usage_limit_reached")]    WorkspaceOwnerUsageLimitReached,    #[serde(rename = "workspace_member_usage_limit_reached")]    WorkspaceMemberUsageLimitReached,    #[serde(rename = "unknown", other)]    #[default]    Unknown,}#[derive(    Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,)]pub enum PlanType {    #[serde(rename = "guest")]    #[default]    Guest,    #[serde(rename = "free")]    Free,    #[serde(rename = "go")]    Go,    #[serde(rename = "plus")]    Plus,    #[serde(rename = "pro")]    Pro,    #[serde(rename = "prolite")]    ProLite,    #[serde(rename = "free_workspace")]    FreeWorkspace,    #[serde(rename = "team")]    Team,    #[serde(rename = "self_serve_business_usage_based")]    SelfServeBusinessUsageBased,    #[serde(rename = "business")]    Business,    #[serde(rename = "enterprise_cbp_usage_based")]    EnterpriseCbpUsageBased,    #[serde(rename = "education")]    Education,    #[serde(rename = "quorum")]    Quorum,    #[serde(rename = "k12")]    K12,    #[serde(rename = "enterprise")]    Enterprise,    #[serde(rename = "edu")]    Edu,    #[serde(rename = "unknown", other)]    Unknown,}