libZSamazonkaZSamazonka
Copyright(c) 2013-2021 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay+amazonka@gmail.com>
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellNone

Amazonka.Env

Description

Environment and AWS specific configuration needed to perform AWS requests.

Synopsis

Creating the Environment

newEnv Source #

Arguments

:: MonadIO m 
=> Credentials

Credential discovery mechanism.

-> m Env 

Creates a new environment with a new Manager without debug logging and uses getAuth to expand/discover the supplied Credentials. Lenses can be used to further configure the resulting Env.

Since: 1.5.0 - The region is now retrieved from the AWS_REGION environment variable (identical to official SDKs), or defaults to us-east-1. You can override the Env region by using envRegion, or the current operation's region by using within.

Since: 1.3.6 - The default logic for retrying HttpExceptions now uses retryConnectionFailure to retry specific connection failure conditions up to 3 times. Previously only service specific errors were automatically retried. This can be reverted to the old behaviour by resetting the Env using envRetryCheck lens to (\_ _ -> False).

Throws AuthError when environment variables or IAM profiles cannot be read.

See: newEnvWith.

newEnvNoAuth :: MonadIO m => m EnvNoAuth Source #

Generate an environment without credentials, which may only make unsigned requests.

This is useful for the STS AssumeRoleWithWebIdentity operation, which needs to make an unsigned request to pass the token from an identity provider.

newEnvWith :: Manager -> EnvNoAuth Source #

Construct a default EnvNoAuth from a HTTP Manager.

data Env' withAuth Source #

The environment containing the parameters required to make AWS requests.

This type tracks whether or not we have credentials at the type level, to avoid "presigning" requests when we lack auth information.

Instances

Instances details
Generic (Env' withAuth) Source # 
Instance details

Defined in Amazonka.Auth

Associated Types

type Rep (Env' withAuth) :: Type -> Type #

Methods

from :: Env' withAuth -> Rep (Env' withAuth) x #

to :: Rep (Env' withAuth) x -> Env' withAuth #

type Rep (Env' withAuth) Source # 
Instance details

Defined in Amazonka.Auth

envAuthMaybe :: Foldable withAuth => Env' withAuth -> Maybe Auth Source #

Get "the" Auth from an Env', if we can.

Overriding Default Configuration

authenticate Source #

Arguments

:: (MonadIO m, Foldable withAuth) 
=> Credentials

Credential discovery mechanism.

-> Env' withAuth

Previous environment.

-> m Env 

See: newEnv

Throws AuthError when environment variables or IAM profiles cannot be read.

override :: (Service -> Service) -> Env -> Env Source #

Provide a function which will be added to the existing stack of overrides applied to all service configurations.

configure :: Service -> Env -> Env Source #

Configure a specific service. All requests belonging to the supplied service will use this configuration instead of the default.

It's suggested you modify the default service configuration, such as Amazonka.DynamoDB.dynamoDB.

Scoped Actions

within :: Region -> Env -> Env Source #

Scope an action within the specific Region.

once :: Env -> Env Source #

Scope an action such that any retry logic for the Service is ignored and any requests will at most be sent once.

timeout :: Seconds -> Env -> Env Source #

Scope an action such that any HTTP response will use this timeout value.

Default timeouts are chosen by considering:

Env Lenses

We provide lenses for Env', though you are of course free to use the generic-lens package.

envAuth :: Lens (Env' withAuth) (Env' withAuth') (withAuth Auth) (withAuth' Auth) Source #

Retry HTTP Exceptions

retryConnectionFailure :: Int -> Int -> HttpException -> Bool Source #

Retry the subset of transport specific errors encompassing connection failure up to the specific number of times.