#[allow(clippy::wildcard_imports)]
use super::*;
#[derive(Subcommand)]
pub enum ViewAction {
List {
#[arg(long, value_name = "repository|project|user")]
scope: Option<String>,
},
Show {
reference: String,
},
Create {
#[arg(long, value_name = "NAME")]
name: String,
#[command(flatten)]
scope: ViewScopeArgs,
#[command(flatten)]
plan: ViewPlanArgs,
},
Update {
reference: String,
#[arg(long, value_name = "NAME")]
name: Option<String>,
#[command(flatten)]
plan: ViewPlanArgs,
},
Duplicate {
reference: String,
#[arg(long, value_name = "NAME")]
name: Option<String>,
},
Delete {
reference: String,
#[arg(long)]
confirm: bool,
},
Apply {
reference: String,
},
Status {
reference: Option<String>,
#[command(flatten)]
live: ViewPlanArgs,
},
Share {
reference: String,
#[command(flatten)]
scope: ViewScopeArgs,
},
}
#[derive(Args, Debug, Clone, PartialEq, Eq)]
pub struct ViewScopeArgs {
#[arg(long, value_name = "repository|project|user")]
pub scope: Option<String>,
#[arg(long, value_name = "PROJECT")]
pub project: Option<String>,
#[arg(long, value_name = "IDENTITY")]
pub owner: Option<String>,
#[arg(long, value_name = "LIST")]
pub shared_with: Option<String>,
}
#[derive(Args, Debug, Clone, PartialEq, Eq)]
pub struct ViewPlanArgs {
#[arg(long, value_name = "QUERY")]
pub filter: Option<String>,
#[arg(long, value_name = "KEY")]
pub sort: Option<String>,
#[arg(long, value_name = "KEY")]
pub group: Option<String>,
#[arg(long, value_name = "LIST")]
pub hide_columns: Option<String>,
#[arg(long, value_name = "true|false", num_args = 1, action = clap::ArgAction::Set)]
pub show_mismatch: Option<bool>,
}
impl ViewPlanArgs {
#[must_use]
pub const fn is_any(&self) -> bool {
self.filter.is_some()
|| self.sort.is_some()
|| self.group.is_some()
|| self.hide_columns.is_some()
|| self.show_mismatch.is_some()
}
}