/*! * A Colony is cloud-init data that can be used to set up a new planet **/ /* * Colonies basically need to store things like any files that need to be created in the VM and * users that should be added. This needs to be serialized into a cloud-init document that can then * (somehow) be thrown into QEMU */ use serde::{Deserialize, Serialize}; use ulid::Ulid; #[derive(Clone, Debug, Serialize, Deserialize)] pub struct Colony { pub user_data: UserData, pub meta_data: MetaData, } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct UserData { pub users: Vec, } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct User { pub name: String, pub groups: Vec, pub ssh_authorized_keys: Vec, } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct MetaData { #[serde(rename = "instance-id")] pub instance_id: Ulid, #[serde(rename = "local-hostname")] pub hostname: String }