pub struct Builder { /* private fields */ }
Expand description

Builder for creating a Config.

Implementations§

source§

impl Builder

source

pub fn new() -> Self

Constructs a config builder.

source

pub fn idempotency_token_provider( self, idempotency_token_provider: impl Into<IdempotencyTokenProvider> ) -> Self

Sets the idempotency token provider to use for service calls that require tokens.

source

pub fn set_idempotency_token_provider( &mut self, idempotency_token_provider: Option<IdempotencyTokenProvider> ) -> &mut Self

Sets the idempotency token provider to use for service calls that require tokens.

source

pub fn http_connector(self, http_connector: impl Into<HttpConnector>) -> Self

Sets the HTTP connector to use when making requests.

Examples
use std::time::Duration;
use aws_smithy_client::{Client, hyper_ext};
use aws_smithy_client::erase::DynConnector;
use aws_smithy_client::http_connector::ConnectorSettings;
use aws_sdk_dynamodb::config::Config;

let https_connector = hyper_rustls::HttpsConnectorBuilder::new()
    .with_webpki_roots()
    .https_only()
    .enable_http1()
    .enable_http2()
    .build();
let smithy_connector = hyper_ext::Adapter::builder()
    // Optionally set things like timeouts as well
    .connector_settings(
        ConnectorSettings::builder()
            .connect_timeout(Duration::from_secs(5))
            .build()
    )
    .build(https_connector);
source

pub fn set_http_connector( &mut self, http_connector: Option<impl Into<HttpConnector>> ) -> &mut Self

Sets the HTTP connector to use when making requests.

Examples
use std::time::Duration;
use aws_smithy_client::hyper_ext;
use aws_smithy_client::http_connector::ConnectorSettings;
use aws_sdk_dynamodb::config::{Builder, Config};

fn override_http_connector(builder: &mut Builder) {
    let https_connector = hyper_rustls::HttpsConnectorBuilder::new()
        .with_webpki_roots()
        .https_only()
        .enable_http1()
        .enable_http2()
        .build();
    let smithy_connector = hyper_ext::Adapter::builder()
        // Optionally set things like timeouts as well
        .connector_settings(
            ConnectorSettings::builder()
                .connect_timeout(Duration::from_secs(5))
                .build()
        )
        .build(https_connector);
    builder.set_http_connector(Some(smithy_connector));
}

let mut builder = aws_sdk_dynamodb::Config::builder();
override_http_connector(&mut builder);
let config = builder.build();
source

