use clap::{Parser, Subcommand};
use openstack_sdk::AsyncOpenStack;
use crate::{Cli, OpenStackCliError};
pub mod aggregate;
pub mod allocation;
pub mod create_10;
pub mod create_114;
pub mod delete;
pub mod inventory;
pub mod list;
pub mod set_10;
pub mod set_114;
pub mod show;
pub mod r#trait;
pub mod usage;
#[derive(Parser)]
pub struct ResourceProviderCommand {
#[command(subcommand)]
command: ResourceProviderCommands,
}
#[allow(missing_docs)]
#[derive(Subcommand)]
pub enum ResourceProviderCommands {
Aggregate(aggregate::AggregateCommand),
Allocation(allocation::AllocationCommand),
#[command(visible_alias = "create")]
Create114(create_114::ResourceProviderCommand),
Create10(create_10::ResourceProviderCommand),
Delete(delete::ResourceProviderCommand),
Inventory(inventory::InventoryCommand),
List(list::ResourceProvidersCommand),
#[command(visible_alias = "set")]
Set114(set_114::ResourceProviderCommand),
Set10(set_10::ResourceProviderCommand),
Show(show::ResourceProviderCommand),
Trait(r#trait::TraitCommand),
Usage(usage::UsageCommand),
}
impl ResourceProviderCommand {
pub async fn take_action(
&self,
parsed_args: &Cli,
session: &mut AsyncOpenStack,
) -> Result<(), OpenStackCliError> {
match &self.command {
ResourceProviderCommands::Aggregate(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Allocation(cmd) => {
cmd.take_action(parsed_args, session).await
}
ResourceProviderCommands::Create114(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Create10(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Delete(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Inventory(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Set114(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Set10(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Show(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Trait(cmd) => cmd.take_action(parsed_args, session).await,
ResourceProviderCommands::Usage(cmd) => cmd.take_action(parsed_args, session).await,
}
}
}