amazonka-1.2.0: 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.

Instances

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 Override 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

newtype Override Source

An override function to apply to service configuration before use.

Constructors

Override 

Instances

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: