diff --git a/src/requests.rs b/src/requests.rs index 5d77766..ac0b1b3 100644 --- a/src/requests.rs +++ b/src/requests.rs @@ -15,6 +15,8 @@ use crate::{ EmailUsageResponse, EmailDomainListResponse, EmailUserListResponse, + EmailUserAddResponse, + EmailUserRemoveResponse, MonitorCheckListResponse, MonitorCheckTypesResponse, MonitorContactListResponse, @@ -61,6 +63,8 @@ pub enum EmailDomainSubArgs { #[derive(Serialize, Deserialize, Debug, clap::Subcommand)] pub enum EmailUserSubArgs { List(EmailUserListRequest), + Add(EmailUserAddRequest), + Remove(EmailUserRemoveRequest), } #[derive(Serialize, Deserialize, Debug, clap::Subcommand)] @@ -232,6 +236,8 @@ impl Args { Self::Email(EmailSubArgs::Usage(email_usage)) => print_req(email_usage)?, Self::Email(EmailSubArgs::Domain(EmailDomainSubArgs::List(email_domain_list))) => print_req(email_domain_list)?, 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)?, } Ok(()) } @@ -318,3 +324,16 @@ pub struct VmStopRequest { pub struct VmRebootRequest { vm_id: String, } + +#[lunanode_request(response="EmailUserAddResponse", endpoint="email/user-add/")] +pub struct EmailUserAddRequest { + domain_id: i32, + username: String, + password: String, +} + +#[lunanode_request(response="EmailUserRemoveResponse", endpoint="email/user-remove/")] +pub struct EmailUserRemoveRequest { + domain_id: i32, + user_id: i32, +} diff --git a/src/responses.rs b/src/responses.rs index cc37692..5b87453 100644 --- a/src/responses.rs +++ b/src/responses.rs @@ -612,3 +612,9 @@ pub struct VmStopResponse {} #[lunanode_response] pub struct VmRebootResponse {} + +#[lunanode_response] +pub struct EmailUserAddResponse {} + +#[lunanode_response] +pub struct EmailUserRemoveResponse {}