openstack_cli_placement/v1/
resource_class.rs1use clap::{Parser, Subcommand};
17
18use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
19use openstack_sdk::AsyncOpenStack;
20
21pub mod create;
22pub mod delete;
23pub mod list;
24pub mod set_17;
25pub mod show;
26
27#[derive(Parser)]
33pub struct ResourceClassCommand {
34 #[command(subcommand)]
35 command: ResourceClassCommands,
36}
37
38#[allow(missing_docs)]
40#[derive(Subcommand)]
41pub enum ResourceClassCommands {
42 Create(create::ResourceClassCommand),
43 Delete(delete::ResourceClassCommand),
44 List(list::ResourceClassesCommand),
45 #[command(visible_alias = "set")]
46 Set17(set_17::ResourceClassCommand),
47 Show(show::ResourceClassCommand),
48}
49
50impl ResourceClassCommand {
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 ResourceClassCommands::Create(cmd) => cmd.take_action(parsed_args, session).await,
59 ResourceClassCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
60 ResourceClassCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
61 ResourceClassCommands::Set17(cmd) => cmd.take_action(parsed_args, session).await,
62 ResourceClassCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
63 }
64 }
65}