Skip to main content

gproxy_protocol/protocol/claude/skills/
versions.rs

1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::super::common::{DeletedSkillVersionObjectType, JsonObject, SkillVersionObjectType};
6
7/// Multipart form fields for `POST /v1/skills/{skill_id}/versions`.
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
9#[non_exhaustive]
10pub struct CreateSkillVersionRequestBody {
11    pub files: Vec<String>,
12    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
13    pub extra: JsonObject,
14}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
17#[non_exhaustive]
18pub struct SkillVersionPath {
19    pub skill_id: String,
20    pub version: String,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
24#[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 = "BTreeMap::is_empty")]
31    pub extra: JsonObject,
32}
33
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
35#[non_exhaustive]
36pub struct SkillVersion {
37    pub id: String,
38    pub created_at: String,
39    pub description: String,
40    pub name: String,
41    pub skill_id: String,
42    #[serde(rename = "type")]
43    pub type_: SkillVersionObjectType,
44    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
45    pub extra: JsonObject,
46}
47
48pub type CreateSkillVersionResponseBody = SkillVersion;
49pub type RetrieveSkillVersionResponseBody = SkillVersion;
50
51#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
52#[non_exhaustive]
53pub struct ListSkillVersionsResponseBody {
54    pub data: Vec<SkillVersion>,
55    pub next_page: Option<String>,
56    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
57    pub extra: JsonObject,
58}
59
60#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
61#[non_exhaustive]
62pub struct DeleteSkillVersionResponseBody {
63    pub id: String,
64    #[serde(rename = "type")]
65    pub type_: DeletedSkillVersionObjectType,
66    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
67    pub extra: JsonObject,
68}