Aws.Core

aws-0.14.0: Amazon Web Services (AWS) for Haskell

Safe Haskell | None
Language | Haskell2010

Aws.Core

Contents

- Logging
- Response
  - Metadata in responses
  - Response data consumers
  - Memory response
  - List response
  - Exception types
  - Response deconstruction helpers
    - XML
- Query
  - Expiration
  - Signature
  - Query construction helpers
- Transactions
- Credentials
- Service configuration
- HTTP types

Synopsis

- class Loggable a where
- data Response m a = Response {
  - responseMetadata :: m
  - responseResult :: Either SomeException a
  }
- readResponse :: MonadThrow n => Response m a -> n a
- readResponseIO :: MonadIO io => Response m a -> io a
- tellMetadata :: m -> Response m ()
- tellMetadataRef :: Monoid m => IORef m -> m -> IO ()
- mapMetadata :: (m -> n) -> Response m a -> Response n a
- type HTTPResponseConsumer a = Response (ResumableSource (ResourceT IO) ByteString) -> ResourceT IO a
- class Monoid (ResponseMetadata resp) => ResponseConsumer req resp where
  - type ResponseMetadata resp
- class AsMemoryResponse resp where
  - type MemoryResponse resp :: *
- class ListResponse resp item | resp -> item where
- newtype XmlException = XmlException {
  - xmlErrorMessage :: String
  }
- newtype HeaderException = HeaderException {
  - headerErrorMessage :: String
  }
- newtype FormException = FormException {
  - formErrorMesage :: String
  }
- newtype NoCredentialsException = NoCredentialsException {
  - noCredentialsErrorMessage :: String
  }
- readHex2 :: [Char] -> Maybe Word8
- elContent :: Text -> Cursor -> [Text]
- elCont :: Text -> Cursor -> [String]
- force :: MonadThrow m => String -> [a] -> m a
- forceM :: MonadThrow m => String -> [m a] -> m a
- textReadInt :: (MonadThrow m, Num a) => Text -> m a
- readInt :: (MonadThrow m, Num a) => String -> m a
- xmlCursorConsumer :: Monoid m => (Cursor -> Response m a) -> IORef m -> HTTPResponseConsumer a
- data SignedQuery = SignedQuery {
  - sqMethod :: !Method
  - sqProtocol :: !Protocol
  - sqHost :: !ByteString
  - sqPort :: !Int
  - sqPath :: !ByteString
  - sqQuery :: !Query
  - sqDate :: !(Maybe UTCTime)
  - sqAuthorization :: !(Maybe (IO ByteString))
  - sqContentType :: !(Maybe ByteString)
  - sqContentMd5 :: !(Maybe (Digest MD5))
  - sqAmzHeaders :: !RequestHeaders
  - sqOtherHeaders :: !RequestHeaders
  - sqBody :: !(Maybe RequestBody)
  - sqStringToSign :: !ByteString
  }
- data NormalQuery
- data UriOnlyQuery
- queryToHttpRequest :: SignedQuery -> IO Request
- queryToUri :: SignedQuery -> ByteString
- data TimeInfo
  - = Timestamp
  - | ExpiresAt {
    - fromExpiresAt :: UTCTime
    }
  - | ExpiresIn {
    - fromExpiresIn :: NominalDiffTime
    }
- data AbsoluteTimeInfo
  - = AbsoluteTimestamp {
    - fromAbsoluteTimestamp :: UTCTime
    }
  - | AbsoluteExpires {
    - fromAbsoluteExpires :: UTCTime
    }
- fromAbsoluteTimeInfo :: AbsoluteTimeInfo -> UTCTime
- makeAbsoluteTimeInfo :: TimeInfo -> UTCTime -> AbsoluteTimeInfo
- data SignatureData = SignatureData {
  - signatureTimeInfo :: AbsoluteTimeInfo
  - signatureTime :: UTCTime
  - signatureCredentials :: Credentials
  }
- signatureData :: TimeInfo -> Credentials -> IO SignatureData
- class SignQuery request where
  - type ServiceConfiguration request :: * -> *
- data AuthorizationHash
  - = HmacSHA1
  - | HmacSHA256
- amzHash :: AuthorizationHash -> ByteString
- signature :: Credentials -> AuthorizationHash -> ByteString -> ByteString
- authorizationV4 :: SignatureData -> AuthorizationHash -> ByteString -> ByteString -> ByteString -> ByteString -> IO ByteString
- queryList :: (a -> [(ByteString, ByteString)]) -> ByteString -> [a] -> [(ByteString, ByteString)]
- awsBool :: Bool -> ByteString
- awsTrue :: ByteString
- awsFalse :: ByteString
- fmtTime :: String -> UTCTime -> ByteString
- fmtRfc822Time :: UTCTime -> ByteString
- rfc822Time :: String
- fmtAmzTime :: UTCTime -> ByteString
- fmtTimeEpochSeconds :: UTCTime -> ByteString
- parseHttpDate :: String -> Maybe UTCTime
- httpDate1 :: String
- textHttpDate :: UTCTime -> Text
- iso8601UtcDate :: String
- class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a
- class Transaction r a => IteratedTransaction r a | r -> a where
- data Credentials = Credentials {
  - accessKeyID :: ByteString
  - secretAccessKey :: ByteString
  - v4SigningKeys :: IORef [V4Key]
  - iamToken :: Maybe ByteString
  }
- makeCredentials :: MonadIO io => ByteString -> ByteString -> io Credentials
- credentialsDefaultFile :: MonadIO io => io (Maybe FilePath)
- credentialsDefaultKey :: Text
- loadCredentialsFromFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)
- loadCredentialsFromEnv :: MonadIO io => io (Maybe Credentials)
- loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials)
- loadCredentialsFromEnvOrFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)
- loadCredentialsFromEnvOrFileOrInstanceMetadata :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)
- loadCredentialsDefault :: MonadIO io => io (Maybe Credentials)
- class DefaultServiceConfiguration config where
- data Protocol
  - = HTTP
  - | HTTPS
- defaultPort :: Protocol -> Int
- data Method
  - = Head
  - | Get
  - | PostQuery
  - | Post
  - | Put
  - | Delete
- httpMethod :: Method -> Method

# Logging

class Loggable a where #

Types that can be logged (textually).

Minimal complete definition

toLogText

Methods

toLogText :: a -> Text #

Instances

Loggable DdbResponse # |
Methods toLogText :: DdbResponse -> Text #
Loggable IamMetadata # |
Methods toLogText :: IamMetadata -> Text #
Loggable S3Metadata # |
Methods toLogText :: S3Metadata -> Text #
Loggable SesMetadata # |
Methods toLogText :: SesMetadata -> Text #
Loggable SdbMetadata # |
Methods toLogText :: SdbMetadata -> Text #
Loggable SqsMetadata # |
Methods toLogText :: SqsMetadata -> Text #

# Response

## Metadata in responses

data Response m a #

A response with metadata. Can also contain an error response, or an internal error, via `Attempt`.

Response forms a Writer-like monad.

Constructors

Response |
Fields responseMetadata :: m responseResult :: Either SomeException a

Instances

Monoid m => Monad (Response m) # |
Methods (>>=) :: Response m a -> (a -> Response m b) -> Response m b # (>>) :: Response m a -> Response m b -> Response m b # return :: a -> Response m a # fail :: String -> Response m a #
Functor (Response m) # |
Methods fmap :: (a -> b) -> Response m a -> Response m b # (<$) :: a -> Response m b -> Response m a #
Monoid m => Applicative (Response m) # |
Methods pure :: a -> Response m a # (<*>) :: Response m (a -> b) -> Response m a -> Response m b # (*>) :: Response m a -> Response m b -> Response m b # (<*) :: Response m a -> Response m b -> Response m a #
Monoid m => MonadThrow (Response m) # |
Methods throwM :: Exception e => e -> Response m a #
(Show m, Show a) => Show (Response m a) # |
Methods showsPrec :: Int -> Response m a -> ShowS # show :: Response m a -> String # showList :: [Response m a] -> ShowS #

readResponse :: MonadThrow n => Response m a -> n a #

