(&self, retry: Option<RetryConfig>)
| 47 | } |
| 48 | |
| 49 | pub async fn sdk_config(&self, retry: Option<RetryConfig>) -> SdkConfig { |
| 50 | let explicit_region = self.region.clone().map(Region::new); |
| 51 | |
| 52 | let region_provider = RegionProviderChain::first_try(explicit_region.clone()) |
| 53 | .or_default_provider() |
| 54 | .or_else(Region::new(DEFAULT_REGION)); |
| 55 | |
| 56 | let retry = retry.unwrap_or_else(|| self.retry_policy()); |
| 57 | let mut config_loader = if let Some(ref endpoint_url) = self.endpoint_url { |
| 58 | aws_config::defaults(BehaviorVersion::latest()) |
| 59 | .endpoint_url(endpoint_url) |
| 60 | .region(region_provider) |
| 61 | .retry_config(retry) |
| 62 | } else { |
| 63 | aws_config::defaults(BehaviorVersion::latest()) |
| 64 | .region(region_provider) |
| 65 | .retry_config(retry) |
| 66 | }; |
| 67 | |
| 68 | if let Some(profile) = &self.profile { |
| 69 | let profile_region = ProfileFileRegionProvider::builder() |
| 70 | .profile_name(profile) |
| 71 | .build(); |
| 72 | |
| 73 | let region_provider = |
| 74 | RegionProviderChain::first_try(explicit_region).or_else(profile_region); |
| 75 | let region = region_provider.region().await; |
| 76 | |
| 77 | let conf = ProviderConfig::default().with_region(region); |
| 78 | |
| 79 | let creds_provider = ProfileFileCredentialsProvider::builder() |
| 80 | .profile_name(profile) |
| 81 | .configure(&conf) |
| 82 | .build(); |
| 83 | |
| 84 | config_loader = config_loader |
| 85 | .region(region_provider) |
| 86 | .credentials_provider(creds_provider); |
| 87 | } |
| 88 | |
| 89 | config_loader.load().await |
| 90 | } |
| 91 | |
| 92 | pub fn count_fields(&self) -> usize { |
| 93 | self.profile.is_some() as usize |
no test coverage detected