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 make_token(self, make_token: impl Into<IdempotencyTokenProvider>) -> Self

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

source

pub fn set_make_token( &mut self, make_token: Option<IdempotencyTokenProvider> ) -> &mut Self

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

source

pub fn endpoint_resolver( self, endpoint_resolver: impl ResolveEndpoint<Params> + 'static ) -> 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_workmail.

Examples
use aws_smithy_http::endpoint;
use aws_sdk_workmail::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_workmail::Config::builder().endpoint_resolver(prefix_resolver);
source

pub fn set_endpoint_resolver( &mut self, endpoint_resolver: Option<Arc<dyn ResolveEndpoint<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_workmail.

source

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

Set the retry_config for the builder

Examples
use aws_sdk_workmail::config::Config;
use aws_sdk_workmail::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_workmail::config::{Builder, Config};
use aws_sdk_workmail::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: Arc<dyn AsyncSleep>) -> Self

Set the sleep_impl for the builder

Examples
use aws_sdk_workmail::config::{AsyncSleep, Sleep, Config};

#[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 = std::sync::Arc::new(ForeverSleep);
let config = Config::builder().sleep_impl(sleep_impl).build();
source

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

Set the sleep_impl for the builder

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

#[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 = std::sync::Arc::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_workmail::config::Config;
use aws_sdk_workmail::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_workmail::config::{Builder, Config};
use aws_sdk_workmail::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 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 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 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_workmail::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 crate::sdk_config::{SdkConfig, Builder};
use aws_sdk_workmail::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_workmail::Config::builder();
override_http_connector(&mut builder);
let config = builder.build();
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_workmail::config::{Builder, Config};

let config = aws_sdk_workmail::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() -> Builder

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