|
|
|
@ -8,6 +8,8 @@ use crate::{
|
|
|
|
|
FloatingIpListResponse,
|
|
|
|
|
NetworkListResponse,
|
|
|
|
|
ZoneListResponse,
|
|
|
|
|
ZoneAddResponse,
|
|
|
|
|
ZoneRemoveResponse,
|
|
|
|
|
RecordListResponse,
|
|
|
|
|
DynListResponse,
|
|
|
|
|
DynAddResponse,
|
|
|
|
@ -62,7 +64,9 @@ pub enum DynSubArgs {
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
|
pub enum ZoneSubArgs {
|
|
|
|
|
Add(ZoneAddRequest),
|
|
|
|
|
List(ZoneListRequest),
|
|
|
|
|
Remove(ZoneRemoveRequest),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
|
|
|
|
@ -250,6 +254,8 @@ impl Args {
|
|
|
|
|
Self::Image(ImageSubArgs::List(image_list)) => print_req(image_list)?,
|
|
|
|
|
Self::Billing(BillingSubArgs::Credit(billing_credit)) => print_req(billing_credit)?,
|
|
|
|
|
Self::Zone(ZoneSubArgs::List(zone_list)) => print_req(zone_list)?,
|
|
|
|
|
Self::Zone(ZoneSubArgs::Add(zone_add_req)) => print_req(zone_add_req)?,
|
|
|
|
|
Self::Zone(ZoneSubArgs::Remove(zone_rem_req)) => print_req(zone_rem_req)?,
|
|
|
|
|
Self::Dyn(DynSubArgs::Add(dyn_add_req)) => print_req(dyn_add_req)?,
|
|
|
|
|
Self::Dyn(DynSubArgs::List(dyn_list)) => print_req(dyn_list)?,
|
|
|
|
|
Self::Dyn(DynSubArgs::Remove(dyn_del)) => print_req(dyn_del)?,
|
|
|
|
@ -385,3 +391,16 @@ pub struct DynAddRequest {
|
|
|
|
|
/// An ip address to associate with the FQDN. This type should be stricter: TODO.
|
|
|
|
|
ip: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[lunanode_request(response="ZoneAddResponse", endpoint="dns2/zone-add/")]
|
|
|
|
|
pub struct ZoneAddRequest {
|
|
|
|
|
/// A new zone, a FQDN.
|
|
|
|
|
name: String,
|
|
|
|
|
/// The default time-to-live (TTL) for the records in this zone.
|
|
|
|
|
ttl: i32,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[lunanode_request(response="ZoneRemoveResponse", endpoint="dns2/zone-remove/")]
|
|
|
|
|
pub struct ZoneRemoveRequest {
|
|
|
|
|
zone_id: i32,
|
|
|
|
|
}
|
|
|
|
|