use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: KeywordSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
pub entries: Vec<KeywordSkillCardEntries>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SkillCard(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SkillCardsMetadata {
#[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
#[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
#[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
#[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(
rename = "$typeVersion",
default,
skip_serializing_if = "Option::is_none"
)]
pub type_version: Option<i64>,
#[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cards: Option<Vec<SkillCard>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StatusSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: StatusSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub status: StatusSkillCardStatus,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TimelineSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: TimelineSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
pub entries: Vec<TimelineSkillCardEntries>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TranscriptSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: TranscriptSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
pub entries: Vec<TranscriptSkillCardEntries>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct KeywordSkillCardType(pub String);
impl KeywordSkillCardType {
pub const SKILL_CARD: &'static str = "skill_card";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct KeywordSkillCardSkillCardType(pub String);
impl KeywordSkillCardSkillCardType {
pub const KEYWORD: &'static str = "keyword";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardSkillCardTitle {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
pub message: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SkillType(pub String);
impl SkillType {
pub const SERVICE: &'static str = "service";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardSkill {
pub r#type: SkillType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct InvocationType(pub String);
impl InvocationType {
pub const SKILL_INVOCATION: &'static str = "skill_invocation";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardInvocation {
pub r#type: InvocationType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StatusSkillCardSkillCardType(pub String);
impl StatusSkillCardSkillCardType {
pub const STATUS: &'static str = "status";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StatusCode(pub String);
impl StatusCode {
pub const INVOKED: &'static str = "invoked";
pub const PROCESSING: &'static str = "processing";
pub const SUCCESS: &'static str = "success";
pub const TRANSIENT_FAILURE: &'static str = "transient_failure";
pub const PERMANENT_FAILURE: &'static str = "permanent_failure";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StatusSkillCardStatus {
pub code: StatusCode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TimelineSkillCardSkillCardType(pub String);
impl TimelineSkillCardSkillCardType {
pub const TIMELINE: &'static str = "timeline";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesAppears {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TimelineSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appears: Option<Vec<EntriesAppears>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TranscriptSkillCardSkillCardType(pub String);
impl TranscriptSkillCardSkillCardType {
pub const TRANSCRIPT: &'static str = "transcript";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TranscriptSkillCardEntriesAppears {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TranscriptSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appears: Option<Vec<TranscriptSkillCardEntriesAppears>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateSkillRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub op: Option<PutOp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<SkillCard>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateSkillRequest {
pub cards: Vec<SkillCard>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cards: Option<Vec<SkillCard>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdFileVersion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FileVersionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdUsage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateSkillInvocationRequest {
pub status: StatusCode,
pub metadata: PutSkillInvocationIdMetadata,
pub file: PutSkillInvocationIdFile,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<PutSkillInvocationIdFileVersion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<PutSkillInvocationIdUsage>,
}