Codex Handbook
aws-auth/src/config.rs 38 lines
use aws_config::BehaviorVersion;use aws_config::SdkConfig;use aws_credential_types::provider::SharedCredentialsProvider;use aws_types::region::Region;use crate::AwsAuthConfig;use crate::AwsAuthError;pub(crate) async fn load_sdk_config(config: &AwsAuthConfig) -> Result<SdkConfig, AwsAuthError> {    if config.service.trim().is_empty() {        return Err(AwsAuthError::EmptyService);    }    let mut loader = aws_config::defaults(BehaviorVersion::latest());    if let Some(profile) = config.profile.as_ref() {        loader = loader.profile_name(profile);    }    if let Some(region) = config.region.as_ref() {        loader = loader.region(Region::new(region.clone()));    }    Ok(loader.load().await)}pub(crate) fn credentials_provider(    sdk_config: &SdkConfig,) -> Result<SharedCredentialsProvider, AwsAuthError> {    sdk_config        .credentials_provider()        .ok_or(AwsAuthError::MissingCredentialsProvider)}pub(crate) fn resolved_region(sdk_config: &SdkConfig) -> Result<String, AwsAuthError> {    sdk_config        .region()        .map(ToString::to_string)        .ok_or(AwsAuthError::MissingRegion)}