releases/rust/db_esdk/src/kms.rs (77 lines of code) (raw):
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
#![deny(warnings, unconditional_panic)]
#![deny(nonstandard_style)]
#![deny(clippy::all)]
use aws_config::Region;
use std::sync::LazyLock;
static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(|| {
tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap()
});
impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_default {
#[allow(non_snake_case)]
pub fn KMSClientForRegion(region: &::dafny_runtime::Sequence<::dafny_runtime::DafnyCharUTF16>) -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::dafny_runtime::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
let region =
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
region,
);
let shared_config = match tokio::runtime::Handle::try_current() {
Ok(curr) => tokio::task::block_in_place(|| {
curr.block_on(async {
aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await
})
}),
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
aws_config::BehaviorVersion::latest(),
)),
};
let shared_config = shared_config
.to_builder()
.region(Region::new(region))
.build();
let inner = aws_sdk_kms::Client::new(&shared_config);
let client = crate::deps::com_amazonaws_kms::client::Client { inner };
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
dafny_runtime::Rc::new(crate::r#_Wrappers_Compile::Result::Success {
value: dafny_client,
})
}
#[allow(non_snake_case)]
pub fn KMSClient() -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::dafny_runtime::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
let shared_config = match tokio::runtime::Handle::try_current() {
Ok(curr) => tokio::task::block_in_place(|| {
curr.block_on(async {
aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await
})
}),
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
aws_config::BehaviorVersion::latest(),
)),
};
let inner = aws_sdk_kms::Client::new(&shared_config);
let client = crate::deps::com_amazonaws_kms::client::Client { inner };
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
dafny_runtime::Rc::new(crate::r#_Wrappers_Compile::Result::Success {
value: dafny_client,
})
}
#[allow(non_snake_case)]
pub fn RegionMatch(
kmsClient: &::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>,
region: &::dafny_runtime::Sequence<::dafny_runtime::DafnyCharUTF16>,
) -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Option<bool>> {
let region =
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
region,
);
let any = dafny_runtime::cast_any_object!(kmsClient);
let client =
dafny_runtime::cast_object!(any, crate::deps::com_amazonaws_kms::client::Client);
let flag = match client.as_ref().inner.config().region() {
Some(r) => r.as_ref() == region,
None => false,
};
::dafny_runtime::Rc::new(crate::r#_Wrappers_Compile::Option::Some { value: flag })
}
}