openstack_cli_placement/v1/
resource_provider.rs1use clap::{Parser, Subcommand};
17
18use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
19use openstack_sdk::AsyncOpenStack;
20
21pub mod aggregate;
22pub mod allocation;
23pub mod create_10;
24pub mod create_114;
25pub mod delete;
26pub mod inventory;
27pub mod list;
28pub mod set_10;
29pub mod set_114;
30pub mod show;
31pub mod r#trait;
32pub mod usage;
33
34#[derive(Parser)]
40pub struct ResourceProviderCommand {
41 #[command(subcommand)]
42 command: ResourceProviderCommands,
43}
44
45#[allow(missing_docs)]
47#[derive(Subcommand)]
48pub enum ResourceProviderCommands {
49 Aggregate(aggregate::AggregateCommand),
50 Allocation(allocation::AllocationCommand),
51 #[command(visible_alias = "create")]
52 Create114(create_114::ResourceProviderCommand),
53 Create10(create_10::ResourceProviderCommand),
54 Delete(delete::ResourceProviderCommand),
55 Inventory(inventory::InventoryCommand),
56 List(list::ResourceProvidersCommand),
57 #[command(visible_alias = "set")]
58 Set114(set_114::ResourceProviderCommand),
59 Set10(set_10::ResourceProviderCommand),
60 Show(show::ResourceProviderCommand),
61 Trait(r#trait::TraitCommand),
62 Usage(usage::UsageCommand),
63}
64
65impl ResourceProviderCommand {
66 pub async fn take_action<C: CliArgs>(
68 &self,
69 parsed_args: &C,
70 session: &mut AsyncOpenStack,
71 ) -> Result<(), OpenStackCliError> {
72 match &self.command {
73 ResourceProviderCommands::Aggregate(cmd) => cmd.take_action(parsed_args, session).await,
74 ResourceProviderCommands::Allocation(cmd) => {
75 cmd.take_action(parsed_args, session).await
76 }
77 ResourceProviderCommands::Create114(cmd) => cmd.take_action(parsed_args, session).await,
78 ResourceProviderCommands::Create10(cmd) => cmd.take_action(parsed_args, session).await,
79 ResourceProviderCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
80 ResourceProviderCommands::Inventory(cmd) => cmd.take_action(parsed_args, session).await,
81 ResourceProviderCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
82 ResourceProviderCommands::Set114(cmd) => cmd.take_action(parsed_args, session).await,
83 ResourceProviderCommands::Set10(cmd) => cmd.take_action(parsed_args, session).await,
84 ResourceProviderCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
85 ResourceProviderCommands::Trait(cmd) => cmd.take_action(parsed_args, session).await,
86 ResourceProviderCommands::Usage(cmd) => cmd.take_action(parsed_args, session).await,
87 }
88 }
89}