use std::collections::HashMap;
use serde::Deserialize;
use wasmcloud_control_interface::{Host, HostInventory};
use wasmcloud_core::{InterfaceLinkDefinition, LinkName};
use wadm_types::validation::ValidationFailure;
#[derive(Debug, Deserialize)]
pub struct StartCommandOutput {
pub component_id: Option<String>,
pub component_ref: Option<String>,
pub provider_id: Option<String>,
pub provider_ref: Option<String>,
pub host_id: Option<String>,
pub success: bool,
}
#[derive(Debug, Deserialize)]
pub struct StopCommandOutput {
pub host_id: Option<String>,
pub result: String,
pub component_ref: Option<String>,
pub component_id: Option<String>,
pub provider_id: Option<String>,
pub provider_ref: Option<String>,
pub success: bool,
}
#[derive(Debug, Deserialize)]
pub struct LinkQueryCommandOutput {
pub links: Vec<HashMap<LinkName, Vec<InterfaceLinkDefinition>>>,
pub success: bool,
}
#[derive(Debug, Clone, Deserialize)]
pub struct GetHostsCommandOutput {
pub success: bool,
pub hosts: Vec<Host>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct GetHostInventoriesCommandOutput {
pub success: bool,
pub inventories: Vec<HostInventory>,
}
#[derive(Debug, Deserialize)]
pub struct GetClaimsCommandOutput {
pub claims: Vec<HashMap<String, String>>,
pub success: bool,
}
#[derive(Debug, Deserialize)]
pub struct DevCommandOutput {
pub success: bool,
}
#[derive(Debug, Deserialize)]
pub struct ScaleCommandOutput {
pub success: bool,
pub result: String,
}
#[derive(Debug, Deserialize)]
pub struct CallCommandOutput {
pub success: bool,
pub response: serde_json::Value,
}
#[derive(Debug, Deserialize)]
pub struct PullCommandOutput {
pub success: bool,
pub file: String,
}
#[derive(Debug, Deserialize)]
pub struct LabelHostCommandOutput {
pub success: bool,
pub deleted: bool,
pub processed: Vec<(String, String)>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct UpCommandOutput {
pub success: bool,
pub kill_cmd: String,
pub wasmcloud_log: String,
pub nats_url: String,
pub deployed_wadm_manifest_path: Option<String>,
}
#[derive(Debug, Deserialize)]
pub struct AppValidateOutput {
pub valid: bool,
pub warnings: Vec<ValidationFailure>,
pub errors: Vec<ValidationFailure>,
}