Skip to main content

gproxy_protocol/claude/skills/
versions.rs

1use serde::{Deserialize, Serialize};
2
3use super::super::common::{DeletedSkillVersionObjectType, SkillVersionObjectType};
4
5/// Multipart form fields for `POST /v1/skills/{skill_id}/versions`.
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
7#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
8pub struct CreateSkillVersionRequestBody {
9    pub files: Vec<String>,
10    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
11    pub rest: serde_json::Map<String, serde_json::Value>,
12}
13
14#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
15#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
16pub struct SkillVersionPath {
17    pub skill_id: String,
18    pub version: String,
19    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
20    pub rest: serde_json::Map<String, serde_json::Value>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
24#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
25pub struct ListSkillVersionsQuery {
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub limit: Option<u64>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub page: Option<String>,
30    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
31    pub rest: serde_json::Map<String, serde_json::Value>,
32}
33
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
35#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
36pub struct SkillVersion {
37    pub id: String,
38    pub created_at: String,
39    pub description: String,
40    pub directory: String,
41    pub name: String,
42    pub skill_id: String,
43    #[serde(rename = "type")]
44    pub type_: SkillVersionObjectType,
45    pub version: String,
46    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
47    pub rest: serde_json::Map<String, serde_json::Value>,
48}
49
50pub type CreateSkillVersionResponseBody = SkillVersion;
51pub type RetrieveSkillVersionResponseBody = SkillVersion;
52
53#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
54#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
55pub struct ListSkillVersionsResponseBody {
56    pub data: Vec<SkillVersion>,
57    pub has_more: bool,
58    pub next_page: Option<String>,
59    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
60    pub rest: serde_json::Map<String, serde_json::Value>,
61}
62
63#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
64#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
65pub struct DeleteSkillVersionResponseBody {
66    pub id: String,
67    #[serde(rename = "type")]
68    pub type_: DeletedSkillVersionObjectType,
69    #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
70    pub rest: serde_json::Map<String, serde_json::Value>,
71}