mod delete;
mod get;
mod modify;
mod set;
use clap::Subcommand;
use cosmian_kms_client::KmsClient;
pub use delete::DeleteAttributesAction;
pub use get::GetAttributesAction;
pub(crate) use get::get_attributes;
pub use modify::ModifyAttributesAction;
pub use set::{SetAttributesAction, SetOrDeleteAttributes, VendorAttributeCli};
use crate::error::result::KmsCliResult;
#[derive(Subcommand)]
pub enum AttributesCommands {
Get(GetAttributesAction),
Set(SetAttributesAction),
Delete(DeleteAttributesAction),
Modify(ModifyAttributesAction),
}
#[cfg(test)]
pub use cosmian_kms_client::reexport::cosmian_kms_client_utils::attributes_utils::CLinkType;
pub use set::CCryptographicAlgorithm;
impl AttributesCommands {
pub async fn process(&self, kms_rest_client: KmsClient) -> KmsCliResult<()> {
match self {
Self::Get(action) => {
action.run(kms_rest_client).await?;
Ok(())
}
Self::Set(action) => action.process(kms_rest_client).await,
Self::Delete(action) => action.process(kms_rest_client).await,
Self::Modify(action) => action.process(kms_rest_client).await,
}
}
}