use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ActorAuctionAck {
#[serde(default)]
pub actor_ref: String,
#[serde(default)]
pub host_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ActorAuctionRequest {
#[serde(default)]
pub actor_ref: String,
pub constraints: ConstraintMap,
}
pub type ConstraintMap = std::collections::HashMap<String, String>;
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ActorDescription {
#[serde(default)]
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image_ref: Option<String>,
pub instances: Vec<ActorInstance>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ActorInstance {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub instance_id: String,
#[serde(default)]
pub revision: i32,
}
pub type AnnotationMap = std::collections::HashMap<String, String>;
pub type CtlKVList = Vec<KeyValueMap>;
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct CtlOperationAck {
#[serde(default)]
pub accepted: bool,
#[serde(default)]
pub error: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct GetClaimsResponse {
pub claims: CtlKVList,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct Host {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cluster_issuers: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ctl_host: Option<String>,
#[serde(default)]
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub js_domain: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<KeyValueMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lattice_prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prov_rpc_host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rpc_host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uptime_human: Option<String>,
#[serde(default)]
pub uptime_seconds: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct HostInventory {
pub actors: Vec<ActorDescription>,
#[serde(default)]
pub host_id: String,
pub labels: LabelsMap,
pub providers: ProviderDescriptions,
}
pub type Hosts = Vec<Host>;
pub type KeyValueMap = std::collections::HashMap<String, String>;
pub type LabelsMap = std::collections::HashMap<String, String>;
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct LinkDefinitionList {
pub links: wasmbus_rpc::core::ActorLinks,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ProviderAuctionAck {
#[serde(default)]
pub host_id: String,
#[serde(default)]
pub link_name: String,
#[serde(default)]
pub provider_ref: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ProviderAuctionRequest {
pub constraints: ConstraintMap,
#[serde(default)]
pub link_name: String,
#[serde(default)]
pub provider_ref: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ProviderDescription {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image_ref: Option<String>,
#[serde(default)]
pub contract_id: String,
#[serde(default)]
pub link_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default)]
pub revision: i32,
}
pub type ProviderDescriptions = Vec<ProviderDescription>;
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct RegistryCredential {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
#[serde(rename = "registryType")]
pub registry_type: String,
}
pub type RegistryCredentialMap = std::collections::HashMap<String, RegistryCredential>;
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct RemoveLinkDefinitionRequest {
#[serde(default)]
pub actor_id: String,
#[serde(default)]
pub contract_id: String,
#[serde(default)]
pub link_name: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct ScaleActorCommand {
#[serde(default)]
pub actor_id: String,
#[serde(default)]
pub actor_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub count: u16,
#[serde(default)]
pub host_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct StartActorCommand {
#[serde(default)]
pub actor_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub count: u16,
#[serde(default)]
pub host_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct StartProviderCommand {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configuration: Option<String>,
#[serde(default)]
pub host_id: String,
#[serde(default)]
pub link_name: String,
#[serde(default)]
pub provider_ref: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct StopActorCommand {
#[serde(default)]
pub actor_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub count: u16,
#[serde(default)]
pub host_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct StopHostCommand {
#[serde(default)]
pub host_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<u64>,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct StopProviderCommand {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub contract_id: String,
#[serde(default)]
pub host_id: String,
#[serde(default)]
pub link_name: String,
#[serde(default)]
pub provider_ref: String,
}
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct UpdateActorCommand {
#[serde(default)]
pub actor_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<AnnotationMap>,
#[serde(default)]
pub host_id: String,
#[serde(default)]
pub new_actor_ref: String,
}