use super::application_registration::AzureEntraApplicationRegistrationArgs;
use super::group::AzureEntraGroupArgs;
use super::service_principal::AzureEntraServicePrincipalArgs;
use super::user::AzureEntraUserArgs;
use clap::Subcommand;
use eyre::Result;
#[derive(Subcommand, Debug, Clone)]
pub enum AzureEntraCommand {
User(AzureEntraUserArgs),
#[command(alias = "sp")]
ServicePrincipal(AzureEntraServicePrincipalArgs),
#[command(aliases = ["app", "app-reg", "ar"])]
ApplicationRegistration(AzureEntraApplicationRegistrationArgs),
Group(AzureEntraGroupArgs),
}
impl AzureEntraCommand {
pub async fn invoke(self) -> Result<()> {
match self {
AzureEntraCommand::User(args) => {
args.invoke().await?;
}
AzureEntraCommand::ServicePrincipal(args) => {
args.invoke().await?;
}
AzureEntraCommand::ApplicationRegistration(args) => {
args.invoke().await?;
}
AzureEntraCommand::Group(args) => {
args.invoke().await?;
}
}
Ok(())
}
}