openstack_cli_block_storage/v3/
group_snapshot.rs1use clap::{Parser, Subcommand};
18
19use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
20use openstack_sdk::AsyncOpenStack;
21
22pub mod create_314;
23pub mod delete;
24pub mod list;
25pub mod reset_status_319;
26pub mod show;
27
28#[derive(Parser)]
32pub struct GroupSnapshotCommand {
33 #[command(subcommand)]
35 command: GroupSnapshotCommands,
36}
37
38#[allow(missing_docs)]
40#[derive(Subcommand)]
41pub enum GroupSnapshotCommands {
42 #[command(visible_alias = "create")]
43 Create314(Box<create_314::GroupSnapshotCommand>),
44 Delete(Box<delete::GroupSnapshotCommand>),
45 List(Box<list::GroupSnapshotsCommand>),
46 #[command(visible_alias = "reset-status")]
47 ResetStatus319(Box<reset_status_319::GroupSnapshotCommand>),
48 Show(Box<show::GroupSnapshotCommand>),
49}
50
51impl GroupSnapshotCommand {
52 pub async fn take_action<C: CliArgs>(
54 &self,
55 parsed_args: &C,
56 session: &mut AsyncOpenStack,
57 ) -> Result<(), OpenStackCliError> {
58 match &self.command {
59 GroupSnapshotCommands::Create314(cmd) => cmd.take_action(parsed_args, session).await,
60 GroupSnapshotCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
61 GroupSnapshotCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
62 GroupSnapshotCommands::ResetStatus319(cmd) => {
63 cmd.take_action(parsed_args, session).await
64 }
65 GroupSnapshotCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
66 }
67 }
68}