use clap::{Args, ValueEnum};
#[derive(Args, Debug)]
pub struct ListDataStores {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub limit: u64,
#[clap(short, long, value_parser)]
pub prefix: Option<String>,
#[clap(short, long, value_parser)]
pub cursor: Option<String>,
}
#[derive(Args, Debug)]
pub struct ListEntries {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short = 'o', long, value_parser)]
pub all_scopes: Option<bool>,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub prefix: Option<String>,
#[clap(short, long, value_parser)]
pub limit: u64,
#[clap(short, long, value_parser)]
pub cursor: Option<String>,
}
#[derive(Args, Debug)]
pub struct GetEntry {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
}
#[derive(Args, Debug)]
pub struct ListEntryVersions {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
#[clap(short = 't', long, value_parser)]
pub start_time: Option<String>,
#[clap(short = 'e', long, value_parser)]
pub end_time: Option<String>,
#[clap(short = 'o', long, value_enum)]
pub sort_order: SortOrder,
#[clap(short, long, value_parser)]
pub limit: u64,
#[clap(short, long, value_parser)]
pub cursor: Option<String>,
}
#[derive(Args, Debug)]
pub struct GetEntryVersion {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
#[clap(short, long, value_parser)]
pub version_id: String,
}
#[derive(Args, Debug)]
pub struct SetEntry {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
#[clap(short = 'i', long, value_parser)]
pub match_version: Option<String>,
#[clap(short, long, value_parser)]
pub exclusive_create: Option<bool>,
#[clap(short = 'D', long, value_parser)]
pub data: String,
#[clap(short = 'U', long, value_parser)]
pub user_ids: Option<Vec<u64>>,
#[clap(short = 't', long, value_parser)]
pub attributes: Option<String>,
}
#[derive(Args, Debug)]
pub struct IncrementEntry {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
#[clap(short, long, value_parser)]
pub increment_by: f64,
#[clap(short = 'U', long, value_parser)]
pub user_ids: Option<Vec<u64>>,
#[clap(short = 't', long, value_parser)]
pub attributes: Option<String>,
}
#[derive(Args, Debug)]
pub struct DeleteEntry {
#[clap(short, long, value_parser)]
pub universe_id: u64,
#[clap(short, long, value_parser)]
pub api_key: String,
#[clap(short, long, value_parser)]
pub datastore_name: String,
#[clap(short, long, value_parser)]
pub scope: Option<String>,
#[clap(short, long, value_parser)]
pub key: String,
}
#[derive(Debug, Clone, ValueEnum)]
pub enum SortOrder {
Ascending,
Descending,
}