@ -10,6 +10,10 @@ use crate::{
RecordListResponse ,
DynListResponse ,
SshKeyResponse ,
PlanListResponse ,
RegionListResponse ,
EmailUsageResponse ,
EmailDomainListResponse ,
} ,
types ::{
LNError ,
@ -43,6 +47,18 @@ pub enum ZoneSubArgs {
List ( ZoneListRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Subcommand) ]
pub enum EmailDomainSubArgs {
List ( EmailDomainListRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Subcommand) ]
pub enum EmailSubArgs {
#[ clap(subcommand) ]
Domain ( EmailDomainSubArgs ) ,
Usage ( EmailUsageRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Subcommand) ]
#[ serde(untagged) ]
pub enum FloatingSubArgs {
@ -88,6 +104,16 @@ pub enum NetworkSubArgs {
List ( NetworkListRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Subcommand) ]
pub enum PlanSubArgs {
List ( PlanListRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Subcommand) ]
pub enum RegionSubArgs {
List ( RegionListRequest ) ,
}
#[ derive(Serialize, Deserialize, Debug, clap::Parser) ]
#[ serde(untagged) ]
pub enum Args {
@ -121,6 +147,15 @@ pub enum Args {
#[ clap(subcommand) ]
/// See `lunanode sshkey help`
SshKey ( SshKeySubArgs ) ,
#[ clap(subcommand) ]
/// See `lunandoe plan help`
Plan ( PlanSubArgs ) ,
#[ clap(subcommand) ]
/// See `lunanode region help`
Region ( RegionSubArgs ) ,
#[ clap(subcommand) ]
/// See `lunanode email help`
Email ( EmailSubArgs ) ,
}
/// Specifies an internal function which can only be called on LunaNodeRequests whoes response type implements Debug. This could be set in the structure itself, and probably should be.
@ -145,6 +180,10 @@ impl Args {
Self ::Billing ( BillingSubArgs ::Credit ( billing_credit ) ) = > print_req ( billing_credit ) ? ,
Self ::Zone ( ZoneSubArgs ::List ( zone_list ) ) = > print_req ( zone_list ) ? ,
Self ::Dyn ( DynSubArgs ::List ( dyn_list ) ) = > print_req ( dyn_list ) ? ,
Self ::Plan ( PlanSubArgs ::List ( plan_list ) ) = > print_req ( plan_list ) ? ,
Self ::Region ( RegionSubArgs ::List ( reg_list ) ) = > print_req ( reg_list ) ? ,
Self ::Email ( EmailSubArgs ::Usage ( email_usage ) ) = > print_req ( email_usage ) ? ,
Self ::Email ( EmailSubArgs ::Domain ( EmailDomainSubArgs ::List ( email_domain_list ) ) ) = > print_req ( email_domain_list ) ? ,
}
Ok ( ( ) )
}
@ -190,3 +229,15 @@ pub struct DynListRequest {}
#[ lunanode_request(response= " SshKeyResponse " , endpoint= " sshkey/list/ " ) ]
pub struct SshKeyRequest { }
#[ lunanode_request(response= " PlanListResponse " , endpoint= " plan/list/ " ) ]
pub struct PlanListRequest { }
#[ lunanode_request(response= " RegionListResponse " , endpoint= " region/list/ " ) ]
pub struct RegionListRequest { }
#[ lunanode_request(response= " EmailUsageResponse " , endpoint= " email/usage/ " ) ]
pub struct EmailUsageRequest { }
#[ lunanode_request(response= " EmailDomainListResponse " , endpoint= " email/domain-list/ " ) ]
pub struct EmailDomainListRequest { }