aws-sns-0.1: Bindings for AWS SNS Version 2013-03-31

MaintainerLars Kuhtz <>
Safe HaskellNone






SNS Client Configuration

SNS Client Metadata

SNS Exceptions

SNS Subscription Protocols

SNS Subscription Endpoints


SNS Actions

SNS AWS Service Endpoints

snsServiceEndpoint :: Region -> ByteStringSource

SNS Endpoints as specified in AWS General API version 0.1

This are the endpoints of the AWS SNS Service. This must not be confused with an SNS endpoint that is a client that subscribes to receive SNS notifications (see SnsEndpoint).

SNS Queries

snsSignQuery :: SnsQuery -> SnsConfiguration qt -> SignatureData -> SignedQuerySource

Creates a signed query.

Uses AWS Signature V4. All requests expect for publish are GET requests with the signature embedded into the URI.

FIXME eliminate usage of error. Either statically elimintate possibility of failures or change type to Either.

SNS Response Consumers

SNS Errors and Common Parameters

data SnsError a Source


Typeable1 SnsError 
Eq a => Eq (SnsError a) 
Ord a => Ord (SnsError a) 
Read a => Read (SnsError a) 
Show a => Show (SnsError a) 

data SnsCommonParameters Source

Common SNS Parameters

The user of this API hardy needs to deal with the data type directly.

This API supports only signature version 4 with signature method AWS4-HMAC-SHA256.

/This is not currently used for computing the requests, but serves as documentation and reference for the implementation of yet missing features./




snsAction :: !SnsAction

The action to be performed.

snsParams :: ()

The parameters that are required to authenticate a Conditional request.

snsAWSAccessKeyId :: !ByteString

The access key ID that corresponds to the secret access key that you used to sign the request.

snsExpires :: !UTCTime

The date and time when the request signature expires. Precisely one of snsExpires or snsTimestamp must be present.

format: YYYY-MM-DDThh:mm:ssZ (ISO 8601)

snsTimestamp :: !UTCTime

The date and time of the request. Precisely one of snsExpires or snsTimestamp must be present.

format: YYYY-MM-DDThh:mm:ssZ (ISO 8601)

snsSecurityToken :: ()


snsSignature :: !Signature

The digital signature that you created for the request. For information about generating a signature, go to the service's developer documentation.

snsSignatureMethod :: !SignatureMethod

The hash algorithm that you used to create the request signature.

snsSignatureVersion :: !SignatureVersion

The signature version you use to sign the request. Set this to the value that is recommended for your service.

snsVersion :: SnsVersion

The API version that the request is written for.

data SnsCommonError Source

Common SNS Errors

TODO add function to provide info about the error (content of haddock comments)



The request signature does not conform to AWS standards. Code 400


The request processing has failed because of an unknown error, exception or failure.

Code 500


The action or operation requested is invalid. Verify that the action is typed correctly.

Code 400


The X.509 certificate or AWS access key ID provided does not exist in our records.

Code 403


Parameters that must not be used together were used together.

Code 400


An invalid or out-of-range value was supplied for the input parameter.

Code 400


The AWS query string is malformed or does not adhere to AWS standards.

Code 400


The query string contains a syntax error.

Code 404


The request is missing an action or a required parameter.

Code 400


The request must contain either a valid (registered) AWS access key ID or X.509 certificate.

Code 403


A required parameter for the specified action is not supplied.

Code 400


The AWS access key ID needs a subscription for the service.

Code 403


The request reached the service more than 15 minutes after the date stamp on the request or more than 15 minutes after the request expiration date (such as for pre-signed URLs), or the date stamp on the request is more than 15 minutes in the future.

Code 400


The request has failed due to a temporary failure of the server.

Code 503


The request was denied due to request throttling.

Code 400


The input fails to satisfy the constraints specified by an AWS service.

Code 400