Function aws_manager::kms::is_error_retryable_generate_data_key
source · pub fn is_error_retryable_generate_data_key(
e: &SdkError<GenerateDataKeyError>
) -> boolExamples found in repository?
src/kms/mod.rs (line 387)
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396
pub async fn generate_data_key(&self, key_id: &str, spec: Option<DataKeySpec>) -> Result<DEK> {
// default to "AES_256" for generate 256-bit symmetric key (32-byte)
let dek_spec = spec.unwrap_or(DataKeySpec::Aes256);
log::info!(
"generating KMS data key for '{}' with key spec {:?}",
key_id,
dek_spec
);
let resp = self
.cli
.generate_data_key()
.key_id(key_id)
.key_spec(dek_spec)
.send()
.await
.map_err(|e| API {
message: format!("failed generate_data_key {:?}", e),
is_retryable: is_error_retryable(&e) || is_error_retryable_generate_data_key(&e),
})?;
let cipher = resp.ciphertext_blob().unwrap();
let plain = resp.plaintext().unwrap();
Ok(DEK::new(
cipher.clone().into_inner(),
plain.clone().into_inner(),
))
}