Read a response result (if it's a success response, fail otherwise).

readResponseIO :: MonadIO io => Response m a -> io a #

Read a response result (if it's a success response, fail otherwise). In MonadIO.

tellMetadata :: m -> Response m () #

An empty response with some metadata.

tellMetadataRef :: Monoid m => IORef m -> m -> IO () #

Add metadata to an `IORef` (using `mappend`).

mapMetadata :: (m -> n) -> Response m a -> Response n a #

Apply a function to the metadata.

## Response data consumers

type HTTPResponseConsumer a = Response (ResumableSource (ResourceT IO) ByteString) -> ResourceT IO a #

A full HTTP response parser. Takes HTTP status, response headers, and response body.

class Monoid (ResponseMetadata resp) => ResponseConsumer req resp where #

Class for types that AWS HTTP responses can be parsed into.

The request is also passed for possibly required additional metadata.

Note that for debugging, there is an instance for `ByteString`.

Minimal complete definition

responseConsumer

Associated Types

type ResponseMetadata resp #

Metadata associated with a response. Typically there is one metadata type for each AWS service.

Methods

responseConsumer :: req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp #

Response parser. Takes the corresponding request, an `IORef` for metadata, and HTTP response data.

Instances

ResponseConsumer r DeleteItemResponse # |
Associated Types type ResponseMetadata DeleteItemResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteItemResponse) -> HTTPResponseConsumer DeleteItemResponse #
ResponseConsumer r GetItemResponse # |
Associated Types type ResponseMetadata GetItemResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetItemResponse) -> HTTPResponseConsumer GetItemResponse #
ResponseConsumer r PutItemResponse # |
Associated Types type ResponseMetadata PutItemResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata PutItemResponse) -> HTTPResponseConsumer PutItemResponse #
ResponseConsumer r QueryResponse # |
Associated Types type ResponseMetadata QueryResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata QueryResponse) -> HTTPResponseConsumer QueryResponse #
ResponseConsumer r ScanResponse # |
Associated Types type ResponseMetadata ScanResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ScanResponse) -> HTTPResponseConsumer ScanResponse #
ResponseConsumer r ListTablesResult # |
Associated Types type ResponseMetadata ListTablesResult :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ListTablesResult) -> HTTPResponseConsumer ListTablesResult #
ResponseConsumer r DeleteTableResult # |
Associated Types type ResponseMetadata DeleteTableResult :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteTableResult) -> HTTPResponseConsumer DeleteTableResult #
ResponseConsumer r UpdateTableResult # |
Associated Types type ResponseMetadata UpdateTableResult :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata UpdateTableResult) -> HTTPResponseConsumer UpdateTableResult #
ResponseConsumer r DescribeTableResult # |
Associated Types type ResponseMetadata DescribeTableResult :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DescribeTableResult) -> HTTPResponseConsumer DescribeTableResult #
ResponseConsumer r CreateTableResult # |
Associated Types type ResponseMetadata CreateTableResult :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata CreateTableResult) -> HTTPResponseConsumer CreateTableResult #
ResponseConsumer r UpdateItemResponse # |
Associated Types type ResponseMetadata UpdateItemResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata UpdateItemResponse) -> HTTPResponseConsumer UpdateItemResponse #
ResponseConsumer r GetBucketResponse # |
Associated Types type ResponseMetadata GetBucketResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetBucketResponse) -> HTTPResponseConsumer GetBucketResponse #
ResponseConsumer r GetBucketLocationResponse # |
Associated Types type ResponseMetadata GetBucketLocationResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetBucketLocationResponse) -> HTTPResponseConsumer GetBucketLocationResponse #
ResponseConsumer r GetServiceResponse # |
Associated Types type ResponseMetadata GetServiceResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetServiceResponse) -> HTTPResponseConsumer GetServiceResponse #
ResponseConsumer r PutBucketResponse # |
Associated Types type ResponseMetadata PutBucketResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata PutBucketResponse) -> HTTPResponseConsumer PutBucketResponse #
ResponseConsumer r BatchDeleteAttributesResponse # |
Associated Types type ResponseMetadata BatchDeleteAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata BatchDeleteAttributesResponse) -> HTTPResponseConsumer BatchDeleteAttributesResponse #
ResponseConsumer r BatchPutAttributesResponse # |
Associated Types type ResponseMetadata BatchPutAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata BatchPutAttributesResponse) -> HTTPResponseConsumer BatchPutAttributesResponse #
ResponseConsumer r DeleteAttributesResponse # |
Associated Types type ResponseMetadata DeleteAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteAttributesResponse) -> HTTPResponseConsumer DeleteAttributesResponse #
ResponseConsumer r PutAttributesResponse # |
Associated Types type ResponseMetadata PutAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata PutAttributesResponse) -> HTTPResponseConsumer PutAttributesResponse #
ResponseConsumer r GetAttributesResponse # |
Associated Types type ResponseMetadata GetAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetAttributesResponse) -> HTTPResponseConsumer GetAttributesResponse #
ResponseConsumer r ListDomainsResponse # |
Associated Types type ResponseMetadata ListDomainsResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ListDomainsResponse) -> HTTPResponseConsumer ListDomainsResponse #
ResponseConsumer r DomainMetadataResponse # |
Associated Types type ResponseMetadata DomainMetadataResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DomainMetadataResponse) -> HTTPResponseConsumer DomainMetadataResponse #
ResponseConsumer r DeleteDomainResponse # |
Associated Types type ResponseMetadata DeleteDomainResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteDomainResponse) -> HTTPResponseConsumer DeleteDomainResponse #
ResponseConsumer r CreateDomainResponse # |
Associated Types type ResponseMetadata CreateDomainResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata CreateDomainResponse) -> HTTPResponseConsumer CreateDomainResponse #
ResponseConsumer r SelectResponse # |
Associated Types type ResponseMetadata SelectResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata SelectResponse) -> HTTPResponseConsumer SelectResponse #
ResponseConsumer r ChangeMessageVisibilityResponse # |
Associated Types type ResponseMetadata ChangeMessageVisibilityResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ChangeMessageVisibilityResponse) -> HTTPResponseConsumer ChangeMessageVisibilityResponse #
ResponseConsumer r ReceiveMessageResponse # |
Associated Types type ResponseMetadata ReceiveMessageResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ReceiveMessageResponse) -> HTTPResponseConsumer ReceiveMessageResponse #
ResponseConsumer r DeleteMessageResponse # |
Associated Types type ResponseMetadata DeleteMessageResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteMessageResponse) -> HTTPResponseConsumer DeleteMessageResponse #
ResponseConsumer r SendMessageResponse # |
Associated Types type ResponseMetadata SendMessageResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata SendMessageResponse) -> HTTPResponseConsumer SendMessageResponse #
ResponseConsumer r RemovePermissionResponse # |
Associated Types type ResponseMetadata RemovePermissionResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata RemovePermissionResponse) -> HTTPResponseConsumer RemovePermissionResponse #
ResponseConsumer r AddPermissionResponse # |
Associated Types type ResponseMetadata AddPermissionResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata AddPermissionResponse) -> HTTPResponseConsumer AddPermissionResponse #
ResponseConsumer r ListQueuesResponse # |
Associated Types type ResponseMetadata ListQueuesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata ListQueuesResponse) -> HTTPResponseConsumer ListQueuesResponse #
ResponseConsumer r DeleteQueueResponse # |
Associated Types type ResponseMetadata DeleteQueueResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata DeleteQueueResponse) -> HTTPResponseConsumer DeleteQueueResponse #
ResponseConsumer r CreateQueueResponse # |
Associated Types type ResponseMetadata CreateQueueResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata CreateQueueResponse) -> HTTPResponseConsumer CreateQueueResponse #
ResponseConsumer r SetQueueAttributesResponse # |
Associated Types type ResponseMetadata SetQueueAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata SetQueueAttributesResponse) -> HTTPResponseConsumer SetQueueAttributesResponse #
ResponseConsumer r GetQueueAttributesResponse # |
Associated Types type ResponseMetadata GetQueueAttributesResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata GetQueueAttributesResponse) -> HTTPResponseConsumer GetQueueAttributesResponse #
ResponseConsumer r AbortMultipartUploadResponse # |
Associated Types type ResponseMetadata AbortMultipartUploadResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata AbortMultipartUploadResponse) -> HTTPResponseConsumer AbortMultipartUploadResponse #
ResponseConsumer r CompleteMultipartUploadResponse # |
Associated Types type ResponseMetadata CompleteMultipartUploadResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata CompleteMultipartUploadResponse) -> HTTPResponseConsumer CompleteMultipartUploadResponse #
ResponseConsumer r InitiateMultipartUploadResponse # |
Associated Types type ResponseMetadata InitiateMultipartUploadResponse :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata InitiateMultipartUploadResponse) -> HTTPResponseConsumer InitiateMultipartUploadResponse #
ResponseConsumer CreateAccessKey CreateAccessKeyResponse # |
Associated Types type ResponseMetadata CreateAccessKeyResponse :: * # Methods responseConsumer :: CreateAccessKey -> IORef (ResponseMetadata CreateAccessKeyResponse) -> HTTPResponseConsumer CreateAccessKeyResponse #
ResponseConsumer CreateUser CreateUserResponse # |
Associated Types type ResponseMetadata CreateUserResponse :: * # Methods responseConsumer :: CreateUser -> IORef (ResponseMetadata CreateUserResponse) -> HTTPResponseConsumer CreateUserResponse #
ResponseConsumer DeleteAccessKey DeleteAccessKeyResponse # |
Associated Types type ResponseMetadata DeleteAccessKeyResponse :: * # Methods responseConsumer :: DeleteAccessKey -> IORef (ResponseMetadata DeleteAccessKeyResponse) -> HTTPResponseConsumer DeleteAccessKeyResponse #
ResponseConsumer DeleteUser DeleteUserResponse # |
Associated Types type ResponseMetadata DeleteUserResponse :: * # Methods responseConsumer :: DeleteUser -> IORef (ResponseMetadata DeleteUserResponse) -> HTTPResponseConsumer DeleteUserResponse #
ResponseConsumer DeleteUserPolicy DeleteUserPolicyResponse # |
Associated Types type ResponseMetadata DeleteUserPolicyResponse :: * # Methods responseConsumer :: DeleteUserPolicy -> IORef (ResponseMetadata DeleteUserPolicyResponse) -> HTTPResponseConsumer DeleteUserPolicyResponse #
ResponseConsumer GetUser GetUserResponse # |
Associated Types type ResponseMetadata GetUserResponse :: * # Methods responseConsumer :: GetUser -> IORef (ResponseMetadata GetUserResponse) -> HTTPResponseConsumer GetUserResponse #
ResponseConsumer GetUserPolicy GetUserPolicyResponse # |
Associated Types type ResponseMetadata GetUserPolicyResponse :: * # Methods responseConsumer :: GetUserPolicy -> IORef (ResponseMetadata GetUserPolicyResponse) -> HTTPResponseConsumer GetUserPolicyResponse #
ResponseConsumer ListAccessKeys ListAccessKeysResponse # |
Associated Types type ResponseMetadata ListAccessKeysResponse :: * # Methods responseConsumer :: ListAccessKeys -> IORef (ResponseMetadata ListAccessKeysResponse) -> HTTPResponseConsumer ListAccessKeysResponse #
ResponseConsumer ListMfaDevices ListMfaDevicesResponse # |
Associated Types type ResponseMetadata ListMfaDevicesResponse :: * # Methods responseConsumer :: ListMfaDevices -> IORef (ResponseMetadata ListMfaDevicesResponse) -> HTTPResponseConsumer ListMfaDevicesResponse #
ResponseConsumer ListUserPolicies ListUserPoliciesResponse # |
Associated Types type ResponseMetadata ListUserPoliciesResponse :: * # Methods responseConsumer :: ListUserPolicies -> IORef (ResponseMetadata ListUserPoliciesResponse) -> HTTPResponseConsumer ListUserPoliciesResponse #
ResponseConsumer ListUsers ListUsersResponse # |
Associated Types type ResponseMetadata ListUsersResponse :: * # Methods responseConsumer :: ListUsers -> IORef (ResponseMetadata ListUsersResponse) -> HTTPResponseConsumer ListUsersResponse #
ResponseConsumer PutUserPolicy PutUserPolicyResponse # |
Associated Types type ResponseMetadata PutUserPolicyResponse :: * # Methods responseConsumer :: PutUserPolicy -> IORef (ResponseMetadata PutUserPolicyResponse) -> HTTPResponseConsumer PutUserPolicyResponse #
ResponseConsumer UpdateAccessKey UpdateAccessKeyResponse # |
Associated Types type ResponseMetadata UpdateAccessKeyResponse :: * # Methods responseConsumer :: UpdateAccessKey -> IORef (ResponseMetadata UpdateAccessKeyResponse) -> HTTPResponseConsumer UpdateAccessKeyResponse #
ResponseConsumer UpdateUser UpdateUserResponse # |
Associated Types type ResponseMetadata UpdateUserResponse :: * # Methods responseConsumer :: UpdateUser -> IORef (ResponseMetadata UpdateUserResponse) -> HTTPResponseConsumer UpdateUserResponse #
ResponseConsumer CopyObject CopyObjectResponse # |
Associated Types type ResponseMetadata CopyObjectResponse :: * # Methods responseConsumer :: CopyObject -> IORef (ResponseMetadata CopyObjectResponse) -> HTTPResponseConsumer CopyObjectResponse #
ResponseConsumer DeleteBucket DeleteBucketResponse # |
Associated Types type ResponseMetadata DeleteBucketResponse :: * # Methods responseConsumer :: DeleteBucket -> IORef (ResponseMetadata DeleteBucketResponse) -> HTTPResponseConsumer DeleteBucketResponse #
ResponseConsumer DeleteObject DeleteObjectResponse # |
Associated Types type ResponseMetadata DeleteObjectResponse :: * # Methods responseConsumer :: DeleteObject -> IORef (ResponseMetadata DeleteObjectResponse) -> HTTPResponseConsumer DeleteObjectResponse #
ResponseConsumer DeleteObjects DeleteObjectsResponse # |
Associated Types type ResponseMetadata DeleteObjectsResponse :: * # Methods responseConsumer :: DeleteObjects -> IORef (ResponseMetadata DeleteObjectsResponse) -> HTTPResponseConsumer DeleteObjectsResponse #
ResponseConsumer GetObject GetObjectResponse # |
Associated Types type ResponseMetadata GetObjectResponse :: * # Methods responseConsumer :: GetObject -> IORef (ResponseMetadata GetObjectResponse) -> HTTPResponseConsumer GetObjectResponse #
ResponseConsumer HeadObject HeadObjectResponse # |
Associated Types type ResponseMetadata HeadObjectResponse :: * # Methods responseConsumer :: HeadObject -> IORef (ResponseMetadata HeadObjectResponse) -> HTTPResponseConsumer HeadObjectResponse #
ResponseConsumer PutObject PutObjectResponse # |
Associated Types type ResponseMetadata PutObjectResponse :: * # Methods responseConsumer :: PutObject -> IORef (ResponseMetadata PutObjectResponse) -> HTTPResponseConsumer PutObjectResponse #
ResponseConsumer SendRawEmail SendRawEmailResponse # |
Associated Types type ResponseMetadata SendRawEmailResponse :: * # Methods responseConsumer :: SendRawEmail -> IORef (ResponseMetadata SendRawEmailResponse) -> HTTPResponseConsumer SendRawEmailResponse #
ResponseConsumer ListIdentities ListIdentitiesResponse # |
Associated Types type ResponseMetadata ListIdentitiesResponse :: * # Methods responseConsumer :: ListIdentities -> IORef (ResponseMetadata ListIdentitiesResponse) -> HTTPResponseConsumer ListIdentitiesResponse #
ResponseConsumer VerifyEmailIdentity VerifyEmailIdentityResponse # |
Associated Types type ResponseMetadata VerifyEmailIdentityResponse :: * # Methods responseConsumer :: VerifyEmailIdentity -> IORef (ResponseMetadata VerifyEmailIdentityResponse) -> HTTPResponseConsumer VerifyEmailIdentityResponse #
ResponseConsumer VerifyDomainIdentity VerifyDomainIdentityResponse # |
Associated Types type ResponseMetadata VerifyDomainIdentityResponse :: * # Methods responseConsumer :: VerifyDomainIdentity -> IORef (ResponseMetadata VerifyDomainIdentityResponse) -> HTTPResponseConsumer VerifyDomainIdentityResponse #
ResponseConsumer VerifyDomainDkim VerifyDomainDkimResponse # |
Associated Types type ResponseMetadata VerifyDomainDkimResponse :: * # Methods responseConsumer :: VerifyDomainDkim -> IORef (ResponseMetadata VerifyDomainDkimResponse) -> HTTPResponseConsumer VerifyDomainDkimResponse #
ResponseConsumer DeleteIdentity DeleteIdentityResponse # |
Associated Types type ResponseMetadata DeleteIdentityResponse :: * # Methods responseConsumer :: DeleteIdentity -> IORef (ResponseMetadata DeleteIdentityResponse) -> HTTPResponseConsumer DeleteIdentityResponse #
ResponseConsumer GetIdentityDkimAttributes GetIdentityDkimAttributesResponse # |
Associated Types type ResponseMetadata GetIdentityDkimAttributesResponse :: * # Methods responseConsumer :: GetIdentityDkimAttributes -> IORef (ResponseMetadata GetIdentityDkimAttributesResponse) -> HTTPResponseConsumer GetIdentityDkimAttributesResponse #
ResponseConsumer GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse # |
Associated Types type ResponseMetadata GetIdentityNotificationAttributesResponse :: * # Methods responseConsumer :: GetIdentityNotificationAttributes -> IORef (ResponseMetadata GetIdentityNotificationAttributesResponse) -> HTTPResponseConsumer GetIdentityNotificationAttributesResponse #
ResponseConsumer GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse # |
Associated Types type ResponseMetadata GetIdentityVerificationAttributesResponse :: * # Methods responseConsumer :: GetIdentityVerificationAttributes -> IORef (ResponseMetadata GetIdentityVerificationAttributesResponse) -> HTTPResponseConsumer GetIdentityVerificationAttributesResponse #
ResponseConsumer SetIdentityNotificationTopic SetIdentityNotificationTopicResponse # |
Associated Types type ResponseMetadata SetIdentityNotificationTopicResponse :: * # Methods responseConsumer :: SetIdentityNotificationTopic -> IORef (ResponseMetadata SetIdentityNotificationTopicResponse) -> HTTPResponseConsumer SetIdentityNotificationTopicResponse #
ResponseConsumer SetIdentityDkimEnabled SetIdentityDkimEnabledResponse # |
Associated Types type ResponseMetadata SetIdentityDkimEnabledResponse :: * # Methods responseConsumer :: SetIdentityDkimEnabled -> IORef (ResponseMetadata SetIdentityDkimEnabledResponse) -> HTTPResponseConsumer SetIdentityDkimEnabledResponse #
ResponseConsumer SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse # |
Associated Types type ResponseMetadata SetIdentityFeedbackForwardingEnabledResponse :: * # Methods responseConsumer :: SetIdentityFeedbackForwardingEnabled -> IORef (ResponseMetadata SetIdentityFeedbackForwardingEnabledResponse) -> HTTPResponseConsumer SetIdentityFeedbackForwardingEnabledResponse #
ResponseConsumer UploadPart UploadPartResponse # |
Associated Types type ResponseMetadata UploadPartResponse :: * # Methods responseConsumer :: UploadPart -> IORef (ResponseMetadata UploadPartResponse) -> HTTPResponseConsumer UploadPartResponse #
ResponseConsumer r (Response ByteString) # | Does not parse response. For debugging.
Associated Types type ResponseMetadata (Response ByteString) :: * # Methods responseConsumer :: r -> IORef (ResponseMetadata (Response ByteString)) -> HTTPResponseConsumer (Response ByteString) #

