1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
9pub struct DeletedSkillVersion {
10 pub id: String,
11 pub deleted: bool,
12 pub object: String,
13 pub version: String,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
19pub struct SkillVersion {
20 pub id: String,
22 pub created_at: i64,
24 pub description: String,
26 pub name: String,
28 pub object: String,
30 pub skill_id: String,
32 pub version: String,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
38pub struct SkillVersionList {
39 pub data: Vec<SkillVersion>,
41 #[serde(skip_serializing_if = "Option::is_none", default)]
43 pub first_id: Option<String>,
44 pub has_more: bool,
46 #[serde(skip_serializing_if = "Option::is_none", default)]
48 pub last_id: Option<String>,
49 pub object: String,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
54#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
55pub struct VersionCreateParams {
56 #[serde(skip_serializing_if = "Option::is_none", default)]
58 pub default: Option<bool>,
59 #[serde(skip_serializing_if = "Option::is_none", default)]
61 pub files: Option<serde_json::Value>,
62}
63
64#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
65#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
66#[non_exhaustive]
67pub enum VersionListParamsOrder {
68 #[serde(rename = "asc")]
69 Asc,
70 #[serde(rename = "desc")]
71 Desc,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
75#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
76pub struct VersionListParams {
77 #[serde(skip_serializing_if = "Option::is_none", default)]
79 pub after: Option<String>,
80 #[serde(skip_serializing_if = "Option::is_none", default)]
82 pub limit: Option<i64>,
83 #[serde(skip_serializing_if = "Option::is_none", default)]
85 pub order: Option<VersionListParamsOrder>,
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
89#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
90pub struct DeletedSkill {
91 pub id: String,
92 pub deleted: bool,
93 pub object: String,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
98pub struct Skill {
99 pub id: String,
101 pub created_at: i64,
103 pub default_version: String,
105 pub description: String,
107 pub latest_version: String,
109 pub name: String,
111 pub object: String,
113}
114
115#[derive(Debug, Clone, Serialize, Deserialize)]
116#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
117pub struct SkillCreateParams {
118 #[serde(skip_serializing_if = "Option::is_none", default)]
120 pub files: Option<serde_json::Value>,
121}
122
123#[derive(Debug, Clone, Serialize, Deserialize)]
124#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
125pub struct SkillList {
126 pub data: Vec<Skill>,
128 #[serde(skip_serializing_if = "Option::is_none", default)]
130 pub first_id: Option<String>,
131 pub has_more: bool,
133 #[serde(skip_serializing_if = "Option::is_none", default)]
135 pub last_id: Option<String>,
136 pub object: String,
138}
139
140#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
141#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
142#[non_exhaustive]
143pub enum SkillListParamsOrder {
144 #[serde(rename = "asc")]
145 Asc,
146 #[serde(rename = "desc")]
147 Desc,
148}
149
150#[derive(Debug, Clone, Serialize, Deserialize)]
151#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
152pub struct SkillListParams {
153 #[serde(skip_serializing_if = "Option::is_none", default)]
155 pub after: Option<String>,
156 #[serde(skip_serializing_if = "Option::is_none", default)]
158 pub limit: Option<i64>,
159 #[serde(skip_serializing_if = "Option::is_none", default)]
161 pub order: Option<SkillListParamsOrder>,
162}
163
164#[derive(Debug, Clone, Serialize, Deserialize)]
165#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
166pub struct SkillUpdateParams {
167 pub default_version: String,
169}