openstack_cli_compute/v2/flavor/
extra_spec.rs1use clap::{Parser, Subcommand};
17
18use openstack_sdk::AsyncOpenStack;
19
20use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
21
22mod create;
23mod delete;
24mod list;
25mod set;
26mod show;
27
28#[derive(Parser)]
30pub struct ExtraSpecsCommand {
31 #[command(subcommand)]
33 command: ExtraSpecsCommands,
34}
35
36#[allow(missing_docs)]
38#[derive(Subcommand)]
39pub enum ExtraSpecsCommands {
40 #[command(about = "Create Extra Specs For A Flavor")]
42 Create(create::ExtraSpecCommand),
43 #[command(about = "Delete An Extra Spec For A Flavor")]
45 Delete(delete::ExtraSpecCommand),
46 #[command(about = "List Extra Specs For A Flavor")]
48 List(list::ExtraSpecsCommand),
49 #[command(about = "Show An Extra Spec For A Flavor")]
51 Show(show::ExtraSpecCommand),
52 #[command(about = "Update An Extra Spec For A Flavor
54")]
55 Set(set::ExtraSpecCommand),
56}
57
58impl ExtraSpecsCommand {
59 pub async fn take_action<C: CliArgs>(
61 &self,
62 parsed_args: &C,
63 session: &mut AsyncOpenStack,
64 ) -> Result<(), OpenStackCliError> {
65 match &self.command {
66 ExtraSpecsCommands::Create(cmd) => cmd.take_action(parsed_args, session).await,
67 ExtraSpecsCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
68 ExtraSpecsCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
69 ExtraSpecsCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
70 ExtraSpecsCommands::Set(cmd) => cmd.take_action(parsed_args, session).await,
71 }
72 }
73}