## Memory response

class AsMemoryResponse resp where #

Class for responses that are fully loaded into memory

Minimal complete definition

loadToMemory

Associated Types

type MemoryResponse resp :: * #

Methods

loadToMemory :: resp -> ResourceT IO (MemoryResponse resp) #

Instances

AsMemoryResponse DeleteItemResponse # |
Associated Types type MemoryResponse DeleteItemResponse :: * # Methods loadToMemory :: DeleteItemResponse -> ResourceT IO (MemoryResponse DeleteItemResponse) #
AsMemoryResponse GetItemResponse # |
Associated Types type MemoryResponse GetItemResponse :: * # Methods loadToMemory :: GetItemResponse -> ResourceT IO (MemoryResponse GetItemResponse) #
AsMemoryResponse PutItemResponse # |
Associated Types type MemoryResponse PutItemResponse :: * # Methods loadToMemory :: PutItemResponse -> ResourceT IO (MemoryResponse PutItemResponse) #
AsMemoryResponse QueryResponse # |
Associated Types type MemoryResponse QueryResponse :: * # Methods loadToMemory :: QueryResponse -> ResourceT IO (MemoryResponse QueryResponse) #
AsMemoryResponse ScanResponse # |
Associated Types type MemoryResponse ScanResponse :: * # Methods loadToMemory :: ScanResponse -> ResourceT IO (MemoryResponse ScanResponse) #
AsMemoryResponse ListTablesResult # |
Associated Types type MemoryResponse ListTablesResult :: * # Methods loadToMemory :: ListTablesResult -> ResourceT IO (MemoryResponse ListTablesResult) #
AsMemoryResponse DeleteTableResult # |
Associated Types type MemoryResponse DeleteTableResult :: * # Methods loadToMemory :: DeleteTableResult -> ResourceT IO (MemoryResponse DeleteTableResult) #
AsMemoryResponse UpdateTableResult # |
Associated Types type MemoryResponse UpdateTableResult :: * # Methods loadToMemory :: UpdateTableResult -> ResourceT IO (MemoryResponse UpdateTableResult) #
AsMemoryResponse DescribeTableResult # |
Associated Types type MemoryResponse DescribeTableResult :: * # Methods loadToMemory :: DescribeTableResult -> ResourceT IO (MemoryResponse DescribeTableResult) #
AsMemoryResponse CreateTableResult # |
Associated Types type MemoryResponse CreateTableResult :: * # Methods loadToMemory :: CreateTableResult -> ResourceT IO (MemoryResponse CreateTableResult) #
AsMemoryResponse UpdateItemResponse # |
Associated Types type MemoryResponse UpdateItemResponse :: * # Methods loadToMemory :: UpdateItemResponse -> ResourceT IO (MemoryResponse UpdateItemResponse) #
AsMemoryResponse CreateAccessKeyResponse # |
Associated Types type MemoryResponse CreateAccessKeyResponse :: * # Methods loadToMemory :: CreateAccessKeyResponse -> ResourceT IO (MemoryResponse CreateAccessKeyResponse) #
AsMemoryResponse CreateUserResponse # |
Associated Types type MemoryResponse CreateUserResponse :: * # Methods loadToMemory :: CreateUserResponse -> ResourceT IO (MemoryResponse CreateUserResponse) #
AsMemoryResponse DeleteAccessKeyResponse # |
Associated Types type MemoryResponse DeleteAccessKeyResponse :: * # Methods loadToMemory :: DeleteAccessKeyResponse -> ResourceT IO (MemoryResponse DeleteAccessKeyResponse) #
AsMemoryResponse DeleteUserResponse # |
Associated Types type MemoryResponse DeleteUserResponse :: * # Methods loadToMemory :: DeleteUserResponse -> ResourceT IO (MemoryResponse DeleteUserResponse) #
AsMemoryResponse DeleteUserPolicyResponse # |
Associated Types type MemoryResponse DeleteUserPolicyResponse :: * # Methods loadToMemory :: DeleteUserPolicyResponse -> ResourceT IO (MemoryResponse DeleteUserPolicyResponse) #
AsMemoryResponse GetUserResponse # |
Associated Types type MemoryResponse GetUserResponse :: * # Methods loadToMemory :: GetUserResponse -> ResourceT IO (MemoryResponse GetUserResponse) #
AsMemoryResponse GetUserPolicyResponse # |
Associated Types type MemoryResponse GetUserPolicyResponse :: * # Methods loadToMemory :: GetUserPolicyResponse -> ResourceT IO (MemoryResponse GetUserPolicyResponse) #
AsMemoryResponse ListAccessKeysResponse # |
Associated Types type MemoryResponse ListAccessKeysResponse :: * # Methods loadToMemory :: ListAccessKeysResponse -> ResourceT IO (MemoryResponse ListAccessKeysResponse) #
AsMemoryResponse ListMfaDevicesResponse # |
Associated Types type MemoryResponse ListMfaDevicesResponse :: * # Methods loadToMemory :: ListMfaDevicesResponse -> ResourceT IO (MemoryResponse ListMfaDevicesResponse) #
AsMemoryResponse ListUserPoliciesResponse # |
Associated Types type MemoryResponse ListUserPoliciesResponse :: * # Methods loadToMemory :: ListUserPoliciesResponse -> ResourceT IO (MemoryResponse ListUserPoliciesResponse) #
AsMemoryResponse ListUsersResponse # |
Associated Types type MemoryResponse ListUsersResponse :: * # Methods loadToMemory :: ListUsersResponse -> ResourceT IO (MemoryResponse ListUsersResponse) #
AsMemoryResponse PutUserPolicyResponse # |
Associated Types type MemoryResponse PutUserPolicyResponse :: * # Methods loadToMemory :: PutUserPolicyResponse -> ResourceT IO (MemoryResponse PutUserPolicyResponse) #
AsMemoryResponse UpdateAccessKeyResponse # |
Associated Types type MemoryResponse UpdateAccessKeyResponse :: * # Methods loadToMemory :: UpdateAccessKeyResponse -> ResourceT IO (MemoryResponse UpdateAccessKeyResponse) #
AsMemoryResponse UpdateUserResponse # |
Associated Types type MemoryResponse UpdateUserResponse :: * # Methods loadToMemory :: UpdateUserResponse -> ResourceT IO (MemoryResponse UpdateUserResponse) #
AsMemoryResponse CopyObjectResponse # |
Associated Types type MemoryResponse CopyObjectResponse :: * # Methods loadToMemory :: CopyObjectResponse -> ResourceT IO (MemoryResponse CopyObjectResponse) #
AsMemoryResponse DeleteBucketResponse # |
Associated Types type MemoryResponse DeleteBucketResponse :: * # Methods loadToMemory :: DeleteBucketResponse -> ResourceT IO (MemoryResponse DeleteBucketResponse) #
AsMemoryResponse DeleteObjectResponse # |
Associated Types type MemoryResponse DeleteObjectResponse :: * # Methods loadToMemory :: DeleteObjectResponse -> ResourceT IO (MemoryResponse DeleteObjectResponse) #
AsMemoryResponse DeleteObjectsResponse # |
Associated Types type MemoryResponse DeleteObjectsResponse :: * # Methods loadToMemory :: DeleteObjectsResponse -> ResourceT IO (MemoryResponse DeleteObjectsResponse) #
AsMemoryResponse GetBucketResponse # |
Associated Types type MemoryResponse GetBucketResponse :: * # Methods loadToMemory :: GetBucketResponse -> ResourceT IO (MemoryResponse GetBucketResponse) #
AsMemoryResponse GetBucketLocationResponse # |
Associated Types type MemoryResponse GetBucketLocationResponse :: * # Methods loadToMemory :: GetBucketLocationResponse -> ResourceT IO (MemoryResponse GetBucketLocationResponse) #
AsMemoryResponse GetObjectResponse # |
Associated Types type MemoryResponse GetObjectResponse :: * # Methods loadToMemory :: GetObjectResponse -> ResourceT IO (MemoryResponse GetObjectResponse) #
AsMemoryResponse GetServiceResponse # |
Associated Types type MemoryResponse GetServiceResponse :: * # Methods loadToMemory :: GetServiceResponse -> ResourceT IO (MemoryResponse GetServiceResponse) #
AsMemoryResponse HeadObjectResponse # |
Associated Types type MemoryResponse HeadObjectResponse :: * # Methods loadToMemory :: HeadObjectResponse -> ResourceT IO (MemoryResponse HeadObjectResponse) #
AsMemoryResponse PutBucketResponse # |
Associated Types type MemoryResponse PutBucketResponse :: * # Methods loadToMemory :: PutBucketResponse -> ResourceT IO (MemoryResponse PutBucketResponse) #
AsMemoryResponse PutObjectResponse # |
Associated Types type MemoryResponse PutObjectResponse :: * # Methods loadToMemory :: PutObjectResponse -> ResourceT IO (MemoryResponse PutObjectResponse) #
AsMemoryResponse SendRawEmailResponse # |
Associated Types type MemoryResponse SendRawEmailResponse :: * # Methods loadToMemory :: SendRawEmailResponse -> ResourceT IO (MemoryResponse SendRawEmailResponse) #
AsMemoryResponse ListIdentitiesResponse # |
Associated Types type MemoryResponse ListIdentitiesResponse :: * # Methods loadToMemory :: ListIdentitiesResponse -> ResourceT IO (MemoryResponse ListIdentitiesResponse) #
AsMemoryResponse VerifyEmailIdentityResponse # |
Associated Types type MemoryResponse VerifyEmailIdentityResponse :: * # Methods loadToMemory :: VerifyEmailIdentityResponse -> ResourceT IO (MemoryResponse VerifyEmailIdentityResponse) #
AsMemoryResponse VerifyDomainIdentityResponse # |
Associated Types type MemoryResponse VerifyDomainIdentityResponse :: * # Methods loadToMemory :: VerifyDomainIdentityResponse -> ResourceT IO (MemoryResponse VerifyDomainIdentityResponse) #
AsMemoryResponse VerifyDomainDkimResponse # |
Associated Types type MemoryResponse VerifyDomainDkimResponse :: * # Methods loadToMemory :: VerifyDomainDkimResponse -> ResourceT IO (MemoryResponse VerifyDomainDkimResponse) #
AsMemoryResponse DeleteIdentityResponse # |
Associated Types type MemoryResponse DeleteIdentityResponse :: * # Methods loadToMemory :: DeleteIdentityResponse -> ResourceT IO (MemoryResponse DeleteIdentityResponse) #
AsMemoryResponse GetIdentityDkimAttributesResponse # |
Associated Types type MemoryResponse GetIdentityDkimAttributesResponse :: * # Methods loadToMemory :: GetIdentityDkimAttributesResponse -> ResourceT IO (MemoryResponse GetIdentityDkimAttributesResponse) #
AsMemoryResponse GetIdentityNotificationAttributesResponse # |
Associated Types type MemoryResponse GetIdentityNotificationAttributesResponse :: * # Methods loadToMemory :: GetIdentityNotificationAttributesResponse -> ResourceT IO (MemoryResponse GetIdentityNotificationAttributesResponse) #
AsMemoryResponse GetIdentityVerificationAttributesResponse # |
Associated Types type MemoryResponse GetIdentityVerificationAttributesResponse :: * # Methods loadToMemory :: GetIdentityVerificationAttributesResponse -> ResourceT IO (MemoryResponse GetIdentityVerificationAttributesResponse) #
AsMemoryResponse SetIdentityNotificationTopicResponse # |
Associated Types type MemoryResponse SetIdentityNotificationTopicResponse :: * # Methods loadToMemory :: SetIdentityNotificationTopicResponse -> ResourceT IO (MemoryResponse SetIdentityNotificationTopicResponse) #
AsMemoryResponse SetIdentityDkimEnabledResponse # |
Associated Types type MemoryResponse SetIdentityDkimEnabledResponse :: * # Methods loadToMemory :: SetIdentityDkimEnabledResponse -> ResourceT IO (MemoryResponse SetIdentityDkimEnabledResponse) #
AsMemoryResponse SetIdentityFeedbackForwardingEnabledResponse # |
Associated Types type MemoryResponse SetIdentityFeedbackForwardingEnabledResponse :: * # Methods loadToMemory :: SetIdentityFeedbackForwardingEnabledResponse -> ResourceT IO (MemoryResponse SetIdentityFeedbackForwardingEnabledResponse) #
AsMemoryResponse BatchDeleteAttributesResponse # |
Associated Types type MemoryResponse BatchDeleteAttributesResponse :: * # Methods loadToMemory :: BatchDeleteAttributesResponse -> ResourceT IO (MemoryResponse BatchDeleteAttributesResponse) #
AsMemoryResponse BatchPutAttributesResponse # |
Associated Types type MemoryResponse BatchPutAttributesResponse :: * # Methods loadToMemory :: BatchPutAttributesResponse -> ResourceT IO (MemoryResponse BatchPutAttributesResponse) #
AsMemoryResponse DeleteAttributesResponse # |
Associated Types type MemoryResponse DeleteAttributesResponse :: * # Methods loadToMemory :: DeleteAttributesResponse -> ResourceT IO (MemoryResponse DeleteAttributesResponse) #
AsMemoryResponse PutAttributesResponse # |
Associated Types type MemoryResponse PutAttributesResponse :: * # Methods loadToMemory :: PutAttributesResponse -> ResourceT IO (MemoryResponse PutAttributesResponse) #
AsMemoryResponse GetAttributesResponse # |
Associated Types type MemoryResponse GetAttributesResponse :: * # Methods loadToMemory :: GetAttributesResponse -> ResourceT IO (MemoryResponse GetAttributesResponse) #
AsMemoryResponse ListDomainsResponse # |
Associated Types type MemoryResponse ListDomainsResponse :: * # Methods loadToMemory :: ListDomainsResponse -> ResourceT IO (MemoryResponse ListDomainsResponse) #
AsMemoryResponse DomainMetadataResponse # |
Associated Types type MemoryResponse DomainMetadataResponse :: * # Methods loadToMemory :: DomainMetadataResponse -> ResourceT IO (MemoryResponse DomainMetadataResponse) #
AsMemoryResponse DeleteDomainResponse # |
Associated Types type MemoryResponse DeleteDomainResponse :: * # Methods loadToMemory :: DeleteDomainResponse -> ResourceT IO (MemoryResponse DeleteDomainResponse) #
AsMemoryResponse CreateDomainResponse # |
Associated Types type MemoryResponse CreateDomainResponse :: * # Methods loadToMemory :: CreateDomainResponse -> ResourceT IO (MemoryResponse CreateDomainResponse) #
AsMemoryResponse SelectResponse # |
Associated Types type MemoryResponse SelectResponse :: * # Methods loadToMemory :: SelectResponse -> ResourceT IO (MemoryResponse SelectResponse) #
AsMemoryResponse ChangeMessageVisibilityResponse # |
Associated Types type MemoryResponse ChangeMessageVisibilityResponse :: * # Methods loadToMemory :: ChangeMessageVisibilityResponse -> ResourceT IO (MemoryResponse ChangeMessageVisibilityResponse) #
AsMemoryResponse ReceiveMessageResponse # |
Associated Types type MemoryResponse ReceiveMessageResponse :: * # Methods loadToMemory :: ReceiveMessageResponse -> ResourceT IO (MemoryResponse ReceiveMessageResponse) #
AsMemoryResponse DeleteMessageResponse # |
Associated Types type MemoryResponse DeleteMessageResponse :: * # Methods loadToMemory :: DeleteMessageResponse -> ResourceT IO (MemoryResponse DeleteMessageResponse) #
AsMemoryResponse SendMessageResponse # |
Associated Types type MemoryResponse SendMessageResponse :: * # Methods loadToMemory :: SendMessageResponse -> ResourceT IO (MemoryResponse SendMessageResponse) #
AsMemoryResponse RemovePermissionResponse # |
Associated Types type MemoryResponse RemovePermissionResponse :: * # Methods loadToMemory :: RemovePermissionResponse -> ResourceT IO (MemoryResponse RemovePermissionResponse) #
AsMemoryResponse AddPermissionResponse # |
Associated Types type MemoryResponse AddPermissionResponse :: * # Methods loadToMemory :: AddPermissionResponse -> ResourceT IO (MemoryResponse AddPermissionResponse) #
AsMemoryResponse ListQueuesResponse # |
Associated Types type MemoryResponse ListQueuesResponse :: * # Methods loadToMemory :: ListQueuesResponse -> ResourceT IO (MemoryResponse ListQueuesResponse) #
AsMemoryResponse DeleteQueueResponse # |
Associated Types type MemoryResponse DeleteQueueResponse :: * # Methods loadToMemory :: DeleteQueueResponse -> ResourceT IO (MemoryResponse DeleteQueueResponse) #
AsMemoryResponse CreateQueueResponse # |
Associated Types type MemoryResponse CreateQueueResponse :: * # Methods loadToMemory :: CreateQueueResponse -> ResourceT IO (MemoryResponse CreateQueueResponse) #
AsMemoryResponse SetQueueAttributesResponse # |
Associated Types type MemoryResponse SetQueueAttributesResponse :: * # Methods loadToMemory :: SetQueueAttributesResponse -> ResourceT IO (MemoryResponse SetQueueAttributesResponse) #
AsMemoryResponse GetQueueAttributesResponse # |
Associated Types type MemoryResponse GetQueueAttributesResponse :: * # Methods loadToMemory :: GetQueueAttributesResponse -> ResourceT IO (MemoryResponse GetQueueAttributesResponse) #
AsMemoryResponse AbortMultipartUploadResponse # |
Associated Types type MemoryResponse AbortMultipartUploadResponse :: * # Methods loadToMemory :: AbortMultipartUploadResponse -> ResourceT IO (MemoryResponse AbortMultipartUploadResponse) #
AsMemoryResponse CompleteMultipartUploadResponse # |
Associated Types type MemoryResponse CompleteMultipartUploadResponse :: * # Methods loadToMemory :: CompleteMultipartUploadResponse -> ResourceT IO (MemoryResponse CompleteMultipartUploadResponse) #
AsMemoryResponse UploadPartResponse # |
Associated Types type MemoryResponse UploadPartResponse :: * # Methods loadToMemory :: UploadPartResponse -> ResourceT IO (MemoryResponse UploadPartResponse) #
AsMemoryResponse InitiateMultipartUploadResponse # |
Associated Types type MemoryResponse InitiateMultipartUploadResponse :: * # Methods loadToMemory :: InitiateMultipartUploadResponse -> ResourceT IO (MemoryResponse InitiateMultipartUploadResponse) #

