gproxy_protocol/protocol/claude/skills/
versions.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::super::common::{DeletedSkillVersionObjectType, JsonObject, SkillVersionObjectType};
6
7#[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}