openstack_cli_compute/v2/flavor/
flavor_access.rs1use clap::{Parser, Subcommand};
18
19use openstack_cli_core::{cli::CliArgs, error::OpenStackCliError};
20use openstack_sdk::AsyncOpenStack;
21
22use crate::v2::flavor::add_tenant_access;
23use crate::v2::flavor::remove_tenant_access;
24
25mod list;
26
27#[derive(Parser)]
29pub struct FlavorAccessCommand {
30 #[command(subcommand)]
31 command: FlavorAccessCommands,
32}
33
34#[allow(missing_docs)]
36#[derive(Subcommand)]
37pub enum FlavorAccessCommands {
38 #[command(about = "Add Flavor Access To Tenant (addTenantAccess Action)")]
40 Add(add_tenant_access::FlavorCommand),
41 #[command(about = "List Flavor Access Information For Given Flavor")]
43 List(list::FlavorAccessesCommand),
44 #[command(about = "Remove Flavor Access From Tenant (removeTenantAccess Action)")]
46 Remove(remove_tenant_access::FlavorCommand),
47}
48
49impl FlavorAccessCommand {
50 pub async fn take_action<C: CliArgs>(
52 &self,
53 parsed_args: &C,
54 session: &mut AsyncOpenStack,
55 ) -> Result<(), OpenStackCliError> {
56 match &self.command {
57 FlavorAccessCommands::Add(cmd) => cmd.take_action(parsed_args, session).await,
58 FlavorAccessCommands::List(cmd) => cmd.take_action(parsed_args, session).await,
59 FlavorAccessCommands::Remove(cmd) => cmd.take_action(parsed_args, session).await,
60 }
61 }
62}