## List response

class ListResponse resp item | resp -> item where #

Responses that have one main list in them, and perhaps some decoration.

Minimal complete definition

listResponse

Methods

listResponse :: resp -> [item] #

Instances

ListResponse QueryResponse Item # |
Methods listResponse :: QueryResponse -> [Item] #
ListResponse ScanResponse Item # |
Methods listResponse :: ScanResponse -> [Item] #
ListResponse GetBucketResponse ObjectInfo # |
Methods listResponse :: GetBucketResponse -> [ObjectInfo] #
ListResponse ListDomainsResponse Text # |
Methods listResponse :: ListDomainsResponse -> [Text] #
ListResponse SelectResponse (Item [Attribute Text]) # |
Methods listResponse :: SelectResponse -> [Item [Attribute Text]] #

## Exception types

newtype XmlException #

An error that occurred during XML parsing / validation.

Constructors

XmlException |
Fields xmlErrorMessage :: String

Instances

Show XmlException # |
Methods showsPrec :: Int -> XmlException -> ShowS # show :: XmlException -> String # showList :: [XmlException] -> ShowS #
Exception XmlException # |
Methods toException :: XmlException -> SomeException # fromException :: SomeException -> Maybe XmlException # displayException :: XmlException -> String #

newtype HeaderException #

