openstack_cli_block_storage/v3/
os_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;
25pub mod delete;
26pub mod list;
27pub mod show;
28
29#[derive(Parser)]
33pub struct VolumeTransferCommand {
34 #[command(subcommand)]
36 command: VolumeTransferCommands,
37}
38
39#[allow(missing_docs)]
41#[derive(Subcommand)]
42pub enum VolumeTransferCommands {
43 Accept(Box<accept::OsVolumeTransferCommand>),
44 Create(Box<create::OsVolumeTransferCommand>),
45 Delete(Box<delete::OsVolumeTransferCommand>),
46 List(Box<list::OsVolumeTransfersCommand>),
47 Show(Box<show::OsVolumeTransferCommand>),
48}
49
50impl VolumeTransferCommand {
51 pub async fn take_action<C: CliArgs>(
53 &self,
54 parsed_args: &C,
55 session: &mut AsyncOpenStack,
56 ) -> Result<(), OpenStackCliError> {
57 match &self.command {
58 VolumeTransferCommands::Accept(cmd) => cmd.take_action(parsed_args, session).await,
59 VolumeTransferCommands::Create(cmd) => cmd.take_action(parsed_args, session).await,
60 VolumeTransferCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
61 VolumeTransferCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
62 VolumeTransferCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
63 }
64 }
65}