ansible_inventory_cloud_cli/
args.rs1use clap::{Parser, Subcommand, ValueEnum};
2use url::Url;
3
4#[derive(Parser, Debug)]
6#[command(author, version, about, long_about = None)]
7pub struct Args {
8 #[command(subcommand)]
9 pub subcommand: ArgsSubcommand,
10}
11
12#[derive(Subcommand, Debug)]
13pub enum ArgsSubcommand {
14 Http(HttpArgs),
15}
16
17#[derive(Parser, Debug)]
19#[command(author, version, about, long_about = None)]
20pub struct HttpArgs {
21 #[clap(flatten)]
22 pub _common: XArgsCommon,
23
24 #[arg(long)]
25 pub list_url: Option<Url>,
26 #[arg(long)]
27 pub host_url: Option<Url>,
28
29 #[arg(long)]
30 pub access_token: String,
31 #[arg(long, value_enum)]
32 pub access_token_in: Option<HttpArgsAccessTokenIn>,
33 #[arg(long)]
34 pub access_token_query_name: Option<String>,
35
36 #[arg(long, value_enum)]
37 pub hostname_in: Option<HttpArgsHostnameIn>,
38 #[arg(long)]
39 pub hostname_query_name: Option<String>,
40}
41
42#[derive(Parser, Debug)]
45#[command(author, version, about, long_about = None)]
46pub struct XArgsCommon {
47 #[arg(long)]
48 pub list: bool,
49 #[arg(long)]
50 pub host: Option<String>,
51}
52
53#[derive(ValueEnum, Debug, Clone)]
55pub enum HttpArgsAccessTokenIn {
56 HeaderAuthorizationBearer,
57 Query,
58}
59impl Default for HttpArgsAccessTokenIn {
60 fn default() -> Self {
61 Self::HeaderAuthorizationBearer
62 }
63}
64
65#[derive(ValueEnum, Debug, Clone)]
67pub enum HttpArgsHostnameIn {
68 Path,
69 Query,
70}
71impl Default for HttpArgsHostnameIn {
72 fn default() -> Self {
73 Self::Path
74 }
75}