outfox_openai/spec/admin/project_rate_limits/
project_rate_limits_.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5
6#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
8pub struct ProjectRateLimit {
9 pub object: String,
11 pub id: String,
13 pub model: String,
15 pub max_requests_per_1_minute: i64,
17 pub max_tokens_per_1_minute: i64,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub max_images_per_1_minute: Option<i64>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub max_audio_megabytes_per_1_minute: Option<i64>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub max_requests_per_1_day: Option<i64>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub batch_1_day_max_input_tokens: Option<i64>,
31}
32
33#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
35pub struct ProjectRateLimitListResponse {
36 pub object: String,
38 pub data: Vec<ProjectRateLimit>,
40 pub first_id: Option<String>,
42 pub last_id: Option<String>,
44 pub has_more: bool,
46}
47
48#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Builder, Default)]
50#[builder(name = "ProjectRateLimitUpdateRequestArgs")]
51#[builder(pattern = "mutable")]
52#[builder(setter(into, strip_option), default)]
53#[builder(derive(Debug))]
54#[builder(build_fn(error = "OpenAIError"))]
55pub struct ProjectRateLimitUpdateRequest {
56 pub max_requests_per_1_minute: Option<i64>,
58 pub max_tokens_per_1_minute: Option<i64>,
60 pub max_images_per_1_minute: Option<i64>,
62 pub max_audio_megabytes_per_1_minute: Option<i64>,
64 pub max_requests_per_1_day: Option<i64>,
66 pub batch_1_day_max_input_tokens: Option<i64>,
68}