An error that occurred during header parsing / validation.

Constructors

HeaderException |
Fields headerErrorMessage :: String

Instances

Show HeaderException # |
Methods showsPrec :: Int -> HeaderException -> ShowS # show :: HeaderException -> String # showList :: [HeaderException] -> ShowS #
Exception HeaderException # |
Methods toException :: HeaderException -> SomeException # fromException :: SomeException -> Maybe HeaderException # displayException :: HeaderException -> String #

newtype FormException #

An error that occurred during form parsing / validation.

Constructors

FormException |
Fields formErrorMesage :: String

Instances

Show FormException # |
Methods showsPrec :: Int -> FormException -> ShowS # show :: FormException -> String # showList :: [FormException] -> ShowS #
Exception FormException # |
Methods toException :: FormException -> SomeException # fromException :: SomeException -> Maybe FormException # displayException :: FormException -> String #

newtype NoCredentialsException #

No credentials were found and an invariant was violated.

Constructors

NoCredentialsException |
Fields noCredentialsErrorMessage :: String

Instances

Show NoCredentialsException # |
Methods showsPrec :: Int -> NoCredentialsException -> ShowS # show :: NoCredentialsException -> String # showList :: [NoCredentialsException] -> ShowS #
Exception NoCredentialsException # |
Methods toException :: NoCredentialsException -> SomeException # fromException :: SomeException -> Maybe NoCredentialsException # displayException :: NoCredentialsException -> String #

## Response deconstruction helpers

readHex2 :: [Char] -> Maybe Word8 #

Parse a two-digit hex number.

### XML

elContent :: Text -> Cursor -> [Text] #

A specific element (case-insensitive, ignoring namespace - sadly necessary), extracting only the textual contents.

elCont :: Text -> Cursor -> [String] #

Like `elContent`, but extracts `String`s instead of `Text`.

force :: MonadThrow m => String -> [a] -> m a #

Extract the first element from a parser result list, and throw an `XmlException` if the list is empty.

forceM :: MonadThrow m => String -> [m a] -> m a #

Extract the first element from a monadic parser result list, and throw an `XmlException` if the list is empty.

textReadInt :: (MonadThrow m, Num a) => Text -> m a #

Read an integer from a `Text`, throwing an `XmlException` on failure.

readInt :: (MonadThrow m, Num a) => String -> m a #

Read an integer from a `String`, throwing an `XmlException` on failure.

xmlCursorConsumer :: Monoid m => (Cursor -> Response m a) -> IORef m -> HTTPResponseConsumer a #

Create a complete `HTTPResponseConsumer` from a simple function that takes a `Cursor` to XML in the response body.

This function is highly recommended for any services that parse relatively short XML responses. (If status and response headers are required, simply take them as function parameters, and pass them through to this function.)

# Query

data SignedQuery #

A pre-signed medium-level request object.

Constructors

SignedQuery |
Fields sqMethod :: !Method Request method. sqProtocol :: !Protocol Protocol to be used. sqHost :: !ByteString HTTP host. sqPort :: !Int IP port. sqPath :: !ByteString HTTP path. sqQuery :: !Query Query string list (used with `Get` and `PostQuery`). sqDate :: !(Maybe UTCTime) Request date/time. sqAuthorization :: !(Maybe (IO ByteString)) Authorization string (if applicable), for `Authorization` header. See `authorizationV4` sqContentType :: !(Maybe ByteString) Request body content type. sqContentMd5 :: !(Maybe (Digest MD5)) Request body content MD5. sqAmzHeaders :: !RequestHeaders Additional Amazon "amz" headers. sqOtherHeaders :: !RequestHeaders Additional non-"amz" headers. sqBody :: !(Maybe RequestBody) Request body (used with `Post` and `Put`). sqStringToSign :: !ByteString String to sign. Note that the string is already signed, this is passed mostly for debugging purposes.

data NormalQuery #

Tag type for normal queries.

Instances

Default (DdbConfiguration NormalQuery) # |
Methods def :: DdbConfiguration NormalQuery #
DefaultServiceConfiguration (DdbConfiguration NormalQuery) # |
Methods defServiceConfig :: DdbConfiguration NormalQuery # debugServiceConfig :: DdbConfiguration NormalQuery #
DefaultServiceConfiguration (IamConfiguration NormalQuery) # |
Methods defServiceConfig :: IamConfiguration NormalQuery # debugServiceConfig :: IamConfiguration NormalQuery #
DefaultServiceConfiguration (S3Configuration NormalQuery) # |
Methods defServiceConfig :: S3Configuration NormalQuery # debugServiceConfig :: S3Configuration NormalQuery #
DefaultServiceConfiguration (SesConfiguration NormalQuery) # |
Methods defServiceConfig :: SesConfiguration NormalQuery # debugServiceConfig :: SesConfiguration NormalQuery #
DefaultServiceConfiguration (SdbConfiguration NormalQuery) # |
Methods defServiceConfig :: SdbConfiguration NormalQuery # debugServiceConfig :: SdbConfiguration NormalQuery #
DefaultServiceConfiguration (SqsConfiguration NormalQuery) # |
Methods defServiceConfig :: SqsConfiguration NormalQuery # debugServiceConfig :: SqsConfiguration NormalQuery #

data UriOnlyQuery #

Tag type for URI-only queries.

Instances

