openstack_cli_block_storage/v3/
volume_transfer.rs1use clap::{Parser, Subcommand};
19
20use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
21use openstack_sdk::AsyncOpenStack;
22
23pub mod accept;
24pub mod create_355;
25pub mod delete;
26pub mod list;
27pub mod show;
28
29#[derive(Parser)]
34pub struct VolumeTransferCommand {
35 #[command(subcommand)]
37 command: VolumeTransferCommands,
38}
39
40#[allow(missing_docs)]
42#[derive(Subcommand)]
43pub enum VolumeTransferCommands {
44 Accept(Box<accept::VolumeTransferCommand>),
45 #[command(visible_alias = "create")]
46 Create355(Box<create_355::VolumeTransferCommand>),
47 Delete(Box<delete::VolumeTransferCommand>),
48 List(Box<list::VolumeTransfersCommand>),
49 Show(Box<show::VolumeTransferCommand>),
50}
51
52impl VolumeTransferCommand {
53 pub async fn take_action<C: CliArgs>(
55 &self,
56 parsed_args: &C,
57 session: &mut AsyncOpenStack,
58 ) -> Result<(), OpenStackCliError> {
59 match &self.command {
60 VolumeTransferCommands::Accept(cmd) => cmd.take_action(parsed_args, session).await,
61 VolumeTransferCommands::Create355(cmd) => cmd.take_action(parsed_args, session).await,
62 VolumeTransferCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
63 VolumeTransferCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
64 VolumeTransferCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
65 }
66 }
67}