amazonka-1.3.3.1: Comprehensive Amazon Web Services SDK.

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

Network.AWS.Env

Contents

Description

Environment and AWS specific configuration for the AWS and AWST monads.

Synopsis

Creating the Environment

newEnv Source

Arguments

:: (Applicative m, MonadIO m, MonadCatch m) 
=> Region

Initial region to operate in.

-> 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 from HasEnv can be used to further configure the resulting Env.

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

See: newEnvWith.

newEnvWith Source

Arguments

:: (Applicative m, MonadIO m, MonadCatch m) 
=> Region

Initial region to operate in.

-> Credentials

Credential discovery mechanism.

-> Maybe Bool

Dictate if the instance is running on EC2. (Preload memoisation.)

-> Manager 
-> m Env 

See: newEnv

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

data Env Source

The environment containing the parameters required to make AWS requests.

class HasEnv a where Source

Minimal complete definition

environment

Methods

environment :: Lens' a Env Source

envRegion :: Lens' a Region Source

The current region.

envLogger :: Lens' a Logger Source

The function used to output log messages.

envRetryCheck :: Lens' a (Int -> HttpException -> Bool) Source

The function used to determine if an HttpException should be retried.

envOverride :: Lens' a (Dual (Endo Service)) Source

The currently applied overrides to all Service configuration.

envManager :: Lens' a Manager Source

The Manager used to create and manage open HTTP connections.

envAuth :: Lens' a Auth Source

The credentials used to sign requests for authentication with AWS.

envEC2 :: Getter a (IORef (Maybe Bool)) Source

A memoised predicate for whether the underlying host is an EC2 instance.

Instances

Overriding Default Configuration

override :: HasEnv a => (Service -> Service) -> a -> a Source

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

To override a specific service, it's suggested you use either configure or reconfigure with a modified version of the default service, such as Network.AWS.DynamoDB.dynamoDB.

configure :: HasEnv a => Service -> a -> a Source

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

It's suggested you use a modified version of the default service, such as Network.AWS.DynamoDB.dynamoDB.

See: reconfigure.

Scoped Actions

reconfigure :: (MonadReader r m, HasEnv r) => Service -> m a -> m a Source

Scope an action such that all requests belonging to the supplied service will use this configuration instead of the default.

It's suggested you use a modified version of the default service, such as Network.AWS.DynamoDB.dynamoDB.

See: configure.

within :: (MonadReader r m, HasEnv r) => Region -> m a -> m a Source

Scope an action within the specific Region.

once :: (MonadReader r m, HasEnv r) => m a -> m a Source

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

timeout :: (MonadReader r m, HasEnv r) => Seconds -> m a -> m a Source

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

Default timeouts are chosen by considering: