openstack_cli_compute/v2/
flavor.rs1use clap::{Parser, Subcommand};
18
19use openstack_sdk::AsyncOpenStack;
20
21use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
22
23pub mod add_tenant_access;
24pub mod create_20;
25pub mod create_21;
26pub mod create_255;
27pub mod delete;
28pub mod extra_spec;
29pub mod flavor_access;
30pub mod list;
31pub mod remove_tenant_access;
32pub mod set_255;
33pub mod show;
34
35#[derive(Parser)]
41pub struct FlavorCommand {
42 #[command(subcommand)]
44 command: FlavorCommands,
45}
46
47#[allow(missing_docs)]
49#[derive(Subcommand)]
50pub enum FlavorCommands {
51 Access(Box<flavor_access::FlavorAccessCommand>),
52 #[command(visible_alias = "create")]
53 Create255(Box<create_255::FlavorCommand>),
54 Create21(Box<create_21::FlavorCommand>),
55 Create20(Box<create_20::FlavorCommand>),
56 Delete(Box<delete::FlavorCommand>),
57 Extraspecs(Box<extra_spec::ExtraSpecsCommand>),
58 List(Box<list::FlavorsCommand>),
59 #[command(visible_alias = "set")]
60 Set255(Box<set_255::FlavorCommand>),
61 Show(Box<show::FlavorCommand>),
62}
63
64impl FlavorCommand {
65 pub async fn take_action<C: CliArgs>(
67 &self,
68 parsed_args: &C,
69 session: &mut AsyncOpenStack,
70 ) -> Result<(), OpenStackCliError> {
71 match &self.command {
72 FlavorCommands::Access(cmd) => cmd.take_action(parsed_args, session).await,
73 FlavorCommands::Create255(cmd) => cmd.take_action(parsed_args, session).await,
74 FlavorCommands::Create21(cmd) => cmd.take_action(parsed_args, session).await,
75 FlavorCommands::Create20(cmd) => cmd.take_action(parsed_args, session).await,
76 FlavorCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
77 FlavorCommands::Extraspecs(cmd) => cmd.take_action(parsed_args, session).await,
78 FlavorCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
79 FlavorCommands::Set255(cmd) => cmd.take_action(parsed_args, session).await,
80 FlavorCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
81 }
82 }
83}