Skip to main content

outfox_openai/spec/finetuning/
api.rs

1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5
6/// Sort order for listing fine-tuning checkpoint permissions.
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
8#[serde(rename_all = "lowercase")]
9pub enum ListFineTuningCheckpointPermissionsOrder {
10    /// Ascending order
11    Ascending,
12    /// Descending order
13    Descending,
14}
15
16/// Query parameters for listing fine-tuning checkpoint permissions.
17#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
18#[builder(name = "ListFineTuningCheckpointPermissionsQueryArgs")]
19#[builder(pattern = "mutable")]
20#[builder(setter(into, strip_option), default)]
21#[builder(derive(Debug))]
22#[builder(build_fn(error = "OpenAIError"))]
23pub struct ListFineTuningCheckpointPermissionsQuery {
24    /// The ID of the project to get permissions for.
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub project_id: Option<String>,
27    /// Identifier for the last permission ID from the previous pagination request.
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub after: Option<String>,
30    /// Number of permissions to retrieve.
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub limit: Option<u32>,
33    /// The order in which to retrieve permissions.
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub order: Option<ListFineTuningCheckpointPermissionsOrder>,
36}
37
38/// Query parameters for listing fine-tuning jobs.
39#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
40#[builder(name = "ListPaginatedFineTuningJobsQueryArgs")]
41#[builder(pattern = "mutable")]
42#[builder(setter(into, strip_option), default)]
43#[builder(derive(Debug))]
44#[builder(build_fn(error = "OpenAIError"))]
45pub struct ListPaginatedFineTuningJobsQuery {
46    /// Identifier for the last job from the previous pagination request.
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub after: Option<String>,
49    /// Number of fine-tuning jobs to retrieve.
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub limit: Option<u32>,
52    /// Optional metadata filter. To filter, use the syntax `metadata[k]=v`. Alternatively, set
53    /// `metadata=null` to indicate no metadata.
54    #[serde(skip_serializing_if = "Option::is_none")]
55    pub metadata: Option<serde_json::Value>,
56}
57
58/// Sort order for listing fine-tuning job checkpoints.
59#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
60#[serde(rename_all = "lowercase")]
61pub enum ListFineTuningJobCheckpointsOrder {
62    /// Ascending order
63    Asc,
64    /// Descending order
65    Desc,
66}
67
68/// Query parameters for listing fine-tuning job checkpoints.
69#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
70#[builder(name = "ListFineTuningJobCheckpointsQueryArgs")]
71#[builder(pattern = "mutable")]
72#[builder(setter(into, strip_option), default)]
73#[builder(derive(Debug))]
74#[builder(build_fn(error = "OpenAIError"))]
75pub struct ListFineTuningJobCheckpointsQuery {
76    /// Identifier for the last checkpoint from the previous pagination request.
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub after: Option<String>,
79    /// Number of checkpoints to retrieve.
80    #[serde(skip_serializing_if = "Option::is_none")]
81    pub limit: Option<u32>,
82}
83
84/// Sort order for listing fine-tuning events.
85#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
86#[serde(rename_all = "lowercase")]
87pub enum ListFineTuningEventsOrder {
88    /// Ascending order
89    Asc,
90    /// Descending order
91    Desc,
92}
93
94/// Query parameters for listing fine-tuning events.
95#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
96#[builder(name = "ListFineTuningEventsQueryArgs")]
97#[builder(pattern = "mutable")]
98#[builder(setter(into, strip_option), default)]
99#[builder(derive(Debug))]
100#[builder(build_fn(error = "OpenAIError"))]
101pub struct ListFineTuningEventsQuery {
102    /// Identifier for the last event from the previous pagination request.
103    #[serde(skip_serializing_if = "Option::is_none")]
104    pub after: Option<String>,
105    /// Number of events to retrieve.
106    #[serde(skip_serializing_if = "Option::is_none")]
107    pub limit: Option<u32>,
108    /// Sort order for events by timestamp. Use `asc` for ascending order or `desc` for descending
109    /// order. Defaults to `asc`.
110    #[serde(skip_serializing_if = "Option::is_none")]
111    pub order: Option<ListFineTuningEventsOrder>,
112}