pub fn endpoint_resolver( self, endpoint_resolver: impl ResolveEndpoint<Params> + 'static ) -> Self

Sets the endpoint resolver to use when making requests.

Note: setting an endpoint resolver will replace any endpoint URL that has been set.

When unset, the client will used a generated endpoint resolver based on the endpoint resolution rules for aws_sdk_dynamodb.

Examples
use aws_smithy_http::endpoint;
use aws_sdk_dynamodb::config::endpoint::{Params as EndpointParams, DefaultResolver};
/// Endpoint resolver which adds a prefix to the generated endpoint
#[derive(Debug)]
struct PrefixResolver {
    base_resolver: DefaultResolver,
    prefix: String
}
impl endpoint::ResolveEndpoint<EndpointParams> for PrefixResolver {
  fn resolve_endpoint(&self, params: &EndpointParams) -> endpoint::Result {
       self.base_resolver
             .resolve_endpoint(params)
             .map(|ep|{
                  let url = ep.url().to_string();
                  ep.into_builder().url(format!("{}.{}", &self.prefix, url)).build()
              })
  }
}
let prefix_resolver = PrefixResolver {
    base_resolver: DefaultResolver::new(),
    prefix: "subdomain".to_string()
};
let config = aws_sdk_dynamodb::Config::builder().endpoint_resolver(prefix_resolver);
source

pub fn set_endpoint_resolver( &mut self, endpoint_resolver: Option<SharedEndpointResolver<Params>> ) -> &mut Self

Sets the endpoint resolver to use when making requests.

When unset, the client will used a generated endpoint resolver based on the endpoint resolution rules for aws_sdk_dynamodb.

source

pub fn retry_config(self, retry_config: RetryConfig) -> Self

Set the retry_config for the builder

Examples
use aws_sdk_dynamodb::config::Config;
use aws_sdk_dynamodb::config::retry::RetryConfig;

let retry_config = RetryConfig::standard().with_max_attempts(5);
let config = Config::builder().retry_config(retry_config).build();
source

pub fn set_retry_config( &mut self, retry_config: Option<RetryConfig> ) -> &mut Self

Set the retry_config for the builder

Examples
use aws_sdk_dynamodb::config::{Builder, Config};
use aws_sdk_dynamodb::config::retry::RetryConfig;

fn disable_retries(builder: &mut Builder) {
    let retry_config = RetryConfig::standard().with_max_attempts(1);
    builder.set_retry_config(Some(retry_config));
}

let mut builder = Config::builder();
disable_retries(&mut builder);
let config = builder.build();
source

pub fn sleep_impl(self, sleep_impl: SharedAsyncSleep) -> Self

Set the sleep_impl for the builder

Examples
use aws_sdk_dynamodb::config::{AsyncSleep, Config, SharedAsyncSleep, Sleep};

#[derive(Debug)]
pub struct ForeverSleep;

impl AsyncSleep for ForeverSleep {
    fn sleep(&self, duration: std::time::Duration) -> Sleep {
        Sleep::new(std::future::pending())
    }
}

let sleep_impl = SharedAsyncSleep::new(ForeverSleep);
let config = Config::builder().sleep_impl(sleep_impl).build();
source

pub fn set_sleep_impl( &mut self, sleep_impl: Option<SharedAsyncSleep> ) -> &mut Self

Set the sleep_impl for the builder

Examples
use aws_sdk_dynamodb::config::{AsyncSleep, Builder, Config, SharedAsyncSleep, Sleep};

#[derive(Debug)]
pub struct ForeverSleep;

impl AsyncSleep for ForeverSleep {
    fn sleep(&self, duration: std::time::Duration) -> Sleep {
        Sleep::new(std::future::pending())
    }
}

fn set_never_ending_sleep_impl(builder: &mut Builder) {
    let sleep_impl = SharedAsyncSleep::new(ForeverSleep);
    builder.set_sleep_impl(Some(sleep_impl));
}

let mut builder = Config::builder();
set_never_ending_sleep_impl(&mut builder);
let config = builder.build();
source

pub fn timeout_config(self, timeout_config: TimeoutConfig) -> Self

Set the timeout_config for the builder

Examples
use aws_sdk_dynamodb::config::Config;
use aws_sdk_dynamodb::config::timeout::TimeoutConfig;

let timeout_config = TimeoutConfig::builder()
    .operation_attempt_timeout(Duration::from_secs(1))
    .build();
let config = Config::builder().timeout_config(timeout_config).build();
source

pub fn set_timeout_config( &mut self, timeout_config: Option<TimeoutConfig> ) -> &mut Self

Set the timeout_config for the builder

Examples
use aws_sdk_dynamodb::config::{Builder, Config};
use aws_sdk_dynamodb::config::timeout::TimeoutConfig;

fn set_request_timeout(builder: &mut Builder) {
    let timeout_config = TimeoutConfig::builder()
        .operation_attempt_timeout(Duration::from_secs(1))
        .build();
    builder.set_timeout_config(Some(timeout_config));
}

let mut builder = Config::builder();
set_request_timeout(&mut builder);
let config = builder.build();
source

pub fn interceptor(self, interceptor: impl Interceptor + 'static) -> Self

Add an Interceptor that runs at specific stages of the request execution pipeline.

Interceptors targeted at a certain stage are executed according to the pre-defined priority. The SDK provides a default set of interceptors. An interceptor configured by this method will run after those default interceptors.

Examples
use aws_smithy_runtime_api::client::interceptors::context::phase::BeforeTransmit;
use aws_smithy_runtime_api::client::interceptors::{Interceptor, InterceptorContext};
use aws_smithy_types::config_bag::ConfigBag;
use aws_sdk_dynamodb::config::Config;

fn base_url() -> String {
    // ...
}

#[derive(Debug)]
pub struct UriModifierInterceptor;
impl Interceptor for UriModifierInterceptor {
    fn modify_before_signing(
        &self,
        context: &mut InterceptorContext<BeforeTransmit>,
        _cfg: &mut ConfigBag,
    ) -> Result<(), aws_smithy_runtime_api::client::interceptors::BoxError> {
        let request = context.request_mut();
        let uri = format!("{}{}", base_url(), request.uri().path());
        *request.uri_mut() = uri.parse()?;

        Ok(())
    }
}

let config = Config::builder()
    .interceptor(UriModifierInterceptor)
    .build();
source

pub fn push_interceptor(&mut self, interceptor: SharedInterceptor) -> &mut Self

Add a SharedInterceptor that runs at specific stages of the request execution pipeline.

Interceptors targeted at a certain stage are executed according to the pre-defined priority. The SDK provides a default set of interceptors. An interceptor configured by this method will run after those default interceptors.

Examples
use aws_smithy_runtime_api::client::interceptors::context::phase::BeforeTransmit;
use aws_smithy_runtime_api::client::interceptors::{Interceptor, InterceptorContext, SharedInterceptor};
use aws_smithy_types::config_bag::ConfigBag;
use aws_sdk_dynamodb::config::{Builder, Config};

fn base_url() -> String {
    // ...
}

fn modify_request_uri(builder: &mut Builder) {
    #[derive(Debug)]
    pub struct UriModifierInterceptor;
    impl Interceptor for UriModifierInterceptor {
        fn modify_before_signing(
            &self,
            context: &mut InterceptorContext<BeforeTransmit>,
            _cfg: &mut ConfigBag,
        ) -> Result<(), aws_smithy_runtime_api::client::interceptors::BoxError> {
            let request = context.request_mut();
            let uri = format!("{}{}", base_url(), request.uri().path());
            *request.uri_mut() = uri.parse()?;

            Ok(())
        }
    }
    builder.push_interceptor(SharedInterceptor::new(UriModifierInterceptor));
}

let mut builder = Config::builder();
modify_request_uri(&mut builder);
let config = builder.build();
source

pub fn set_interceptors( &mut self, interceptors: impl IntoIterator<Item = SharedInterceptor> ) -> &mut Self

Set SharedInterceptors for the builder.

source

pub fn time_source(self, time_source: impl Into<SharedTimeSource>) -> Self

Sets the time source used for this service

source

pub fn set_time_source( &mut self, time_source: Option<SharedTimeSource> ) -> &mut Self

Sets the time source used for this service

source

pub fn app_name(self, app_name: AppName) -> Self

Sets the name of the app that is using the client.

This optional name is used to identify the application in the user agent that gets sent along with requests.

source

pub fn set_app_name(&mut self, app_name: Option<AppName>) -> &mut Self

Sets the name of the app that is using the client.

This optional name is used to identify the application in the user agent that gets sent along with requests.

source

pub fn invocation_id_generator( self, gen: impl InvocationIdGenerator + 'static ) -> Self

Overrides the default invocation ID generator.

The invocation ID generator generates ID values for the amz-sdk-invocation-id header. By default, this will be a random UUID. Overriding it may be useful in tests that examine the HTTP request and need to be deterministic.

source

pub fn set_invocation_id_generator( &mut self, gen: Option<SharedInvocationIdGenerator> ) -> &mut Self

Overrides the default invocation ID generator.

The invocation ID generator generates ID values for the amz-sdk-invocation-id header. By default, this will be a random UUID. Overriding it may be useful in tests that examine the HTTP request and need to be deterministic.

source

pub fn endpoint_url(self, endpoint_url: impl Into<String>) -> Self

Sets the endpoint URL used to communicate with this service Note: this is used in combination with other endpoint rules, e.g. an API that applies a host-label prefix will be prefixed onto this URL. To fully override the endpoint resolver, use Builder::endpoint_resolver.

source

pub fn set_endpoint_url(&mut self, endpoint_url: Option<String>) -> &mut Self

Sets the endpoint URL used to communicate with this service Note: this is used in combination with other endpoint rules, e.g. an API that applies a host-label prefix will be prefixed onto this URL. To fully override the endpoint resolver, use Builder::endpoint_resolver.

source

pub fn use_dual_stack(self, use_dual_stack: impl Into<bool>) -> Self

When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.

source

pub fn set_use_dual_stack(&mut self, use_dual_stack: Option<bool>) -> &mut Self

When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.

source

pub fn use_fips(self, use_fips: impl Into<bool>) -> Self

When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.

source

pub fn set_use_fips(&mut self, use_fips: Option<bool>) -> &mut Self

When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.

source

pub fn region(self, region: impl Into<Option<Region>>) -> Self

Sets the AWS region to use when making requests.

Examples
use aws_types::region::Region;
use aws_sdk_dynamodb::config::{Builder, Config};

let config = aws_sdk_dynamodb::Config::builder()
    .region(Region::new("us-east-1"))
    .build();
source

pub fn set_region(&mut self, region: Option<Region>) -> &mut Self

Sets the AWS region to use when making requests.

source

pub fn credentials_provider( self, credentials_provider: impl ProvideCredentials + 'static ) -> Self

Sets the credentials provider for this service

source

pub fn set_credentials_provider( &mut self, credentials_provider: Option<SharedCredentialsProvider> ) -> &mut Self

Sets the credentials provider for this service

source

pub fn credentials_cache(self, credentials_cache: CredentialsCache) -> Self

Sets the credentials cache for this service

source

pub fn set_credentials_cache( &mut self, credentials_cache: Option<CredentialsCache> ) -> &mut Self

Sets the credentials cache for this service

source

pub fn set_test_defaults(&mut self) -> &mut Self

Apply test defaults to the builder

source

pub fn with_test_defaults(self) -> Self

Apply test defaults to the builder

source

pub fn build(self) -> Config

Builds a Config.

Trait Implementations§

source§

impl Clone for Builder

source§

fn clone(&self) -> Builder

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Builder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Builder

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<&SdkConfig> for Builder

source§

fn from(input: &SdkConfig) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more