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 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 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 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_athena.

Examples
use aws_smithy_http::endpoint;
use aws_sdk_athena::endpoint::{Params as EndpointParams, DefaultResolver};
/// Endpoint resolver which adds a prefix to the generated endpoint
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_athena::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_athena.

source

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

Set the retry_config for the builder

Examples
use aws_sdk_athena::config::Config;
use aws_sdk_athena::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_athena::config::{Builder, Config};
use aws_sdk_athena::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_athena::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_athena::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_athena::config::Config;
use aws_sdk_athena::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_athena::config::{Builder, Config};
use aws_sdk_athena::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 aws_endpoint_resolver( self, endpoint_resolver: impl ResolveAwsEndpoint + 'static ) -> Self

👎Deprecated: use endpoint_url or set the endpoint resolver directly

Overrides the endpoint resolver to use when making requests.

This method is deprecated, use Builder::endpoint_url or Builder::endpoint_resolver instead.

When unset, the client will used a generated endpoint resolver based on the endpoint metadata for aws_sdk_athena.

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

let config = aws_sdk_athena::Config::builder()
    .endpoint_resolver(Endpoint::immutable("http://localhost:8080")?)
    .build();
source

pub fn set_aws_endpoint_resolver( &mut self, endpoint_resolver: Option<Arc<dyn ResolveAwsEndpoint>> ) -> &mut Self

👎Deprecated: use endpoint_url or set the endpoint resolver directly

Sets the endpoint resolver to use when making requests.

This method is deprecated, use Builder::endpoint_url or Builder::endpoint_resolver instead.

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 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 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_athena::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_athena::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_athena::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_athena::config::{Builder, Config};

let config = aws_sdk_athena::Config::builder()
    .region(Region::new("us-east-1"))
    .build();
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 build(self) -> Config

Builds a Config.

Trait Implementations§

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · 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>,

const: unstable · 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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · 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.
const: unstable · 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