|
|
|
@ -17,12 +17,14 @@ use crate::{
|
|
|
|
|
EmailUserListResponse,
|
|
|
|
|
EmailUserAddResponse,
|
|
|
|
|
EmailUserRemoveResponse,
|
|
|
|
|
EmailUserSetPasswordResponse,
|
|
|
|
|
MonitorCheckListResponse,
|
|
|
|
|
MonitorCheckTypesResponse,
|
|
|
|
|
MonitorContactListResponse,
|
|
|
|
|
VmStartResponse,
|
|
|
|
|
VmStopResponse,
|
|
|
|
|
VmRebootResponse,
|
|
|
|
|
VmIpListResponse,
|
|
|
|
|
},
|
|
|
|
|
types::{
|
|
|
|
|
LNError,
|
|
|
|
@ -35,9 +37,11 @@ use parse_display_derive::Display;
|
|
|
|
|
use ureq::post;
|
|
|
|
|
use serde::{
|
|
|
|
|
Serialize,
|
|
|
|
|
Serializer,
|
|
|
|
|
Deserialize,
|
|
|
|
|
de::DeserializeOwned,
|
|
|
|
|
};
|
|
|
|
|
use serde_with::serde_as;
|
|
|
|
|
use hmac::Hmac;
|
|
|
|
|
use sha2::Sha512;
|
|
|
|
|
|
|
|
|
@ -65,6 +69,7 @@ pub enum EmailUserSubArgs {
|
|
|
|
|
List(EmailUserListRequest),
|
|
|
|
|
Add(EmailUserAddRequest),
|
|
|
|
|
Remove(EmailUserRemoveRequest),
|
|
|
|
|
SetPassword(EmailUserSetPasswordRequest),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
@ -95,6 +100,12 @@ pub enum RecordSubArgs {
|
|
|
|
|
List(RecordListRequest),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
|
#[serde(untagged)]
|
|
|
|
|
pub enum VmIpSubArgs {
|
|
|
|
|
List(VmIpListRequest),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
|
#[serde(untagged)]
|
|
|
|
|
pub enum VmSubArgs {
|
|
|
|
@ -106,6 +117,9 @@ pub enum VmSubArgs {
|
|
|
|
|
Stop(VmStopRequest),
|
|
|
|
|
/// Turn on a VM, given an ID.
|
|
|
|
|
Start(VmStartRequest),
|
|
|
|
|
/// IP subcommands
|
|
|
|
|
#[clap(subcommand)]
|
|
|
|
|
Ip(VmIpSubArgs),
|
|
|
|
|
}
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
|
#[serde(untagged)]
|
|
|
|
@ -225,6 +239,7 @@ impl Args {
|
|
|
|
|
Self::Vm(VmSubArgs::List(vm_list)) => print_req(vm_list)?,
|
|
|
|
|
Self::Vm(VmSubArgs::Start(vm_to_start)) => print_req(vm_to_start)?,
|
|
|
|
|
Self::Vm(VmSubArgs::Stop(vm_to_stop)) => print_req(vm_to_stop)?,
|
|
|
|
|
Self::Vm(VmSubArgs::Ip(VmIpSubArgs::List(vm_ips))) => print_req(vm_ips)?,
|
|
|
|
|
Self::Vm(VmSubArgs::Reboot(vm_to_reboot)) => print_req(vm_to_reboot)?,
|
|
|
|
|
Self::Volume(VolumeSubArgs::List(vol_list)) => print_req(vol_list)?,
|
|
|
|
|
Self::Image(ImageSubArgs::List(image_list)) => print_req(image_list)?,
|
|
|
|
@ -238,6 +253,7 @@ impl Args {
|
|
|
|
|
Self::Email(EmailSubArgs::User(EmailUserSubArgs::List(email_user_list))) => print_req(email_user_list)?,
|
|
|
|
|
Self::Email(EmailSubArgs::User(EmailUserSubArgs::Add(email_add_user_req))) => print_req(email_add_user_req)?,
|
|
|
|
|
Self::Email(EmailSubArgs::User(EmailUserSubArgs::Remove(email_del_req))) => print_req(email_del_req)?,
|
|
|
|
|
Self::Email(EmailSubArgs::User(EmailUserSubArgs::SetPassword(email_user_set_password))) => print_req(email_user_set_password)?,
|
|
|
|
|
}
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
@ -337,3 +353,15 @@ pub struct EmailUserRemoveRequest {
|
|
|
|
|
domain_id: i32,
|
|
|
|
|
user_id: i32,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[lunanode_request(response="EmailUserSetPasswordResponse", endpoint="email/user-set-password/")]
|
|
|
|
|
pub struct EmailUserSetPasswordRequest {
|
|
|
|
|
domain_id: i32,
|
|
|
|
|
user_id: i32,
|
|
|
|
|
password: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[lunanode_request(response="VmIpListResponse", endpoint="vm/iplist/")]
|
|
|
|
|
pub struct VmIpListRequest {
|
|
|
|
|
vm_id: String,
|
|
|
|
|
}
|
|
|
|
|