async-dashscope 0.12.0

A Rust client for DashScope API
Documentation
use serde::{Deserialize, Serialize};

use crate::operation::common::TaskStatus;

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TaskOutput {
    pub task_id: String,
    pub task_status: TaskStatus,
    pub submit_time: String,
    pub scheduled_time: Option<String>,
    pub end_time: Option<String>,
    pub image_url: Option<String>,
    pub code: Option<String>,
    pub message: Option<String>,
    pub task_metrics: Option<TaskMetrics>,
    pub results: Option<Vec<Text2ImageResult>>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Text2ImageResult {
    pub orig_prompt: String,
    pub actual_prompt: String,
    pub url: String,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TaskMetrics {
    #[serde(rename = "TOTAL")]
    pub total: u32,
    #[serde(rename = "SUCCEEDED")]
    pub succeeded: u32,
    #[serde(rename = "FAILED")]
    pub failed: u32,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TaskResult {
    pub request_id: String,
    pub output: TaskOutput,
    pub usage: Option<ImageUsage>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ImageUsage {
    pub image_count: u32,
}