1use super::*;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct KeywordSkillCard {
7 #[serde(default, skip_serializing_if = "Option::is_none")]
8 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9 pub r#type: KeywordSkillCardType,
10 pub skill_card_type: KeywordSkillCardSkillCardType,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
13 pub skill: KeywordSkillCardSkill,
14 pub invocation: KeywordSkillCardInvocation,
15 pub entries: Vec<KeywordSkillCardEntries>,
16}
17
18#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
19#[serde(transparent)]
20pub struct SkillCard(pub serde_json::Value);
21
22#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
23pub struct SkillCardsMetadata {
24 #[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
25 pub can_edit: Option<bool>,
26 #[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
27 pub id: Option<String>,
28 #[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
29 pub parent: Option<String>,
30 #[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
31 pub scope: Option<String>,
32 #[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
33 pub template: Option<String>,
34 #[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
35 pub r#type: Option<String>,
36 #[serde(
37 rename = "$typeVersion",
38 default,
39 skip_serializing_if = "Option::is_none"
40 )]
41 pub type_version: Option<i64>,
42 #[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
43 pub version: Option<i64>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub cards: Option<Vec<SkillCard>>,
46}
47
48#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
49pub struct StatusSkillCard {
50 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
52 pub r#type: KeywordSkillCardType,
53 pub skill_card_type: StatusSkillCardSkillCardType,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
56 pub status: StatusSkillCardStatus,
57 pub skill: KeywordSkillCardSkill,
58 pub invocation: KeywordSkillCardInvocation,
59}
60
61#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
62pub struct TimelineSkillCard {
63 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
65 pub r#type: KeywordSkillCardType,
66 pub skill_card_type: TimelineSkillCardSkillCardType,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
69 pub skill: KeywordSkillCardSkill,
70 pub invocation: KeywordSkillCardInvocation,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub duration: Option<i64>,
73 pub entries: Vec<TimelineSkillCardEntries>,
74}
75
76#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
77pub struct TranscriptSkillCard {
78 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
80 pub r#type: KeywordSkillCardType,
81 pub skill_card_type: TranscriptSkillCardSkillCardType,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
84 pub skill: KeywordSkillCardSkill,
85 pub invocation: KeywordSkillCardInvocation,
86 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub duration: Option<i64>,
88 pub entries: Vec<TranscriptSkillCardEntries>,
89}
90
91#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
92#[serde(transparent)]
93pub struct KeywordSkillCardType(pub String);
94
95impl KeywordSkillCardType {
96 pub const SKILL_CARD: &'static str = "skill_card";
97}
98
99#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
100#[serde(transparent)]
101pub struct KeywordSkillCardSkillCardType(pub String);
102
103impl KeywordSkillCardSkillCardType {
104 pub const KEYWORD: &'static str = "keyword";
105}
106
107#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
108pub struct KeywordSkillCardSkillCardTitle {
109 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub code: Option<String>,
111 pub message: String,
112}
113
114#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
115#[serde(transparent)]
116pub struct SkillType(pub String);
117
118impl SkillType {
119 pub const SERVICE: &'static str = "service";
120}
121
122#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
123pub struct KeywordSkillCardSkill {
124 pub r#type: SkillType,
125 pub id: String,
126}
127
128#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
129#[serde(transparent)]
130pub struct InvocationType(pub String);
131
132impl InvocationType {
133 pub const SKILL_INVOCATION: &'static str = "skill_invocation";
134}
135
136#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
137pub struct KeywordSkillCardInvocation {
138 pub r#type: InvocationType,
139 pub id: String,
140}
141
142#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
143pub struct KeywordSkillCardEntries {
144 #[serde(default, skip_serializing_if = "Option::is_none")]
145 pub text: Option<String>,
146}
147
148#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
149#[serde(transparent)]
150pub struct StatusSkillCardSkillCardType(pub String);
151
152impl StatusSkillCardSkillCardType {
153 pub const STATUS: &'static str = "status";
154}
155
156#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
157#[serde(transparent)]
158pub struct StatusCode(pub String);
159
160impl StatusCode {
161 pub const INVOKED: &'static str = "invoked";
162 pub const PROCESSING: &'static str = "processing";
163 pub const SUCCESS: &'static str = "success";
164 pub const TRANSIENT_FAILURE: &'static str = "transient_failure";
165 pub const PERMANENT_FAILURE: &'static str = "permanent_failure";
166}
167
168#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
169pub struct StatusSkillCardStatus {
170 pub code: StatusCode,
171 #[serde(default, skip_serializing_if = "Option::is_none")]
172 pub message: Option<String>,
173}
174
175#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
176#[serde(transparent)]
177pub struct TimelineSkillCardSkillCardType(pub String);
178
179impl TimelineSkillCardSkillCardType {
180 pub const TIMELINE: &'static str = "timeline";
181}
182
183#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
184pub struct EntriesAppears {
185 #[serde(default, skip_serializing_if = "Option::is_none")]
186 pub start: Option<i64>,
187 #[serde(default, skip_serializing_if = "Option::is_none")]
188 pub end: Option<i64>,
189}
190
191#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
192pub struct TimelineSkillCardEntries {
193 #[serde(default, skip_serializing_if = "Option::is_none")]
194 pub text: Option<String>,
195 #[serde(default, skip_serializing_if = "Option::is_none")]
196 pub appears: Option<Vec<EntriesAppears>>,
197 #[serde(default, skip_serializing_if = "Option::is_none")]
198 pub image_url: Option<String>,
199}
200
201#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
202#[serde(transparent)]
203pub struct TranscriptSkillCardSkillCardType(pub String);
204
205impl TranscriptSkillCardSkillCardType {
206 pub const TRANSCRIPT: &'static str = "transcript";
207}
208
209#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
210pub struct TranscriptSkillCardEntriesAppears {
211 #[serde(default, skip_serializing_if = "Option::is_none")]
212 pub start: Option<i64>,
213}
214
215#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
216pub struct TranscriptSkillCardEntries {
217 #[serde(default, skip_serializing_if = "Option::is_none")]
218 pub text: Option<String>,
219 #[serde(default, skip_serializing_if = "Option::is_none")]
220 pub appears: Option<Vec<TranscriptSkillCardEntriesAppears>>,
221}
222
223#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
224pub struct UpdateSkillRequest {
225 #[serde(default, skip_serializing_if = "Option::is_none")]
226 pub op: Option<PutOp>,
227 #[serde(default, skip_serializing_if = "Option::is_none")]
228 pub path: Option<String>,
229 #[serde(default, skip_serializing_if = "Option::is_none")]
230 pub value: Option<SkillCard>,
231}
232
233#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
234pub struct CreateSkillRequest {
235 pub cards: Vec<SkillCard>,
236}
237
238#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
239pub struct PutSkillInvocationIdMetadata {
240 #[serde(default, skip_serializing_if = "Option::is_none")]
241 pub cards: Option<Vec<SkillCard>>,
242}
243
244#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
245pub struct PutSkillInvocationIdFileVersion {
246 #[serde(default, skip_serializing_if = "Option::is_none")]
247 pub r#type: Option<FileVersionType>,
248 #[serde(default, skip_serializing_if = "Option::is_none")]
249 pub id: Option<String>,
250}
251
252#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
253pub struct PutSkillInvocationIdUsage {
254 #[serde(default, skip_serializing_if = "Option::is_none")]
255 pub unit: Option<String>,
256 #[serde(default, skip_serializing_if = "Option::is_none")]
257 pub value: Option<f64>,
258}
259
260#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
261pub struct UpdateSkillInvocationRequest {
262 pub status: StatusCode,
263 pub metadata: PutSkillInvocationIdMetadata,
264 pub file: PutSkillInvocationIdFile,
265 #[serde(default, skip_serializing_if = "Option::is_none")]
266 pub file_version: Option<PutSkillInvocationIdFileVersion>,
267 #[serde(default, skip_serializing_if = "Option::is_none")]
268 pub usage: Option<PutSkillInvocationIdUsage>,
269}