DefaultServiceConfiguration (IamConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: IamConfiguration UriOnlyQuery # debugServiceConfig :: IamConfiguration UriOnlyQuery #
DefaultServiceConfiguration (S3Configuration UriOnlyQuery) # |
Methods defServiceConfig :: S3Configuration UriOnlyQuery # debugServiceConfig :: S3Configuration UriOnlyQuery #
DefaultServiceConfiguration (SesConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SesConfiguration UriOnlyQuery # debugServiceConfig :: SesConfiguration UriOnlyQuery #
DefaultServiceConfiguration (SdbConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SdbConfiguration UriOnlyQuery # debugServiceConfig :: SdbConfiguration UriOnlyQuery #
DefaultServiceConfiguration (SqsConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SqsConfiguration UriOnlyQuery # debugServiceConfig :: SqsConfiguration UriOnlyQuery #

queryToHttpRequest :: SignedQuery -> IO Request #

Create a HTTP request from a `SignedQuery` object.

queryToUri :: SignedQuery -> ByteString #

Create a URI fro a `SignedQuery` object.

Unused / incompatible fields will be silently ignored.

## Expiration

data TimeInfo #

Whether to restrict the signature validity with a plain timestamp, or with explicit expiration (absolute or relative).

Constructors

Timestamp | Use a simple timestamp to let AWS check the request validity.
ExpiresAt | Let requests expire at a specific fixed time.
Fields fromExpiresAt :: UTCTime
ExpiresIn | Let requests expire a specific number of seconds after they were generated.
Fields fromExpiresIn :: NominalDiffTime

Instances

Show TimeInfo # |
Methods showsPrec :: Int -> TimeInfo -> ShowS # show :: TimeInfo -> String # showList :: [TimeInfo] -> ShowS #

data AbsoluteTimeInfo #

Like `TimeInfo`, but with all relative times replaced by absolute UTC.

Constructors

AbsoluteTimestamp |
Fields fromAbsoluteTimestamp :: UTCTime
AbsoluteExpires |
Fields fromAbsoluteExpires :: UTCTime

Instances

Show AbsoluteTimeInfo # |
Methods showsPrec :: Int -> AbsoluteTimeInfo -> ShowS # show :: AbsoluteTimeInfo -> String # showList :: [AbsoluteTimeInfo] -> ShowS #

fromAbsoluteTimeInfo :: AbsoluteTimeInfo -> UTCTime #

Just the UTC time value.

makeAbsoluteTimeInfo :: TimeInfo -> UTCTime -> AbsoluteTimeInfo #

Convert `TimeInfo` to `AbsoluteTimeInfo` given the current UTC time.

## Signature

data SignatureData #

Data that is always required for signing requests.

Constructors

SignatureData |
Fields signatureTimeInfo :: AbsoluteTimeInfo Expiration or timestamp. signatureTime :: UTCTime Current time. signatureCredentials :: Credentials Access credentials.

signatureData :: TimeInfo -> Credentials -> IO SignatureData #

Create signature data using the current system time.

class SignQuery request where #

A "signable" request object. Assembles together the Query, and signs it in one go.

Minimal complete definition

signQuery

Associated Types

type ServiceConfiguration request :: * -> * #

Additional information, like API endpoints and service-specific preferences.

Methods

signQuery :: request -> ServiceConfiguration request queryType -> SignatureData -> SignedQuery #

Create a `SignedQuery` from a request, additional `Info`, and `SignatureData`.

Instances

SignQuery DeleteItem # |
Associated Types type ServiceConfiguration DeleteItem :: * -> * # Methods signQuery :: DeleteItem -> ServiceConfiguration DeleteItem queryType -> SignatureData -> SignedQuery #
SignQuery GetItem # |
Associated Types type ServiceConfiguration GetItem :: * -> * # Methods signQuery :: GetItem -> ServiceConfiguration GetItem queryType -> SignatureData -> SignedQuery #
SignQuery PutItem # |
Associated Types type ServiceConfiguration PutItem :: * -> * # Methods signQuery :: PutItem -> ServiceConfiguration PutItem queryType -> SignatureData -> SignedQuery #
SignQuery Query # |
Associated Types type ServiceConfiguration Query :: * -> * # Methods signQuery :: Query -> ServiceConfiguration Query queryType -> SignatureData -> SignedQuery #
SignQuery Scan # |
Associated Types type ServiceConfiguration Scan :: * -> * # Methods signQuery :: Scan -> ServiceConfiguration Scan queryType -> SignatureData -> SignedQuery #
SignQuery ListTables # | ServiceConfiguration: `DdbConfiguration`
Associated Types type ServiceConfiguration ListTables :: * -> * # Methods signQuery :: ListTables -> ServiceConfiguration ListTables queryType -> SignatureData -> SignedQuery #
SignQuery DeleteTable # | ServiceConfiguration: `DdbConfiguration`
Associated Types type ServiceConfiguration DeleteTable :: * -> * # Methods signQuery :: DeleteTable -> ServiceConfiguration DeleteTable queryType -> SignatureData -> SignedQuery #
SignQuery UpdateTable # | ServiceConfiguration: `DdbConfiguration`
Associated Types type ServiceConfiguration UpdateTable :: * -> * # Methods signQuery :: UpdateTable -> ServiceConfiguration UpdateTable queryType -> SignatureData -> SignedQuery #
SignQuery DescribeTable # | ServiceConfiguration: `DdbConfiguration`
Associated Types type ServiceConfiguration DescribeTable :: * -> * # Methods signQuery :: DescribeTable -> ServiceConfiguration DescribeTable queryType -> SignatureData -> SignedQuery #
SignQuery CreateTable # | ServiceConfiguration: `DdbConfiguration`
Associated Types type ServiceConfiguration CreateTable :: * -> * # Methods signQuery :: CreateTable -> ServiceConfiguration CreateTable queryType -> SignatureData -> SignedQuery #
SignQuery UpdateItem # |
Associated Types type ServiceConfiguration UpdateItem :: * -> * # Methods signQuery :: UpdateItem -> ServiceConfiguration UpdateItem queryType -> SignatureData -> SignedQuery #
SignQuery CreateAccessKey # |
Associated Types type ServiceConfiguration CreateAccessKey :: * -> * # Methods signQuery :: CreateAccessKey -> ServiceConfiguration CreateAccessKey queryType -> SignatureData -> SignedQuery #
SignQuery CreateUser # |
Associated Types type ServiceConfiguration CreateUser :: * -> * # Methods signQuery :: CreateUser -> ServiceConfiguration CreateUser queryType -> SignatureData -> SignedQuery #
SignQuery DeleteAccessKey # |
Associated Types type ServiceConfiguration DeleteAccessKey :: * -> * # Methods signQuery :: DeleteAccessKey -> ServiceConfiguration DeleteAccessKey queryType -> SignatureData -> SignedQuery #
SignQuery DeleteUser # |
Associated Types type ServiceConfiguration DeleteUser :: * -> * # Methods signQuery :: DeleteUser -> ServiceConfiguration DeleteUser queryType -> SignatureData -> SignedQuery #
SignQuery DeleteUserPolicy # |
Associated Types type ServiceConfiguration DeleteUserPolicy :: * -> * # Methods signQuery :: DeleteUserPolicy -> ServiceConfiguration DeleteUserPolicy queryType -> SignatureData -> SignedQuery #
SignQuery GetUser # |
Associated Types type ServiceConfiguration GetUser :: * -> * # Methods signQuery :: GetUser -> ServiceConfiguration GetUser queryType -> SignatureData -> SignedQuery #
SignQuery GetUserPolicy # |
Associated Types type ServiceConfiguration GetUserPolicy :: * -> * # Methods signQuery :: GetUserPolicy -> ServiceConfiguration GetUserPolicy queryType -> SignatureData -> SignedQuery #
SignQuery ListAccessKeys # |
Associated Types type ServiceConfiguration ListAccessKeys :: * -> * # Methods signQuery :: ListAccessKeys -> ServiceConfiguration ListAccessKeys queryType -> SignatureData -> SignedQuery #
SignQuery ListMfaDevices # |
Associated Types type ServiceConfiguration ListMfaDevices :: * -> * # Methods signQuery :: ListMfaDevices -> ServiceConfiguration ListMfaDevices queryType -> SignatureData -> SignedQuery #
SignQuery ListUserPolicies # |
Associated Types type ServiceConfiguration ListUserPolicies :: * -> * # Methods signQuery :: ListUserPolicies -> ServiceConfiguration ListUserPolicies queryType -> SignatureData -> SignedQuery #
SignQuery ListUsers # |
Associated Types type ServiceConfiguration ListUsers :: * -> * # Methods signQuery :: ListUsers -> ServiceConfiguration ListUsers queryType -> SignatureData -> SignedQuery #
SignQuery PutUserPolicy # |
Associated Types type ServiceConfiguration PutUserPolicy :: * -> * # Methods signQuery :: PutUserPolicy -> ServiceConfiguration PutUserPolicy queryType -> SignatureData -> SignedQuery #
SignQuery UpdateAccessKey # |
Associated Types type ServiceConfiguration UpdateAccessKey :: * -> * # Methods signQuery :: UpdateAccessKey -> ServiceConfiguration UpdateAccessKey queryType -> SignatureData -> SignedQuery #
SignQuery UpdateUser # |
Associated Types type ServiceConfiguration UpdateUser :: * -> * # Methods signQuery :: UpdateUser -> ServiceConfiguration UpdateUser queryType -> SignatureData -> SignedQuery #
SignQuery CopyObject # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration CopyObject :: * -> * # Methods signQuery :: CopyObject -> ServiceConfiguration CopyObject queryType -> SignatureData -> SignedQuery #
SignQuery DeleteBucket # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration DeleteBucket :: * -> * # Methods signQuery :: DeleteBucket -> ServiceConfiguration DeleteBucket queryType -> SignatureData -> SignedQuery #
SignQuery DeleteObject # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration DeleteObject :: * -> * # Methods signQuery :: DeleteObject -> ServiceConfiguration DeleteObject queryType -> SignatureData -> SignedQuery #
SignQuery DeleteObjects # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration DeleteObjects :: * -> * # Methods signQuery :: DeleteObjects -> ServiceConfiguration DeleteObjects queryType -> SignatureData -> SignedQuery #
SignQuery GetBucket # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration GetBucket :: * -> * # Methods signQuery :: GetBucket -> ServiceConfiguration GetBucket queryType -> SignatureData -> SignedQuery #
SignQuery GetBucketLocation # |
Associated Types type ServiceConfiguration GetBucketLocation :: * -> * # Methods signQuery :: GetBucketLocation -> ServiceConfiguration GetBucketLocation queryType -> SignatureData -> SignedQuery #
SignQuery GetObject # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration GetObject :: * -> * # Methods signQuery :: GetObject -> ServiceConfiguration GetObject queryType -> SignatureData -> SignedQuery #
SignQuery GetService # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration GetService :: * -> * # Methods signQuery :: GetService -> ServiceConfiguration GetService queryType -> SignatureData -> SignedQuery #
SignQuery HeadObject # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration HeadObject :: * -> * # Methods signQuery :: HeadObject -> ServiceConfiguration HeadObject queryType -> SignatureData -> SignedQuery #
SignQuery PutBucket # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration PutBucket :: * -> * # Methods signQuery :: PutBucket -> ServiceConfiguration PutBucket queryType -> SignatureData -> SignedQuery #
SignQuery PutObject # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration PutObject :: * -> * # Methods signQuery :: PutObject -> ServiceConfiguration PutObject queryType -> SignatureData -> SignedQuery #
SignQuery SendRawEmail # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration SendRawEmail :: * -> * # Methods signQuery :: SendRawEmail -> ServiceConfiguration SendRawEmail queryType -> SignatureData -> SignedQuery #
SignQuery ListIdentities # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration ListIdentities :: * -> * # Methods signQuery :: ListIdentities -> ServiceConfiguration ListIdentities queryType -> SignatureData -> SignedQuery #
SignQuery VerifyEmailIdentity # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration VerifyEmailIdentity :: * -> * # Methods signQuery :: VerifyEmailIdentity -> ServiceConfiguration VerifyEmailIdentity queryType -> SignatureData -> SignedQuery #
SignQuery VerifyDomainIdentity # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration VerifyDomainIdentity :: * -> * # Methods signQuery :: VerifyDomainIdentity -> ServiceConfiguration VerifyDomainIdentity queryType -> SignatureData -> SignedQuery #
SignQuery VerifyDomainDkim # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration VerifyDomainDkim :: * -> * # Methods signQuery :: VerifyDomainDkim -> ServiceConfiguration VerifyDomainDkim queryType -> SignatureData -> SignedQuery #
SignQuery DeleteIdentity # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration DeleteIdentity :: * -> * # Methods signQuery :: DeleteIdentity -> ServiceConfiguration DeleteIdentity queryType -> SignatureData -> SignedQuery #
SignQuery GetIdentityDkimAttributes # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration GetIdentityDkimAttributes :: * -> * # Methods signQuery :: GetIdentityDkimAttributes -> ServiceConfiguration GetIdentityDkimAttributes queryType -> SignatureData -> SignedQuery #
SignQuery GetIdentityNotificationAttributes # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration GetIdentityNotificationAttributes :: * -> * # Methods signQuery :: GetIdentityNotificationAttributes -> ServiceConfiguration GetIdentityNotificationAttributes queryType -> SignatureData -> SignedQuery #
SignQuery GetIdentityVerificationAttributes # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration GetIdentityVerificationAttributes :: * -> * # Methods signQuery :: GetIdentityVerificationAttributes -> ServiceConfiguration GetIdentityVerificationAttributes queryType -> SignatureData -> SignedQuery #
SignQuery SetIdentityNotificationTopic # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration SetIdentityNotificationTopic :: * -> * # Methods signQuery :: SetIdentityNotificationTopic -> ServiceConfiguration SetIdentityNotificationTopic queryType -> SignatureData -> SignedQuery #
SignQuery SetIdentityDkimEnabled # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration SetIdentityDkimEnabled :: * -> * # Methods signQuery :: SetIdentityDkimEnabled -> ServiceConfiguration SetIdentityDkimEnabled queryType -> SignatureData -> SignedQuery #
SignQuery SetIdentityFeedbackForwardingEnabled # | ServiceConfiguration: `SesConfiguration`
Associated Types type ServiceConfiguration SetIdentityFeedbackForwardingEnabled :: * -> * # Methods signQuery :: SetIdentityFeedbackForwardingEnabled -> ServiceConfiguration SetIdentityFeedbackForwardingEnabled queryType -> SignatureData -> SignedQuery #
SignQuery BatchDeleteAttributes # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration BatchDeleteAttributes :: * -> * # Methods signQuery :: BatchDeleteAttributes -> ServiceConfiguration BatchDeleteAttributes queryType -> SignatureData -> SignedQuery #
SignQuery BatchPutAttributes # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration BatchPutAttributes :: * -> * # Methods signQuery :: BatchPutAttributes -> ServiceConfiguration BatchPutAttributes queryType -> SignatureData -> SignedQuery #
SignQuery DeleteAttributes # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration DeleteAttributes :: * -> * # Methods signQuery :: DeleteAttributes -> ServiceConfiguration DeleteAttributes queryType -> SignatureData -> SignedQuery #
SignQuery PutAttributes # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration PutAttributes :: * -> * # Methods signQuery :: PutAttributes -> ServiceConfiguration PutAttributes queryType -> SignatureData -> SignedQuery #
SignQuery GetAttributes # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration GetAttributes :: * -> * # Methods signQuery :: GetAttributes -> ServiceConfiguration GetAttributes queryType -> SignatureData -> SignedQuery #
SignQuery ListDomains # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration ListDomains :: * -> * # Methods signQuery :: ListDomains -> ServiceConfiguration ListDomains queryType -> SignatureData -> SignedQuery #
SignQuery DomainMetadata # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration DomainMetadata :: * -> * # Methods signQuery :: DomainMetadata -> ServiceConfiguration DomainMetadata queryType -> SignatureData -> SignedQuery #
SignQuery DeleteDomain # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration DeleteDomain :: * -> * # Methods signQuery :: DeleteDomain -> ServiceConfiguration DeleteDomain queryType -> SignatureData -> SignedQuery #
SignQuery CreateDomain # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration CreateDomain :: * -> * # Methods signQuery :: CreateDomain -> ServiceConfiguration CreateDomain queryType -> SignatureData -> SignedQuery #
SignQuery Select # | ServiceConfiguration: `SdbConfiguration`
Associated Types type ServiceConfiguration Select :: * -> * # Methods signQuery :: Select -> ServiceConfiguration Select queryType -> SignatureData -> SignedQuery #
SignQuery ChangeMessageVisibility # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration ChangeMessageVisibility :: * -> * # Methods signQuery :: ChangeMessageVisibility -> ServiceConfiguration ChangeMessageVisibility queryType -> SignatureData -> SignedQuery #
SignQuery ReceiveMessage # |
Associated Types type ServiceConfiguration ReceiveMessage :: * -> * # Methods signQuery :: ReceiveMessage -> ServiceConfiguration ReceiveMessage queryType -> SignatureData -> SignedQuery #
SignQuery DeleteMessage # |
Associated Types type ServiceConfiguration DeleteMessage :: * -> * # Methods signQuery :: DeleteMessage -> ServiceConfiguration DeleteMessage queryType -> SignatureData -> SignedQuery #
SignQuery SendMessage # |
Associated Types type ServiceConfiguration SendMessage :: * -> * # Methods signQuery :: SendMessage -> ServiceConfiguration SendMessage queryType -> SignatureData -> SignedQuery #
SignQuery RemovePermission # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration RemovePermission :: * -> * # Methods signQuery :: RemovePermission -> ServiceConfiguration RemovePermission queryType -> SignatureData -> SignedQuery #
SignQuery AddPermission # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration AddPermission :: * -> * # Methods signQuery :: AddPermission -> ServiceConfiguration AddPermission queryType -> SignatureData -> SignedQuery #
SignQuery ListQueues # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration ListQueues :: * -> * # Methods signQuery :: ListQueues -> ServiceConfiguration ListQueues queryType -> SignatureData -> SignedQuery #
SignQuery DeleteQueue # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration DeleteQueue :: * -> * # Methods signQuery :: DeleteQueue -> ServiceConfiguration DeleteQueue queryType -> SignatureData -> SignedQuery #
SignQuery CreateQueue # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration CreateQueue :: * -> * # Methods signQuery :: CreateQueue -> ServiceConfiguration CreateQueue queryType -> SignatureData -> SignedQuery #
SignQuery SetQueueAttributes # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration SetQueueAttributes :: * -> * # Methods signQuery :: SetQueueAttributes -> ServiceConfiguration SetQueueAttributes queryType -> SignatureData -> SignedQuery #
SignQuery GetQueueAttributes # | ServiceConfiguration: `SqsConfiguration`
Associated Types type ServiceConfiguration GetQueueAttributes :: * -> * # Methods signQuery :: GetQueueAttributes -> ServiceConfiguration GetQueueAttributes queryType -> SignatureData -> SignedQuery #
SignQuery AbortMultipartUpload # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration AbortMultipartUpload :: * -> * # Methods signQuery :: AbortMultipartUpload -> ServiceConfiguration AbortMultipartUpload queryType -> SignatureData -> SignedQuery #
SignQuery CompleteMultipartUpload # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration CompleteMultipartUpload :: * -> * # Methods signQuery :: CompleteMultipartUpload -> ServiceConfiguration CompleteMultipartUpload queryType -> SignatureData -> SignedQuery #
SignQuery UploadPart # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration UploadPart :: * -> * # Methods signQuery :: UploadPart -> ServiceConfiguration UploadPart queryType -> SignatureData -> SignedQuery #
SignQuery InitiateMultipartUpload # | ServiceConfiguration: `S3Configuration`
Associated Types type ServiceConfiguration InitiateMultipartUpload :: * -> * # Methods signQuery :: InitiateMultipartUpload -> ServiceConfiguration InitiateMultipartUpload queryType -> SignatureData -> SignedQuery #

data AuthorizationHash #

Supported crypto hashes for the signature.

Constructors

HmacSHA1 |
HmacSHA256 |

Instances

Show AuthorizationHash # |
Methods showsPrec :: Int -> AuthorizationHash -> ShowS # show :: AuthorizationHash -> String # showList :: [AuthorizationHash] -> ShowS #

amzHash :: AuthorizationHash -> ByteString #

Authorization hash identifier as expected by Amazon.

signature :: Credentials -> AuthorizationHash -> ByteString -> ByteString #

Create a signature. Usually, AWS wants a specifically constructed string to be signed.

The signature is a HMAC-based hash of the string and the secret access key.

authorizationV4 #

Arguments

:: SignatureData |
-> AuthorizationHash |
-> ByteString | region, e.g. us-east-1
-> ByteString | service, e.g. dynamodb
-> ByteString | SignedHeaders, e.g. content-type;host;x-amz-date;x-amz-target
-> ByteString | canonicalRequest (before hashing)
-> IO ByteString |

Use this to create the Authorization header to set into `sqAuthorization`. See http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html: you must create the canonical request as explained by Step 1 and this function takes care of Steps 2 and 3.

## Query construction helpers

queryList :: (a -> [(ByteString, ByteString)]) -> ByteString -> [a] -> [(ByteString, ByteString)] #

`queryList f prefix xs` constructs a query list from a list of elements `xs`, using a common prefix `prefix`, and a transformer function `f`.

A dot (`.`) is interspersed between prefix and generated key.

Example:

`queryList swap "pfx" [("a", "b"), ("c", "d")]` evaluates to `[("pfx.b", "a"), ("pfx.d", "c")]` (except with ByteString instead of String, of course).

awsBool :: Bool -> ByteString #

A "true"/"false" boolean as requested by some services.

awsTrue :: ByteString #

"true"

awsFalse :: ByteString #

"false"

fmtTime :: String -> UTCTime -> ByteString #

Format time according to a format string, as a ByteString.

fmtRfc822Time :: UTCTime -> ByteString #

Format time in RFC 822 format.

rfc822Time :: String #

fmtAmzTime :: UTCTime -> ByteString #

Format time in yyyy-mm-ddThh-mm-ss format.

fmtTimeEpochSeconds :: UTCTime -> ByteString #

Format time as seconds since the Unix epoch.

parseHttpDate :: String -> Maybe UTCTime #

Parse HTTP-date (section 3.3.1 of RFC 2616)

httpDate1 :: String #

HTTP-date (section 3.3.1 of RFC 2616, first type - RFC1123-style)

textHttpDate :: UTCTime -> Text #

Format (as Text) HTTP-date (section 3.3.1 of RFC 2616, first type - RFC1123-style)

iso8601UtcDate :: String #

# Transactions

class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a #

Associates a request type and a response type in a bi-directional way.

This allows the type-checker to infer the response type when given the request type and vice versa.

Note that the actual request generation and response parsing resides in `SignQuery` and `ResponseConsumer` respectively.

Instances

Transaction DeleteItem DeleteItemResponse # |
Transaction GetItem GetItemResponse # |
Transaction PutItem PutItemResponse # |
Transaction Query QueryResponse # |
Transaction Scan ScanResponse # |
Transaction ListTables ListTablesResult # |
Transaction DeleteTable DeleteTableResult # |
Transaction UpdateTable UpdateTableResult # |
Transaction DescribeTable DescribeTableResult # |
Transaction CreateTable CreateTableResult # |
Transaction UpdateItem UpdateItemResponse # |
Transaction CreateAccessKey CreateAccessKeyResponse # |
Transaction CreateUser CreateUserResponse # |
Transaction DeleteAccessKey DeleteAccessKeyResponse # |
Transaction DeleteUser DeleteUserResponse # |
Transaction DeleteUserPolicy DeleteUserPolicyResponse # |
Transaction GetUser GetUserResponse # |
Transaction GetUserPolicy GetUserPolicyResponse # |
Transaction ListAccessKeys ListAccessKeysResponse # |
Transaction ListMfaDevices ListMfaDevicesResponse # |
Transaction ListUserPolicies ListUserPoliciesResponse # |
Transaction ListUsers ListUsersResponse # |
Transaction PutUserPolicy PutUserPolicyResponse # |
Transaction UpdateAccessKey UpdateAccessKeyResponse # |
Transaction UpdateUser UpdateUserResponse # |
Transaction CopyObject CopyObjectResponse # |
Transaction DeleteBucket DeleteBucketResponse # |
Transaction DeleteObject DeleteObjectResponse # |
Transaction DeleteObjects DeleteObjectsResponse # |
Transaction GetBucket GetBucketResponse # |
Transaction GetBucketLocation GetBucketLocationResponse # |
Transaction GetObject GetObjectResponse # |
Transaction GetService GetServiceResponse # |
Transaction HeadObject HeadObjectResponse # |
Transaction PutBucket PutBucketResponse # |
Transaction PutObject PutObjectResponse # |
Transaction SendRawEmail SendRawEmailResponse # |
Transaction ListIdentities ListIdentitiesResponse # |
Transaction VerifyEmailIdentity VerifyEmailIdentityResponse # |
Transaction VerifyDomainIdentity VerifyDomainIdentityResponse # |
Transaction VerifyDomainDkim VerifyDomainDkimResponse # |
Transaction DeleteIdentity DeleteIdentityResponse # |
Transaction GetIdentityDkimAttributes GetIdentityDkimAttributesResponse # |
Transaction GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse # |
Transaction GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse # |
Transaction SetIdentityNotificationTopic SetIdentityNotificationTopicResponse # |
Transaction SetIdentityDkimEnabled SetIdentityDkimEnabledResponse # |
Transaction SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse # |
Transaction BatchDeleteAttributes BatchDeleteAttributesResponse # |
Transaction BatchPutAttributes BatchPutAttributesResponse # |
Transaction DeleteAttributes DeleteAttributesResponse # |
Transaction PutAttributes PutAttributesResponse # |
Transaction GetAttributes GetAttributesResponse # |
Transaction ListDomains ListDomainsResponse # |
Transaction DomainMetadata DomainMetadataResponse # |
Transaction DeleteDomain DeleteDomainResponse # |
Transaction CreateDomain CreateDomainResponse # |
Transaction Select SelectResponse # |
Transaction ChangeMessageVisibility ChangeMessageVisibilityResponse # |
Transaction ReceiveMessage ReceiveMessageResponse # |
Transaction DeleteMessage DeleteMessageResponse # |
Transaction SendMessage SendMessageResponse # |
Transaction RemovePermission RemovePermissionResponse # |
Transaction AddPermission AddPermissionResponse # |
Transaction ListQueues ListQueuesResponse # |
Transaction DeleteQueue DeleteQueueResponse # |
Transaction CreateQueue CreateQueueResponse # |
Transaction SetQueueAttributes SetQueueAttributesResponse # |
Transaction GetQueueAttributes GetQueueAttributesResponse # |
Transaction AbortMultipartUpload AbortMultipartUploadResponse # |
Transaction CompleteMultipartUpload CompleteMultipartUploadResponse # |
Transaction UploadPart UploadPartResponse # |
Transaction InitiateMultipartUpload InitiateMultipartUploadResponse # |

class Transaction r a => IteratedTransaction r a | r -> a where #

A transaction that may need to be split over multiple requests, for example because of upstream response size limits.

Minimal complete definition

nextIteratedRequest

Methods

nextIteratedRequest :: r -> a -> Maybe r #

Instances

IteratedTransaction Query QueryResponse # |
Methods nextIteratedRequest :: Query -> QueryResponse -> Maybe Query #
IteratedTransaction Scan ScanResponse # |
Methods nextIteratedRequest :: Scan -> ScanResponse -> Maybe Scan #
IteratedTransaction ListAccessKeys ListAccessKeysResponse # |
Methods nextIteratedRequest :: ListAccessKeys -> ListAccessKeysResponse -> Maybe ListAccessKeys #
IteratedTransaction ListMfaDevices ListMfaDevicesResponse # |
Methods nextIteratedRequest :: ListMfaDevices -> ListMfaDevicesResponse -> Maybe ListMfaDevices #
IteratedTransaction ListUserPolicies ListUserPoliciesResponse # |
Methods nextIteratedRequest :: ListUserPolicies -> ListUserPoliciesResponse -> Maybe ListUserPolicies #
IteratedTransaction ListUsers ListUsersResponse # |
Methods nextIteratedRequest :: ListUsers -> ListUsersResponse -> Maybe ListUsers #
IteratedTransaction GetBucket GetBucketResponse # |
Methods nextIteratedRequest :: GetBucket -> GetBucketResponse -> Maybe GetBucket #
IteratedTransaction ListDomains ListDomainsResponse # |
Methods nextIteratedRequest :: ListDomains -> ListDomainsResponse -> Maybe ListDomains #
IteratedTransaction Select SelectResponse # |
Methods nextIteratedRequest :: Select -> SelectResponse -> Maybe Select #

# Credentials

data Credentials #

AWS access credentials.

Constructors

Credentials |
Fields accessKeyID :: ByteString AWS Access Key ID. secretAccessKey :: ByteString AWS Secret Access Key. v4SigningKeys :: IORef [V4Key] Signing keys for signature version 4 iamToken :: Maybe ByteString Signed IAM token

Instances

Show Credentials # |
Methods showsPrec :: Int -> Credentials -> ShowS # show :: Credentials -> String # showList :: [Credentials] -> ShowS #

makeCredentials #

Arguments

:: MonadIO io |
=> ByteString | AWS Access Key ID
-> ByteString | AWS Secret Access Key
-> io Credentials |

credentialsDefaultFile :: MonadIO io => io (Maybe FilePath) #

The file where access credentials are loaded, when using `loadCredentialsDefault`. May return `Nothing` if `HOME` is unset.

Value: directory`/.aws-keys`

credentialsDefaultKey :: Text #

The key to be used in the access credential file that is loaded, when using `loadCredentialsDefault`.

Value: `default`

loadCredentialsFromFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials) #

Load credentials from a (text) file given a key name.

The file consists of a sequence of lines, each in the following format:

    keyName awsKeyID awsKeySecret

loadCredentialsFromEnv :: MonadIO io => io (Maybe Credentials) #

Load credentials from the environment variables `AWS_ACCESS_KEY_ID` and `AWS_ACCESS_KEY_SECRET` (or `AWS_SECRET_ACCESS_KEY`), if possible.

loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials) #

loadCredentialsFromEnvOrFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials) #

Load credentials from environment variables if possible, or alternatively from a file with a given key name.

See `loadCredentialsFromEnv` and `loadCredentialsFromFile` for details.

loadCredentialsFromEnvOrFileOrInstanceMetadata :: MonadIO io => FilePath -> Text -> io (Maybe Credentials) #

Load credentials from environment variables if possible, or alternatively from the instance metadata store, or alternatively from a file with a given key name.

See `loadCredentialsFromEnv`, `loadCredentialsFromFile` and `loadCredentialsFromInstanceMetadata` for details.

loadCredentialsDefault :: MonadIO io => io (Maybe Credentials) #

Load credentials from environment variables if possible, or alternative from the default file with the default key name.

Default file: directory`/.aws-keys` Default key name: `default`

See `loadCredentialsFromEnv` and `loadCredentialsFromFile` for details.

# Service configuration

class DefaultServiceConfiguration config where #

Default configuration for a specific service.

Minimal complete definition

defServiceConfig

Methods

defServiceConfig :: config #

Default service configuration.

debugServiceConfig :: config #

Default debugging-only configuration. (Normally using HTTP instead of HTTPS for easier debugging.)

Instances

DefaultServiceConfiguration (DdbConfiguration NormalQuery) # |
Methods defServiceConfig :: DdbConfiguration NormalQuery # debugServiceConfig :: DdbConfiguration NormalQuery #
DefaultServiceConfiguration (IamConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: IamConfiguration UriOnlyQuery # debugServiceConfig :: IamConfiguration UriOnlyQuery #
DefaultServiceConfiguration (IamConfiguration NormalQuery) # |
Methods defServiceConfig :: IamConfiguration NormalQuery # debugServiceConfig :: IamConfiguration NormalQuery #
DefaultServiceConfiguration (S3Configuration UriOnlyQuery) # |
Methods defServiceConfig :: S3Configuration UriOnlyQuery # debugServiceConfig :: S3Configuration UriOnlyQuery #
DefaultServiceConfiguration (S3Configuration NormalQuery) # |
Methods defServiceConfig :: S3Configuration NormalQuery # debugServiceConfig :: S3Configuration NormalQuery #
DefaultServiceConfiguration (SesConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SesConfiguration UriOnlyQuery # debugServiceConfig :: SesConfiguration UriOnlyQuery #
DefaultServiceConfiguration (SesConfiguration NormalQuery) # |
Methods defServiceConfig :: SesConfiguration NormalQuery # debugServiceConfig :: SesConfiguration NormalQuery #
DefaultServiceConfiguration (SdbConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SdbConfiguration UriOnlyQuery # debugServiceConfig :: SdbConfiguration UriOnlyQuery #
DefaultServiceConfiguration (SdbConfiguration NormalQuery) # |
Methods defServiceConfig :: SdbConfiguration NormalQuery # debugServiceConfig :: SdbConfiguration NormalQuery #
DefaultServiceConfiguration (SqsConfiguration UriOnlyQuery) # |
Methods defServiceConfig :: SqsConfiguration UriOnlyQuery # debugServiceConfig :: SqsConfiguration UriOnlyQuery #
DefaultServiceConfiguration (SqsConfiguration NormalQuery) # |
Methods defServiceConfig :: SqsConfiguration NormalQuery # debugServiceConfig :: SqsConfiguration NormalQuery #

# HTTP types

data Protocol #

Protocols supported by AWS. Currently, all AWS services use the HTTP or HTTPS protocols.

Constructors

HTTP |
HTTPS |

Instances

Eq Protocol # |
Methods (==) :: Protocol -> Protocol -> Bool # (/=) :: Protocol -> Protocol -> Bool #
Ord Protocol # |
Methods compare :: Protocol -> Protocol -> Ordering # (<) :: Protocol -> Protocol -> Bool # (<=) :: Protocol -> Protocol -> Bool # (>) :: Protocol -> Protocol -> Bool # (>=) :: Protocol -> Protocol -> Bool # max :: Protocol -> Protocol -> Protocol # min :: Protocol -> Protocol -> Protocol #
Read Protocol # |
Methods readsPrec :: Int -> ReadS Protocol # readList :: ReadS [Protocol] # readPrec :: ReadPrec Protocol # readListPrec :: ReadPrec [Protocol] #
Show Protocol # |
Methods showsPrec :: Int -> Protocol -> ShowS # show :: Protocol -> String # showList :: [Protocol] -> ShowS #

defaultPort :: Protocol -> Int #

The default port to be used for a protocol if no specific port is specified.

data Method #

Request method. Not all request methods are supported by all services.

Constructors

Head | HEAD method. Put all request parameters in a query string and HTTP headers.
Get | GET method. Put all request parameters in a query string and HTTP headers.
PostQuery | POST method. Put all request parameters in a query string and HTTP headers, but send the query string as a POST payload
Post | POST method. Sends a service- and request-specific request body.
Put | PUT method.
Delete | DELETE method.

Instances

Eq Method # |
Methods (==) :: Method -> Method -> Bool # (/=) :: Method -> Method -> Bool #
Ord Method # |
Methods compare :: Method -> Method -> Ordering # (<) :: Method -> Method -> Bool # (<=) :: Method -> Method -> Bool # (>) :: Method -> Method -> Bool # (>=) :: Method -> Method -> Bool # max :: Method -> Method -> Method # min :: Method -> Method -> Method #
Show Method # |
Methods showsPrec :: Int -> Method -> ShowS # show :: Method -> String # showList :: [Method] -> ShowS #

httpMethod :: Method -> Method #

HTTP method associated with a request method.