outfox_openai/spec/responses/
api.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5use crate::spec::responses::{IncludeParam, ListOrder};
6
7#[derive(Clone, Serialize, Default, Debug, Deserialize, Builder, PartialEq)]
9#[builder(name = "ListConversationItemsQueryArgs")]
10#[builder(pattern = "mutable")]
11#[builder(setter(into, strip_option), default)]
12#[builder(derive(Debug))]
13#[builder(build_fn(error = "OpenAIError"))]
14pub struct ListConversationItemsQuery {
15 #[serde(skip_serializing_if = "Option::is_none")]
18 pub limit: Option<u32>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub order: Option<ListOrder>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub after: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub include: Option<Vec<IncludeParam>>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
32#[serde(rename_all = "lowercase")]
33pub enum ListInputItemsOrder {
34 Asc,
36 Desc,
38}
39
40#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
42#[builder(name = "GetResponseQueryArgs")]
43#[builder(pattern = "mutable")]
44#[builder(setter(into, strip_option), default)]
45#[builder(derive(Debug))]
46#[builder(build_fn(error = "OpenAIError"))]
47pub struct GetResponseQuery {
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub include: Option<Vec<String>>,
51 #[serde(skip_serializing_if = "Option::is_none")]
54 pub stream: Option<bool>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub starting_after: Option<u32>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub include_obfuscation: Option<bool>,
61}
62
63#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
65#[builder(name = "ListInputItemsQueryArgs")]
66#[builder(pattern = "mutable")]
67#[builder(setter(into, strip_option), default)]
68#[builder(derive(Debug))]
69#[builder(build_fn(error = "OpenAIError"))]
70pub struct ListInputItemsQuery {
71 #[serde(skip_serializing_if = "Option::is_none")]
74 pub limit: Option<u32>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub order: Option<ListInputItemsOrder>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub after: Option<String>,
81 #[serde(skip_serializing_if = "Option::is_none")]
83 pub include: Option<Vec<String>>,
84}
85
86#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
88#[builder(name = "GetConversationItemQueryArgs")]
89#[builder(pattern = "mutable")]
90#[builder(setter(into, strip_option), default)]
91#[builder(derive(Debug))]
92#[builder(build_fn(error = "OpenAIError"))]
93pub struct GetConversationItemQuery {
94 #[serde(skip_serializing_if = "Option::is_none")]
96 pub include: Option<Vec<IncludeParam>>,
97}
98
99#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
101#[builder(name = "CreateConversationItemsQueryArgs")]
102#[builder(pattern = "mutable")]
103#[builder(setter(into, strip_option), default)]
104#[builder(derive(Debug))]
105#[builder(build_fn(error = "OpenAIError"))]
106pub struct CreateConversationItemsQuery {
107 #[serde(skip_serializing_if = "Option::is_none")]
109 pub include: Option<Vec<IncludeParam>>,
110}