use super::model::MfaDevice;
use crate::provider::ProviderConfig;
use wami_core::arn::{Service, WamiArn};
use wami_core::context::WamiContext;
use wami_core::error::Result;
#[allow(clippy::result_large_err)]
pub fn build_mfa_device(
user_name: String,
serial_number: String,
context: &WamiContext,
) -> Result<MfaDevice> {
let wami_arn = WamiArn::builder()
.service(Service::Iam)
.tenant_path(context.tenant_path().clone())
.wami_instance(context.instance_id())
.resource("mfa", &serial_number)
.build()?;
Ok(MfaDevice {
user_name,
serial_number,
enable_date: chrono::Utc::now(),
wami_arn,
providers: Vec::new(),
})
}
pub fn add_provider_to_mfa_device(mut mfa_device: MfaDevice, config: ProviderConfig) -> MfaDevice {
mfa_device.providers.push(config);
mfa_device
}