-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Web Services (AWS) for Haskell
--   
--   Bindings for Amazon Web Services (AWS), with the aim of supporting all
--   AWS services. To see a high level overview of the library, see the
--   README at
--   <a>https://github.com/aristidb/aws/blob/master/README.org</a>.
@package aws
@version 0.11.4

module Aws.Network
hostAvailable :: String -> IO Bool

module Aws.Ec2.InstanceMetadata
data InstanceMetadataException
MetadataNotFound :: String -> InstanceMetadataException
getInstanceMetadata :: Manager -> String -> String -> IO ByteString
getInstanceMetadataListing :: Manager -> String -> IO [String]
getInstanceMetadataFirst :: Manager -> String -> IO ByteString
getInstanceMetadataOrFirst :: Manager -> String -> Maybe String -> IO ByteString
instance Typeable InstanceMetadataException
instance Show InstanceMetadataException
instance Exception InstanceMetadataException

module Aws.Core

-- | Types that can be logged (textually).
class Loggable a
toLogText :: Loggable a => a -> Text

-- | A response with metadata. Can also contain an error response, or an
--   internal error, via <tt>Attempt</tt>.
--   
--   Response forms a Writer-like monad.
data Response m a
Response :: m -> Either SomeException a -> Response m a
responseMetadata :: Response m a -> m
responseResult :: Response m a -> Either SomeException a

-- | Read a response result (if it's a success response, fail otherwise).
readResponse :: MonadThrow n => Response m a -> n a

-- | Read a response result (if it's a success response, fail otherwise).
--   In MonadIO.
readResponseIO :: MonadIO io => Response m a -> io a

-- | An empty response with some metadata.
tellMetadata :: m -> Response m ()

-- | Add metadata to an <a>IORef</a> (using <a>mappend</a>).
tellMetadataRef :: Monoid m => IORef m -> m -> IO ()

-- | Apply a function to the metadata.
mapMetadata :: (m -> n) -> Response m a -> Response n a

-- | A full HTTP response parser. Takes HTTP status, response headers, and
--   response body.
type HTTPResponseConsumer a = Response (ResumableSource (ResourceT IO) ByteString) -> ResourceT IO a

-- | 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 <a>ByteString</a>.
class Monoid (ResponseMetadata resp) => ResponseConsumer req resp where type family ResponseMetadata resp
responseConsumer :: ResponseConsumer req resp => req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp

-- | Class for responses that are fully loaded into memory
class AsMemoryResponse resp where type family MemoryResponse resp :: *
loadToMemory :: AsMemoryResponse resp => resp -> ResourceT IO (MemoryResponse resp)

-- | Responses that have one main list in them, and perhaps some
--   decoration.
class ListResponse resp item | resp -> item
listResponse :: ListResponse resp item => resp -> [item]

-- | An error that occurred during XML parsing / validation.
newtype XmlException
XmlException :: String -> XmlException
xmlErrorMessage :: XmlException -> String

-- | An error that occurred during header parsing / validation.
newtype HeaderException
HeaderException :: String -> HeaderException
headerErrorMessage :: HeaderException -> String

-- | An error that occurred during form parsing / validation.
newtype FormException
FormException :: String -> FormException
formErrorMesage :: FormException -> String

-- | No credentials were found and an invariant was violated.
newtype NoCredentialsException
NoCredentialsException :: String -> NoCredentialsException
noCredentialsErrorMessage :: NoCredentialsException -> String

-- | Parse a two-digit hex number.
readHex2 :: [Char] -> Maybe Word8

-- | A specific element (case-insensitive, ignoring namespace - sadly
--   necessary), extracting only the textual contents.
elContent :: Text -> Cursor -> [Text]

-- | Like <a>elContent</a>, but extracts <a>String</a>s instead of
--   <a>Text</a>.
elCont :: Text -> Cursor -> [String]

-- | Extract the first element from a parser result list, and throw an
--   <a>XmlException</a> if the list is empty.
force :: MonadThrow m => String -> [a] -> m a

-- | Extract the first element from a monadic parser result list, and throw
--   an <a>XmlException</a> if the list is empty.
forceM :: MonadThrow m => String -> [m a] -> m a

-- | Read an integer from a <a>Text</a>, throwing an <a>XmlException</a> on
--   failure.
textReadInt :: (MonadThrow m, Num a) => Text -> m a

-- | Read an integer from a <a>String</a>, throwing an <a>XmlException</a>
--   on failure.
readInt :: (MonadThrow m, Num a) => String -> m a

-- | Create a complete <a>HTTPResponseConsumer</a> from a simple function
--   that takes a <a>Cursor</a> 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.)
xmlCursorConsumer :: Monoid m => (Cursor -> Response m a) -> IORef m -> HTTPResponseConsumer a

-- | A pre-signed medium-level request object.
data SignedQuery
SignedQuery :: !Method -> !Protocol -> !ByteString -> !Int -> !ByteString -> !Query -> !(Maybe UTCTime) -> !(Maybe (IO ByteString)) -> !(Maybe ByteString) -> !(Maybe (Digest MD5)) -> !RequestHeaders -> !RequestHeaders -> !(Maybe RequestBody) -> !ByteString -> SignedQuery

-- | Request method.
sqMethod :: SignedQuery -> !Method

-- | Protocol to be used.
sqProtocol :: SignedQuery -> !Protocol

-- | HTTP host.
sqHost :: SignedQuery -> !ByteString

-- | IP port.
sqPort :: SignedQuery -> !Int

-- | HTTP path.
sqPath :: SignedQuery -> !ByteString

-- | Query string list (used with <a>Get</a> and <a>PostQuery</a>).
sqQuery :: SignedQuery -> !Query

-- | Request date/time.
sqDate :: SignedQuery -> !(Maybe UTCTime)

-- | Authorization string (if applicable), for <tt>Authorization</tt>
--   header. See <a>authorizationV4</a>
sqAuthorization :: SignedQuery -> !(Maybe (IO ByteString))

-- | Request body content type.
sqContentType :: SignedQuery -> !(Maybe ByteString)

-- | Request body content MD5.
sqContentMd5 :: SignedQuery -> !(Maybe (Digest MD5))

-- | Additional Amazon "amz" headers.
sqAmzHeaders :: SignedQuery -> !RequestHeaders

-- | Additional non-"amz" headers.
sqOtherHeaders :: SignedQuery -> !RequestHeaders

-- | Request body (used with <a>Post</a> and <a>Put</a>).
sqBody :: SignedQuery -> !(Maybe RequestBody)

-- | String to sign. Note that the string is already signed, this is passed
--   mostly for debugging purposes.
sqStringToSign :: SignedQuery -> !ByteString

-- | Tag type for normal queries.
data NormalQuery

-- | Tag type for URI-only queries.
data UriOnlyQuery

-- | Create a HTTP request from a <a>SignedQuery</a> object.
queryToHttpRequest :: SignedQuery -> IO Request

-- | Create a URI fro a <a>SignedQuery</a> object.
--   
--   Unused / incompatible fields will be silently ignored.
queryToUri :: SignedQuery -> ByteString

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

-- | Use a simple timestamp to let AWS check the request validity.
Timestamp :: TimeInfo

-- | Let requests expire at a specific fixed time.
ExpiresAt :: UTCTime -> TimeInfo
fromExpiresAt :: TimeInfo -> UTCTime

-- | Let requests expire a specific number of seconds after they were
--   generated.
ExpiresIn :: NominalDiffTime -> TimeInfo
fromExpiresIn :: TimeInfo -> NominalDiffTime

-- | Like <a>TimeInfo</a>, but with all relative times replaced by absolute
--   UTC.
data AbsoluteTimeInfo
AbsoluteTimestamp :: UTCTime -> AbsoluteTimeInfo
fromAbsoluteTimestamp :: AbsoluteTimeInfo -> UTCTime
AbsoluteExpires :: UTCTime -> AbsoluteTimeInfo
fromAbsoluteExpires :: AbsoluteTimeInfo -> UTCTime

-- | Just the UTC time value.
fromAbsoluteTimeInfo :: AbsoluteTimeInfo -> UTCTime

-- | Convert <a>TimeInfo</a> to <a>AbsoluteTimeInfo</a> given the current
--   UTC time.
makeAbsoluteTimeInfo :: TimeInfo -> UTCTime -> AbsoluteTimeInfo

-- | Data that is always required for signing requests.
data SignatureData
SignatureData :: AbsoluteTimeInfo -> UTCTime -> Credentials -> SignatureData

-- | Expiration or timestamp.
signatureTimeInfo :: SignatureData -> AbsoluteTimeInfo

-- | Current time.
signatureTime :: SignatureData -> UTCTime

-- | Access credentials.
signatureCredentials :: SignatureData -> Credentials

-- | Create signature data using the current system time.
signatureData :: TimeInfo -> Credentials -> IO SignatureData

-- | A "signable" request object. Assembles together the Query, and signs
--   it in one go.
class SignQuery request where type family ServiceConfiguration request :: * -> *
signQuery :: SignQuery request => request -> ServiceConfiguration request queryType -> SignatureData -> SignedQuery

-- | Supported crypto hashes for the signature.
data AuthorizationHash
HmacSHA1 :: AuthorizationHash
HmacSHA256 :: AuthorizationHash

-- | Authorization hash identifier as expected by Amazon.
amzHash :: AuthorizationHash -> 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.
signature :: Credentials -> AuthorizationHash -> ByteString -> ByteString

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

-- | <tt>queryList f prefix xs</tt> constructs a query list from a list of
--   elements <tt>xs</tt>, using a common prefix <tt>prefix</tt>, and a
--   transformer function <tt>f</tt>.
--   
--   A dot (<tt>.</tt>) is interspersed between prefix and generated key.
--   
--   Example:
--   
--   <tt>queryList swap "pfx" [("a", "b"), ("c", "d")]</tt> evaluates to
--   <tt>[("pfx.b", "a"), ("pfx.d", "c")]</tt> (except with ByteString
--   instead of String, of course).
queryList :: (a -> [(ByteString, ByteString)]) -> ByteString -> [a] -> [(ByteString, ByteString)]

-- | A "true"/"false" boolean as requested by some services.
awsBool :: Bool -> ByteString

-- | "true"
awsTrue :: ByteString

-- | "false"
awsFalse :: ByteString

-- | Format time according to a format string, as a ByteString.
fmtTime :: String -> UTCTime -> ByteString

-- | Format time in RFC 822 format.
fmtRfc822Time :: UTCTime -> ByteString
rfc822Time :: String

-- | Format time in yyyy-mm-ddThh-mm-ss format.
fmtAmzTime :: UTCTime -> ByteString

-- | Format time as seconds since the Unix epoch.
fmtTimeEpochSeconds :: UTCTime -> ByteString

-- | Parse HTTP-date (section 3.3.1 of RFC 2616)
parseHttpDate :: String -> Maybe UTCTime

-- | HTTP-date (section 3.3.1 of RFC 2616, first type - RFC1123-style)
httpDate1 :: String

-- | Format (as Text) HTTP-date (section 3.3.1 of RFC 2616, first type -
--   RFC1123-style)
textHttpDate :: UTCTime -> Text
iso8601UtcDate :: String

-- | 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 <a>SignQuery</a> and <a>ResponseConsumer</a> respectively.
class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a

-- | A transaction that may need to be split over multiple requests, for
--   example because of upstream response size limits.
class Transaction r a => IteratedTransaction r a | r -> a
nextIteratedRequest :: IteratedTransaction r a => r -> a -> Maybe r

-- | AWS access credentials.
data Credentials
Credentials :: ByteString -> ByteString -> IORef [V4Key] -> Maybe ByteString -> Credentials

-- | AWS Access Key ID.
accessKeyID :: Credentials -> ByteString

-- | AWS Secret Access Key.
secretAccessKey :: Credentials -> ByteString

-- | Signing keys for signature version 4
v4SigningKeys :: Credentials -> IORef [V4Key]

-- | Signed IAM token
iamToken :: Credentials -> Maybe ByteString
makeCredentials :: MonadIO io => ByteString -> ByteString -> io Credentials

-- | The file where access credentials are loaded, when using
--   <a>loadCredentialsDefault</a>.
--   
--   Value: <i><a>directory</a></i><tt>/.aws-keys</tt>
credentialsDefaultFile :: MonadIO io => io FilePath

-- | The key to be used in the access credential file that is loaded, when
--   using <a>loadCredentialsDefault</a>.
--   
--   Value: <tt>default</tt>
credentialsDefaultKey :: Text

-- | Load credentials from a (text) file given a key name.
--   
--   The file consists of a sequence of lines, each in the following
--   format:
--   
--   <pre>
--   keyName awsKeyID awsKeySecret
--   </pre>
loadCredentialsFromFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)

-- | Load credentials from the environment variables
--   <tt>AWS_ACCESS_KEY_ID</tt> and <tt>AWS_ACCESS_KEY_SECRET</tt> (or
--   <tt>AWS_SECRET_ACCESS_KEY</tt>), if possible.
loadCredentialsFromEnv :: MonadIO io => io (Maybe Credentials)
loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials)

-- | Load credentials from environment variables if possible, or
--   alternatively from a file with a given key name.
--   
--   See <a>loadCredentialsFromEnv</a> and <a>loadCredentialsFromFile</a>
--   for details.
loadCredentialsFromEnvOrFile :: 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 <a>loadCredentialsFromEnv</a>, <a>loadCredentialsFromFile</a> and
--   <a>loadCredentialsFromInstanceMetadata</a> for details.
loadCredentialsFromEnvOrFileOrInstanceMetadata :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)

-- | Load credentials from environment variables if possible, or
--   alternative from the default file with the default key name.
--   
--   Default file: <i><a>directory</a></i><tt>/.aws-keys</tt> Default key
--   name: <tt>default</tt>
--   
--   See <a>loadCredentialsFromEnv</a> and <a>loadCredentialsFromFile</a>
--   for details.
loadCredentialsDefault :: MonadIO io => io (Maybe Credentials)

-- | Default configuration for a specific service.
class DefaultServiceConfiguration config where debugServiceConfig = defServiceConfig
defServiceConfig :: DefaultServiceConfiguration config => config
debugServiceConfig :: DefaultServiceConfiguration config => config

-- | Protocols supported by AWS. Currently, all AWS services use the HTTP
--   or HTTPS protocols.
data Protocol
HTTP :: Protocol
HTTPS :: Protocol

-- | The default port to be used for a protocol if no specific port is
--   specified.
defaultPort :: Protocol -> Int

-- | Request method. Not all request methods are supported by all services.
data Method

-- | HEAD method. Put all request parameters in a query string and HTTP
--   headers.
Head :: Method

-- | GET method. Put all request parameters in a query string and HTTP
--   headers.
Get :: Method

-- | POST method. Put all request parameters in a query string and HTTP
--   headers, but send the query string as a POST payload
PostQuery :: Method

-- | POST method. Sends a service- and request-specific request body.
Post :: Method

-- | PUT method.
Put :: Method

-- | DELETE method.
Delete :: Method

-- | HTTP method associated with a request method.
httpMethod :: Method -> Method
instance Typeable Protocol
instance Typeable XmlException
instance Typeable HeaderException
instance Typeable FormException
instance Typeable NoCredentialsException
instance (Show m, Show a) => Show (Response m a)
instance Functor (Response m)
instance Eq Protocol
instance Read Protocol
instance Show Protocol
instance Ord Protocol
instance Show Method
instance Eq Method
instance Ord Method
instance Show TimeInfo
instance Show AbsoluteTimeInfo
instance Show AuthorizationHash
instance Show XmlException
instance Show HeaderException
instance Show FormException
instance Show NoCredentialsException
instance Exception NoCredentialsException
instance Exception FormException
instance Exception HeaderException
instance Exception XmlException
instance Show Credentials
instance ResponseConsumer r (Response ByteString)
instance Monoid m => MonadThrow (Response m)
instance Monoid m => Monad (Response m)
instance Monoid m => Applicative (Response m)


-- | Shared types and utilities for DyanmoDb functionality.
module Aws.DynamoDb.Core
data Region
Region :: ByteString -> ByteString -> Region
rUri :: Region -> ByteString
rName :: Region -> ByteString

-- | DynamoDb local connection (for development)
ddbLocal :: Region
ddbUsEast1 :: Region
ddbUsWest1 :: Region
ddbUsWest2 :: Region
ddbEuWest1 :: Region
ddbApNe1 :: Region
ddbApSe1 :: Region
ddbApSe2 :: Region
ddbSaEast1 :: Region
data DdbConfiguration qt
DdbConfiguration :: Region -> Protocol -> Maybe Int -> DdbConfiguration qt

-- | The regional endpoint. Ex: <tt>ddbUsEast</tt>
ddbcRegion :: DdbConfiguration qt -> Region

-- | <a>HTTP</a> or <a>HTTPS</a>
ddbcProtocol :: DdbConfiguration qt -> Protocol

-- | Port override (mostly for local dev connection)
ddbcPort :: DdbConfiguration qt -> Maybe Int

-- | Value types natively recognized by DynamoDb. We pretty much exactly
--   reflect the AWS API onto Haskell types.
data DValue
DNum :: Scientific -> DValue
DString :: Text -> DValue

-- | Binary data will automatically be base64 marshalled.
DBinary :: ByteString -> DValue
DNumSet :: (Set Scientific) -> DValue
DStringSet :: (Set Text) -> DValue

-- | Binary data will automatically be base64 marshalled.
DBinSet :: (Set ByteString) -> DValue

-- | Class of Haskell types that can be represented as DynamoDb values.
--   
--   This is the conversion layer; instantiate this class for your own
--   types and then use the <a>toValue</a> and <a>fromValue</a> combinators
--   to convert in application code.
--   
--   Each Haskell type instantiated with this class will map to a
--   DynamoDb-supported type that most naturally represents it.
class DynData (DynRep a) => DynVal a where type family DynRep a
toRep :: DynVal a => a -> DynRep a
fromRep :: DynVal a => DynRep a -> Maybe a

-- | Encode a Haskell value.
toValue :: DynVal a => a -> DValue

-- | Decode a Haskell value.
fromValue :: DynVal a => DValue -> Maybe a

-- | Type wrapper for binary data to be written to DynamoDB. Wrap any
--   <tt>Serialize</tt> instance in there and <a>DynVal</a> will know how
--   to automatically handle conversions in binary form.
newtype Bin a
Bin :: a -> Bin a
getBin :: Bin a -> a

-- | An internally used closed typeclass for values that have direct
--   DynamoDb representations. Based on AWS API, this is basically numbers,
--   strings and binary blobs.
--   
--   This is here so that any <a>DynVal</a> haskell value can automatically
--   be lifted to a list or a <tt>Set</tt> without any instance code
--   duplication.
--   
--   Do not try to create your own instances.
class Ord a => DynData a
fromData :: DynData a => a -> DValue
toData :: DynData a => DValue -> Maybe a

-- | Binary values stored in DynamoDb. Only used in defining new
--   <a>DynVal</a> instances.
newtype DynBinary
DynBinary :: ByteString -> DynBinary
unDynBinary :: DynBinary -> ByteString

-- | Numeric values stored in DynamoDb. Only used in defining new
--   <a>DynVal</a> instances.
newtype DynNumber
DynNumber :: Scientific -> DynNumber
unDynNumber :: DynNumber -> Scientific

-- | String values stored in DynamoDb. Only used in defining new
--   <a>DynVal</a> instances.
newtype DynString
DynString :: Text -> DynString
unDynString :: DynString -> Text

-- | A key-value pair
data Attribute
Attribute :: Text -> DValue -> Attribute
attrName :: Attribute -> Text
attrVal :: Attribute -> DValue

-- | Parse a JSON object that contains attributes
parseAttributeJson :: Value -> Parser [Attribute]

-- | Convert into JSON pair
attributeJson :: Attribute -> Pair

-- | Convert into JSON object for AWS.
attributesJson :: [Attribute] -> Value

-- | Convert attribute to a tuple representation
attrTuple :: Attribute -> (Text, DValue)

-- | Convenience function for constructing key-value pairs
attr :: DynVal a => Text -> a -> Attribute

-- | <a>attr</a> with type witness to help with cases where you're manually
--   supplying values in code.
--   
--   <pre>
--   &gt; item [ attrAs text "name" "john" ]
--   </pre>
attrAs :: DynVal a => Proxy a -> Text -> a -> Attribute

-- | Type witness for <tt>Text</tt>. See <a>attrAs</a>.
text :: Proxy Text

-- | Type witness for <a>Integer</a>. See <a>attrAs</a>.
int :: Proxy Integer

-- | Type witness for <a>Double</a>. See <a>attrAs</a>.
double :: Proxy Double

-- | Primary keys consist of either just a Hash key (mandatory) or a hash
--   key and a range key (optional).
data PrimaryKey
PrimaryKey :: Attribute -> Maybe Attribute -> PrimaryKey
pkHash :: PrimaryKey -> Attribute
pkRange :: PrimaryKey -> Maybe Attribute

-- | Construct a hash-only primary key.
--   
--   <pre>
--   &gt;&gt;&gt; hk "user-id" "ABCD"
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; hk "user-id" (mkVal 23)
--   </pre>
hk :: Text -> DValue -> PrimaryKey

-- | Construct a hash-and-range primary key.
hrk :: Text -> DValue -> Text -> DValue -> PrimaryKey

-- | A DynamoDb object is simply a key-value dictionary.
type Item = Map Text DValue

-- | Pack a list of attributes into an Item.
item :: [Attribute] -> Item

-- | Unpack an <a>Item</a> into a list of attributes.
attributes :: Map Text DValue -> [Attribute]

-- | Types convertible to DynamoDb <a>Item</a> collections.
--   
--   Use <a>attr</a> and <a>attrAs</a> combinators to conveniently define
--   instances.
class ToDynItem a
toItem :: ToDynItem a => a -> Item

-- | Types parseable from DynamoDb <a>Item</a> collections.
--   
--   User <a>getAttr</a> family of functions to applicatively or
--   monadically parse into your custom types.
class FromDynItem a
parseItem :: FromDynItem a => Item -> Parser a

-- | Parse an <a>Item</a> into target type using the <a>FromDynItem</a>
--   instance.
fromItem :: FromDynItem a => Item -> Either String a

-- | A continuation-based parser type.
newtype Parser a
Parser :: (forall f r. Failure f r -> Success a f r -> f r) -> Parser a
runParser :: Parser a -> forall f r. Failure f r -> Success a f r -> f r

-- | Convenience combinator for parsing fields from an <a>Item</a> returned
--   by DynamoDb.
getAttr :: (Typeable a, DynVal a) => Text -> Item -> Parser a

-- | Parse attribute if it's present in the <a>Item</a>. Fail if attribute
--   is present but conversion fails.
getAttr' :: (Typeable a, DynVal a) => Text -> Item -> Parser (Maybe a)

-- | Conditions used by mutation operations (<tt>PutItem</tt>,
--   <tt>UpdateItem</tt>, etc.). The default <a>def</a> instance is empty
--   (no condition).
data Conditions
Conditions :: CondMerge -> [Condition] -> Conditions

-- | JSON encoding of conditions parameter in various contexts.
conditionsJson :: Text -> Conditions -> [Pair]
expectsJson :: Conditions -> [Pair]

-- | A condition used by mutation operations (<tt>PutItem</tt>,
--   <tt>UpdateItem</tt>, etc.).
data Condition
Condition :: Text -> CondOp -> Condition

-- | Attribute to use as the basis for this conditional
condAttr :: Condition -> Text

-- | Operation on the selected attribute
condOp :: Condition -> CondOp
conditionJson :: Condition -> Pair

-- | Conditional operation to perform on a field.
data CondOp
DEq :: DValue -> CondOp
NotEq :: DValue -> CondOp
DLE :: DValue -> CondOp
DLT :: DValue -> CondOp
DGE :: DValue -> CondOp
DGT :: DValue -> CondOp
NotNull :: CondOp
IsNull :: CondOp
Contains :: DValue -> CondOp
NotContains :: DValue -> CondOp
Begins :: DValue -> CondOp
In :: [DValue] -> CondOp
Between :: DValue -> DValue -> CondOp

-- | How to merge multiple conditions.
data CondMerge
CondAnd :: CondMerge
CondOr :: CondMerge

-- | The standard response metrics on capacity consumption.
data ConsumedCapacity
ConsumedCapacity :: Int64 -> [(Text, Int64)] -> [(Text, Int64)] -> Maybe Int64 -> Text -> ConsumedCapacity
capacityUnits :: ConsumedCapacity -> Int64
capacityGlobalIndex :: ConsumedCapacity -> [(Text, Int64)]
capacityLocalIndex :: ConsumedCapacity -> [(Text, Int64)]
capacityTableUnits :: ConsumedCapacity -> Maybe Int64
capacityTable :: ConsumedCapacity -> Text
data ReturnConsumption
RCIndexes :: ReturnConsumption
RCTotal :: ReturnConsumption
RCNone :: ReturnConsumption
data ItemCollectionMetrics
ItemCollectionMetrics :: (Text, DValue) -> [Double] -> ItemCollectionMetrics
icmKey :: ItemCollectionMetrics -> (Text, DValue)
icmEstimate :: ItemCollectionMetrics -> [Double]
data ReturnItemCollectionMetrics
RICMSize :: ReturnItemCollectionMetrics
RICMNone :: ReturnItemCollectionMetrics

-- | What to return from the current update operation
data UpdateReturn

-- | Return nothing
URNone :: UpdateReturn

-- | Return old values
URAllOld :: UpdateReturn

-- | Return old values with a newer replacement
URUpdatedOld :: UpdateReturn

-- | Return new values
URAllNew :: UpdateReturn

-- | Return new values that were replacements
URUpdatedNew :: UpdateReturn

-- | What to return from a <tt>Query</tt> or <tt>Scan</tt> query.
data QuerySelect

-- | Only return selected attributes
SelectSpecific :: [Text] -> QuerySelect

-- | Return counts instead of attributes
SelectCount :: QuerySelect

-- | Return index-projected attributes
SelectProjected :: QuerySelect

-- | Default. Return everything.
SelectAll :: QuerySelect
querySelectJson :: QuerySelect -> [Pair]

-- | A class to help predict DynamoDb size of values, attributes and entire
--   items. The result is given in number of bytes.
class DynSize a
dynSize :: DynSize a => a -> Int

-- | Will an attribute be considered empty by DynamoDb?
--   
--   A <tt>PutItem</tt> (or similar) with empty attributes will be rejected
--   with a <a>ValidationException</a>.
nullAttr :: Attribute -> Bool

-- | Response metadata that is present in every DynamoDB response.
data DdbResponse
DdbResponse :: Maybe Text -> Maybe Text -> DdbResponse
ddbrCrc :: DdbResponse -> Maybe Text
ddbrMsgId :: DdbResponse -> Maybe Text

-- | Errors defined by AWS.
data DdbErrCode
AccessDeniedException :: DdbErrCode
ConditionalCheckFailedException :: DdbErrCode
IncompleteSignatureException :: DdbErrCode
InvalidSignatureException :: DdbErrCode
LimitExceededException :: DdbErrCode
MissingAuthenticationTokenException :: DdbErrCode
ProvisionedThroughputExceededException :: DdbErrCode
ResourceInUseException :: DdbErrCode
ResourceNotFoundException :: DdbErrCode
ThrottlingException :: DdbErrCode
ValidationException :: DdbErrCode
RequestTooLarge :: DdbErrCode
InternalFailure :: DdbErrCode
InternalServerError :: DdbErrCode
ServiceUnavailableException :: DdbErrCode

-- | Raised by AWS when the request JSON is missing fields or is somehow
--   malformed.
SerializationException :: DdbErrCode

-- | Whether the action should be retried based on the received error.
shouldRetry :: DdbErrCode -> Bool

-- | Potential errors raised by DynamoDB
data DdbError
DdbError :: Int -> DdbErrCode -> Text -> DdbError

-- | 200 if successful, 400 for client errors and 500 for server-side
--   errors.
ddbStatusCode :: DdbError -> Int
ddbErrCode :: DdbError -> DdbErrCode
ddbErrMsg :: DdbError -> Text
ddbSignQuery :: ToJSON a => ByteString -> a -> DdbConfiguration qt -> SignatureData -> SignedQuery
data AmazonError
AmazonError :: Text -> Maybe Text -> AmazonError
aeType :: AmazonError -> Text
aeMessage :: AmazonError -> Maybe Text
ddbResponseConsumer :: FromJSON a => IORef DdbResponse -> HTTPResponseConsumer a
ddbHttp :: Region -> DdbConfiguration NormalQuery
ddbHttps :: Region -> DdbConfiguration NormalQuery
instance Typeable DynNumber
instance Typeable DynString
instance Typeable DynBinary
instance Typeable Bin
instance Typeable DValue
instance Typeable Attribute
instance Typeable PrimaryKey
instance Typeable DdbErrCode
instance Typeable DdbLibraryError
instance Typeable DdbError
instance Typeable Region
instance Typeable DdbConfiguration
instance Typeable CondMerge
instance Typeable CondOp
instance Typeable Condition
instance Typeable Conditions
instance Typeable ConsumedCapacity
instance Typeable ReturnConsumption
instance Typeable ReturnItemCollectionMetrics
instance Typeable ItemCollectionMetrics
instance Typeable UpdateReturn
instance Typeable QuerySelect
instance Eq DynNumber
instance Show DynNumber
instance Read DynNumber
instance Ord DynNumber
instance Eq DynString
instance Show DynString
instance Read DynString
instance Ord DynString
instance Eq DynBinary
instance Show DynBinary
instance Read DynBinary
instance Ord DynBinary
instance Eq a => Eq (Bin a)
instance Show a => Show (Bin a)
instance Read a => Read (Bin a)
instance Ord a => Ord (Bin a)
instance Enum a => Enum (Bin a)
instance Eq DValue
instance Show DValue
instance Read DValue
instance Ord DValue
instance Read Attribute
instance Show Attribute
instance Ord Attribute
instance Eq Attribute
instance Read PrimaryKey
instance Show PrimaryKey
instance Ord PrimaryKey
instance Eq PrimaryKey
instance Read DdbErrCode
instance Show DdbErrCode
instance Eq DdbErrCode
instance Show DdbLibraryError
instance Eq DdbLibraryError
instance Show DdbError
instance Eq DdbError
instance Eq Region
instance Show Region
instance Read Region
instance Show (DdbConfiguration qt)
instance Eq CondMerge
instance Show CondMerge
instance Read CondMerge
instance Ord CondMerge
instance Eq CondOp
instance Show CondOp
instance Read CondOp
instance Ord CondOp
instance Eq Condition
instance Show Condition
instance Read Condition
instance Ord Condition
instance Eq Conditions
instance Show Conditions
instance Read Conditions
instance Ord Conditions
instance Eq ConsumedCapacity
instance Show ConsumedCapacity
instance Read ConsumedCapacity
instance Ord ConsumedCapacity
instance Eq ReturnConsumption
instance Show ReturnConsumption
instance Read ReturnConsumption
instance Ord ReturnConsumption
instance Eq ReturnItemCollectionMetrics
instance Show ReturnItemCollectionMetrics
instance Read ReturnItemCollectionMetrics
instance Ord ReturnItemCollectionMetrics
instance Eq ItemCollectionMetrics
instance Show ItemCollectionMetrics
instance Read ItemCollectionMetrics
instance Ord ItemCollectionMetrics
instance Eq UpdateReturn
instance Show UpdateReturn
instance Read UpdateReturn
instance Ord UpdateReturn
instance Eq QuerySelect
instance Show QuerySelect
instance Read QuerySelect
instance Ord QuerySelect
instance (Typeable a, DynVal a) => FromDynItem (Map Text a)
instance DynVal a => ToDynItem (Map Text a)
instance (Typeable a, DynVal a) => FromDynItem [(Text, a)]
instance DynVal a => ToDynItem [(Text, a)]
instance FromDynItem Item
instance ToDynItem Item
instance Monoid (Parser a)
instance MonadPlus Parser
instance Alternative Parser
instance Applicative Parser
instance Functor Parser
instance Monad Parser
instance (DynSize a, DynSize b) => DynSize (Either a b)
instance DynSize a => DynSize (Maybe a)
instance DynSize a => DynSize [a]
instance DynSize Item
instance DynSize Attribute
instance DynSize DValue
instance Default QuerySelect
instance Default UpdateReturn
instance ToJSON UpdateReturn
instance FromJSON ItemCollectionMetrics
instance Default ReturnItemCollectionMetrics
instance ToJSON ReturnItemCollectionMetrics
instance Default ReturnConsumption
instance ToJSON ReturnConsumption
instance FromJSON ConsumedCapacity
instance ToJSON CondOp
instance Default Conditions
instance FromJSON AmazonError
instance DefaultServiceConfiguration (DdbConfiguration NormalQuery)
instance Default (DdbConfiguration NormalQuery)
instance Monoid DdbResponse
instance Loggable DdbResponse
instance Exception DdbLibraryError
instance Exception DdbError
instance ToJSON Attribute
instance FromJSON DValue
instance ToJSON DValue
instance ToJSON PrimaryKey
instance IsString DValue
instance Serialize a => DynVal (Bin a)
instance DynVal Bool
instance DynVal UTCTime
instance DynVal Day
instance DynVal Double
instance DynVal ByteString
instance DynVal Text
instance DynVal Integer
instance DynVal Word64
instance DynVal Word32
instance DynVal Word16
instance DynVal Word8
instance DynVal Int64
instance DynVal Int32
instance DynVal Int16
instance DynVal Int8
instance DynVal Int
instance DynVal DValue
instance (DynData (DynRep (Set a)), DynVal a, Ord a) => DynVal (Set a)
instance (DynData (DynRep [a]), DynVal a) => DynVal [a]
instance DynData DValue
instance DynData (Set DynBinary)
instance DynData DynBinary
instance DynData (Set DynString)
instance DynData DynString
instance DynData (Set DynNumber)
instance DynData DynNumber


-- | <pre>
--   http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html
--   </pre>
module Aws.DynamoDb.Commands.DeleteItem
data DeleteItem
DeleteItem :: Text -> PrimaryKey -> Conditions -> UpdateReturn -> ReturnConsumption -> ReturnItemCollectionMetrics -> DeleteItem

-- | Target table
diTable :: DeleteItem -> Text

-- | The item to delete.
diKey :: DeleteItem -> PrimaryKey

-- | (Possible) set of expections for a conditional Put
diExpect :: DeleteItem -> Conditions

-- | What to return from this query.
diReturn :: DeleteItem -> UpdateReturn
diRetCons :: DeleteItem -> ReturnConsumption
diRetMet :: DeleteItem -> ReturnItemCollectionMetrics

-- | Construct a minimal <a>DeleteItem</a> request.
deleteItem :: Text -> PrimaryKey -> DeleteItem
data DeleteItemResponse
DeleteItemResponse :: Maybe Item -> Maybe ConsumedCapacity -> Maybe ItemCollectionMetrics -> DeleteItemResponse

-- | Old attributes, if requested
dirAttrs :: DeleteItemResponse -> Maybe Item

-- | Amount of capacity consumed
dirConsumed :: DeleteItemResponse -> Maybe ConsumedCapacity

-- | Collection metrics if they have been requested.
dirColMet :: DeleteItemResponse -> Maybe ItemCollectionMetrics
instance Eq DeleteItem
instance Show DeleteItem
instance Read DeleteItem
instance Ord DeleteItem
instance Eq DeleteItemResponse
instance Show DeleteItemResponse
instance Read DeleteItemResponse
instance Ord DeleteItemResponse
instance AsMemoryResponse DeleteItemResponse
instance ResponseConsumer r DeleteItemResponse
instance FromJSON DeleteItemResponse
instance SignQuery DeleteItem
instance Transaction DeleteItem DeleteItemResponse
instance ToJSON DeleteItem


module Aws.DynamoDb.Commands.GetItem

-- | A GetItem query that fetches a specific object from DDB.
--   
--   See:
--   <tt><a>http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API_GetItem.html</a></tt>
data GetItem
GetItem :: Text -> PrimaryKey -> Maybe [Text] -> Bool -> ReturnConsumption -> GetItem
giTableName :: GetItem -> Text
giKey :: GetItem -> PrimaryKey

-- | Attributes to get. <a>Nothing</a> grabs everything.
giAttrs :: GetItem -> Maybe [Text]

-- | Whether to issue a consistent read.
giConsistent :: GetItem -> Bool

-- | Whether to return consumption stats.
giRetCons :: GetItem -> ReturnConsumption

-- | Construct a minimal <a>GetItem</a> request.
getItem :: Text -> PrimaryKey -> GetItem

-- | Response to a <a>GetItem</a> query.
data GetItemResponse
GetItemResponse :: Maybe Item -> Maybe ConsumedCapacity -> GetItemResponse
girItem :: GetItemResponse -> Maybe Item
girConsumed :: GetItemResponse -> Maybe ConsumedCapacity
instance Eq GetItem
instance Show GetItem
instance Read GetItem
instance Ord GetItem
instance Eq GetItemResponse
instance Show GetItemResponse
instance Read GetItemResponse
instance Ord GetItemResponse
instance AsMemoryResponse GetItemResponse
instance ResponseConsumer r GetItemResponse
instance FromJSON GetItemResponse
instance SignQuery GetItem
instance ToJSON GetItem
instance Transaction GetItem GetItemResponse


-- | <pre>
--   http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
--   </pre>
module Aws.DynamoDb.Commands.PutItem
data PutItem
PutItem :: Text -> Item -> Conditions -> UpdateReturn -> ReturnConsumption -> ReturnItemCollectionMetrics -> PutItem

-- | Target table
piTable :: PutItem -> Text

-- | An item to Put. Attributes here will replace what maybe under the key
--   on DDB.
piItem :: PutItem -> Item

-- | (Possible) set of expections for a conditional Put
piExpect :: PutItem -> Conditions

-- | What to return from this query.
piReturn :: PutItem -> UpdateReturn
piRetCons :: PutItem -> ReturnConsumption
piRetMet :: PutItem -> ReturnItemCollectionMetrics

-- | Construct a minimal <a>PutItem</a> request.
putItem :: Text -> Item -> PutItem
data PutItemResponse
PutItemResponse :: Maybe Item -> Maybe ConsumedCapacity -> Maybe ItemCollectionMetrics -> PutItemResponse

-- | Old attributes, if requested
pirAttrs :: PutItemResponse -> Maybe Item

-- | Amount of capacity consumed
pirConsumed :: PutItemResponse -> Maybe ConsumedCapacity

-- | Collection metrics if they have been requested.
pirColMet :: PutItemResponse -> Maybe ItemCollectionMetrics
instance Eq PutItem
instance Show PutItem
instance Read PutItem
instance Ord PutItem
instance Eq PutItemResponse
instance Show PutItemResponse
instance Read PutItemResponse
instance Ord PutItemResponse
instance AsMemoryResponse PutItemResponse
instance ResponseConsumer r PutItemResponse
instance FromJSON PutItemResponse
instance SignQuery PutItem
instance Transaction PutItem PutItemResponse
instance ToJSON PutItem


-- | Implementation of Amazon DynamoDb Query command.
--   
--   See:
--   <tt>http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html</tt>
module Aws.DynamoDb.Commands.Query

-- | A Query command that uses primary keys for an expedient scan.
data Query
Query :: Text -> Slice -> Conditions -> Maybe [Attribute] -> Maybe Int -> Bool -> QuerySelect -> ReturnConsumption -> Maybe Text -> Bool -> Query

-- | Required.
qTableName :: Query -> Text

-- | Required. Hash or hash-range main condition.
qKeyConditions :: Query -> Slice

-- | Whether to filter results before returning to client
qFilter :: Query -> Conditions

-- | Exclusive start key to resume a previous query.
qStartKey :: Query -> Maybe [Attribute]

-- | Whether to limit result set size
qLimit :: Query -> Maybe Int

-- | Set to False for descending results
qForwardScan :: Query -> Bool

-- | What to return from <a>Query</a>
qSelect :: Query -> QuerySelect
qRetCons :: Query -> ReturnConsumption

-- | Whether to use a secondary/global index
qIndex :: Query -> Maybe Text
qConsistent :: Query -> Bool

-- | <a>Slice</a> is the primary constraint in a <a>Query</a> command, per
--   AWS requirements.
--   
--   All <a>Query</a> commands must specify a hash attribute via <a>DEq</a>
--   and optionally provide a secondary range attribute.
data Slice
Slice :: Attribute -> Maybe Condition -> Slice

-- | Hash value of the primary key or index being used
sliceHash :: Slice -> Attribute

-- | An optional condition specified on the range component, if present, of
--   the primary key or index being used.
sliceCond :: Slice -> Maybe Condition

-- | Construct a minimal <a>Query</a> request.
query :: Text -> Slice -> Query

-- | Response to a <a>Query</a> query.
data QueryResponse
QueryResponse :: Vector Item -> Maybe [Attribute] -> Int -> Int -> Maybe ConsumedCapacity -> QueryResponse
qrItems :: QueryResponse -> Vector Item
qrLastKey :: QueryResponse -> Maybe [Attribute]
qrCount :: QueryResponse -> Int
qrScanned :: QueryResponse -> Int
qrConsumed :: QueryResponse -> Maybe ConsumedCapacity
instance Typeable Slice
instance Typeable Query
instance Eq Slice
instance Show Slice
instance Read Slice
instance Ord Slice
instance Eq Query
instance Show Query
instance Read Query
instance Ord Query
instance Eq QueryResponse
instance Show QueryResponse
instance Read QueryResponse
instance Ord QueryResponse
instance IteratedTransaction Query QueryResponse
instance ListResponse QueryResponse Item
instance AsMemoryResponse QueryResponse
instance ResponseConsumer r QueryResponse
instance SignQuery Query
instance Transaction Query QueryResponse
instance FromJSON QueryResponse
instance ToJSON Query


-- | Implementation of Amazon DynamoDb Scan command.
--   
--   See:
--   <tt>http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html</tt>
module Aws.DynamoDb.Commands.Scan

-- | A Scan command that uses primary keys for an expedient scan.
data Scan
Scan :: Text -> Conditions -> Maybe [Attribute] -> Maybe Int -> QuerySelect -> ReturnConsumption -> Int -> Int -> Scan

-- | Required.
sTableName :: Scan -> Text

-- | Whether to filter results before returning to client
sFilter :: Scan -> Conditions

-- | Exclusive start key to resume a previous query.
sStartKey :: Scan -> Maybe [Attribute]

-- | Whether to limit result set size
sLimit :: Scan -> Maybe Int

-- | What to return from <a>Scan</a>
sSelect :: Scan -> QuerySelect
sRetCons :: Scan -> ReturnConsumption

-- | Segment number, starting at 0, for parallel queries.
sSegment :: Scan -> Int

-- | Total number of parallel segments. 1 means sequential scan.
sTotalSegments :: Scan -> Int

-- | Construct a minimal <a>Scan</a> request.
scan :: Text -> Scan

-- | Response to a <a>Scan</a> query.
data ScanResponse
ScanResponse :: Vector Item -> Maybe [Attribute] -> Int -> Int -> Maybe ConsumedCapacity -> ScanResponse
srItems :: ScanResponse -> Vector Item
srLastKey :: ScanResponse -> Maybe [Attribute]
srCount :: ScanResponse -> Int
srScanned :: ScanResponse -> Int
srConsumed :: ScanResponse -> Maybe ConsumedCapacity
instance Typeable Scan
instance Eq Scan
instance Show Scan
instance Read Scan
instance Ord Scan
instance Eq ScanResponse
instance Show ScanResponse
instance Read ScanResponse
instance Ord ScanResponse
instance IteratedTransaction Scan ScanResponse
instance ListResponse ScanResponse Item
instance AsMemoryResponse ScanResponse
instance ResponseConsumer r ScanResponse
instance SignQuery Scan
instance Transaction Scan ScanResponse
instance FromJSON ScanResponse
instance ToJSON Scan

module Aws.DynamoDb.Commands.Table
data CreateTable
CreateTable :: Text -> [AttributeDefinition] -> KeySchema -> ProvisionedThroughput -> [LocalSecondaryIndex] -> [GlobalSecondaryIndex] -> CreateTable
createTableName :: CreateTable -> Text

-- | only attributes appearing in a key must be listed here
createAttributeDefinitions :: CreateTable -> [AttributeDefinition]
createKeySchema :: CreateTable -> KeySchema
createProvisionedThroughput :: CreateTable -> ProvisionedThroughput

-- | at most 5 local secondary indices are allowed
createLocalSecondaryIndexes :: CreateTable -> [LocalSecondaryIndex]
createGlobalSecondaryIndexes :: CreateTable -> [GlobalSecondaryIndex]
createTable :: Text -> [AttributeDefinition] -> KeySchema -> ProvisionedThroughput -> CreateTable
newtype CreateTableResult
CreateTableResult :: TableDescription -> CreateTableResult
ctStatus :: CreateTableResult -> TableDescription
data DescribeTable
DescribeTable :: Text -> DescribeTable
dTableName :: DescribeTable -> Text
newtype DescribeTableResult
DescribeTableResult :: TableDescription -> DescribeTableResult
dtStatus :: DescribeTableResult -> TableDescription
data UpdateTable
UpdateTable :: Text -> ProvisionedThroughput -> [GlobalSecondaryIndexUpdate] -> UpdateTable
updateTableName :: UpdateTable -> Text
updateProvisionedThroughput :: UpdateTable -> ProvisionedThroughput
updateGlobalSecondaryIndexUpdates :: UpdateTable -> [GlobalSecondaryIndexUpdate]
newtype UpdateTableResult
UpdateTableResult :: TableDescription -> UpdateTableResult
uStatus :: UpdateTableResult -> TableDescription
data DeleteTable
DeleteTable :: Text -> DeleteTable
deleteTableName :: DeleteTable -> Text
newtype DeleteTableResult
DeleteTableResult :: TableDescription -> DeleteTableResult
dStatus :: DeleteTableResult -> TableDescription

-- | TODO: currently this does not support restarting a cutoff query
--   because of size.
data ListTables
ListTables :: ListTables
newtype ListTablesResult
ListTablesResult :: [Text] -> ListTablesResult
tableNames :: ListTablesResult -> [Text]

-- | The type of a key attribute that appears in the table key or as a key
--   in one of the indices.
data AttributeType
AttrString :: AttributeType
AttrNumber :: AttributeType
AttrBinary :: AttributeType

-- | A key attribute that appears in the table key or as a key in one of
--   the indices.
data AttributeDefinition
AttributeDefinition :: Text -> AttributeType -> AttributeDefinition
attributeName :: AttributeDefinition -> Text
attributeType :: AttributeDefinition -> AttributeType

-- | The key schema can either be a hash of a single attribute name or a
--   hash attribute name and a range attribute name.
data KeySchema
HashOnly :: Text -> KeySchema
HashAndRange :: Text -> Text -> KeySchema

-- | This determines which attributes are projected into a secondary index.
data Projection
ProjectKeysOnly :: Projection
ProjectAll :: Projection
ProjectInclude :: [Text] -> Projection

-- | Describes a single local secondary index. The KeySchema MUST share the
--   same hash key attribute as the parent table, only the range key can
--   differ.
data LocalSecondaryIndex
LocalSecondaryIndex :: Text -> KeySchema -> Projection -> LocalSecondaryIndex
localIndexName :: LocalSecondaryIndex -> Text
localKeySchema :: LocalSecondaryIndex -> KeySchema
localProjection :: LocalSecondaryIndex -> Projection

-- | This is returned by AWS to describe the local secondary index.
data LocalSecondaryIndexStatus
LocalSecondaryIndexStatus :: Text -> Integer -> Integer -> KeySchema -> Projection -> LocalSecondaryIndexStatus
locStatusIndexName :: LocalSecondaryIndexStatus -> Text
locStatusIndexSizeBytes :: LocalSecondaryIndexStatus -> Integer
locStatusItemCount :: LocalSecondaryIndexStatus -> Integer
locStatusKeySchema :: LocalSecondaryIndexStatus -> KeySchema
locStatusProjection :: LocalSecondaryIndexStatus -> Projection

-- | The target provisioned throughput you are requesting for the table or
--   global secondary index.
data ProvisionedThroughput
ProvisionedThroughput :: Int -> Int -> ProvisionedThroughput
readCapacityUnits :: ProvisionedThroughput -> Int
writeCapacityUnits :: ProvisionedThroughput -> Int

-- | This is returned by AWS as the status of the throughput for a table or
--   global secondary index.
data ProvisionedThroughputStatus
ProvisionedThroughputStatus :: UTCTime -> UTCTime -> Int -> Int -> Int -> ProvisionedThroughputStatus
statusLastDecreaseDateTime :: ProvisionedThroughputStatus -> UTCTime
statusLastIncreaseDateTime :: ProvisionedThroughputStatus -> UTCTime
statusNumberOfDecreasesToday :: ProvisionedThroughputStatus -> Int
statusReadCapacityUnits :: ProvisionedThroughputStatus -> Int
statusWriteCapacityUnits :: ProvisionedThroughputStatus -> Int

-- | Describes a global secondary index.
data GlobalSecondaryIndex
GlobalSecondaryIndex :: Text -> KeySchema -> Projection -> ProvisionedThroughput -> GlobalSecondaryIndex
globalIndexName :: GlobalSecondaryIndex -> Text
globalKeySchema :: GlobalSecondaryIndex -> KeySchema
globalProjection :: GlobalSecondaryIndex -> Projection
globalProvisionedThroughput :: GlobalSecondaryIndex -> ProvisionedThroughput

-- | This is returned by AWS to describe the status of a global secondary
--   index.
data GlobalSecondaryIndexStatus
GlobalSecondaryIndexStatus :: Text -> Integer -> Text -> Integer -> KeySchema -> Projection -> ProvisionedThroughputStatus -> GlobalSecondaryIndexStatus
gStatusIndexName :: GlobalSecondaryIndexStatus -> Text
gStatusIndexSizeBytes :: GlobalSecondaryIndexStatus -> Integer
gStatusIndexStatus :: GlobalSecondaryIndexStatus -> Text
gStatusItemCount :: GlobalSecondaryIndexStatus -> Integer
gStatusKeySchema :: GlobalSecondaryIndexStatus -> KeySchema
gStatusProjection :: GlobalSecondaryIndexStatus -> Projection
gStatusProvisionedThroughput :: GlobalSecondaryIndexStatus -> ProvisionedThroughputStatus

-- | This is used to request a change in the provisioned throughput of a
--   global secondary index as part of an <a>UpdateTable</a> operation.
data GlobalSecondaryIndexUpdate
GlobalSecondaryIndexUpdate :: Text -> ProvisionedThroughput -> GlobalSecondaryIndexUpdate
gUpdateIndexName :: GlobalSecondaryIndexUpdate -> Text
gUpdateProvisionedThroughput :: GlobalSecondaryIndexUpdate -> ProvisionedThroughput

-- | This describes the table and is the return value from AWS for all the
--   table-related commands.
data TableDescription
TableDescription :: Text -> Integer -> Text -> Maybe UTCTime -> Integer -> [AttributeDefinition] -> Maybe KeySchema -> ProvisionedThroughputStatus -> [LocalSecondaryIndexStatus] -> [GlobalSecondaryIndexStatus] -> TableDescription
rTableName :: TableDescription -> Text
rTableSizeBytes :: TableDescription -> Integer

-- | one of CREATING, UPDATING, DELETING, ACTIVE
rTableStatus :: TableDescription -> Text
rCreationDateTime :: TableDescription -> Maybe UTCTime
rItemCount :: TableDescription -> Integer
rAttributeDefinitions :: TableDescription -> [AttributeDefinition]
rKeySchema :: TableDescription -> Maybe KeySchema
rProvisionedThroughput :: TableDescription -> ProvisionedThroughputStatus
rLocalSecondaryIndexes :: TableDescription -> [LocalSecondaryIndexStatus]
rGlobalSecondaryIndexes :: TableDescription -> [GlobalSecondaryIndexStatus]
instance Typeable AttributeType
instance Typeable AttributeDefinition
instance Typeable KeySchema
instance Show AttributeType
instance Read AttributeType
instance Ord AttributeType
instance Eq AttributeType
instance Enum AttributeType
instance Bounded AttributeType
instance Generic AttributeType
instance Eq AttributeDefinition
instance Read AttributeDefinition
instance Ord AttributeDefinition
instance Show AttributeDefinition
instance Generic AttributeDefinition
instance Eq KeySchema
instance Read KeySchema
instance Show KeySchema
instance Ord KeySchema
instance Generic KeySchema
instance Show Projection
instance Show LocalSecondaryIndex
instance Generic LocalSecondaryIndex
instance Show LocalSecondaryIndexStatus
instance Generic LocalSecondaryIndexStatus
instance Show ProvisionedThroughput
instance Generic ProvisionedThroughput
instance Show ProvisionedThroughputStatus
instance Generic ProvisionedThroughputStatus
instance Show GlobalSecondaryIndex
instance Generic GlobalSecondaryIndex
instance Show GlobalSecondaryIndexStatus
instance Generic GlobalSecondaryIndexStatus
instance Show GlobalSecondaryIndexUpdate
instance Generic GlobalSecondaryIndexUpdate
instance Show TableDescription
instance Generic TableDescription
instance Show CreateTable
instance Generic CreateTable
instance Show CreateTableResult
instance FromJSON CreateTableResult
instance Show DescribeTable
instance Generic DescribeTable
instance Show DescribeTableResult
instance FromJSON DescribeTableResult
instance Show UpdateTable
instance Generic UpdateTable
instance Show UpdateTableResult
instance FromJSON UpdateTableResult
instance Show DeleteTable
instance Generic DeleteTable
instance Show DeleteTableResult
instance FromJSON DeleteTableResult
instance Show ListTables
instance Show ListTablesResult
instance Generic ListTablesResult
instance Datatype D1AttributeType
instance Constructor C1_0AttributeType
instance Constructor C1_1AttributeType
instance Constructor C1_2AttributeType
instance Datatype D1AttributeDefinition
instance Constructor C1_0AttributeDefinition
instance Selector S1_0_0AttributeDefinition
instance Selector S1_0_1AttributeDefinition
instance Datatype D1KeySchema
instance Constructor C1_0KeySchema
instance Constructor C1_1KeySchema
instance Datatype D1LocalSecondaryIndex
instance Constructor C1_0LocalSecondaryIndex
instance Selector S1_0_0LocalSecondaryIndex
instance Selector S1_0_1LocalSecondaryIndex
instance Selector S1_0_2LocalSecondaryIndex
instance Datatype D1LocalSecondaryIndexStatus
instance Constructor C1_0LocalSecondaryIndexStatus
instance Selector S1_0_0LocalSecondaryIndexStatus
instance Selector S1_0_1LocalSecondaryIndexStatus
instance Selector S1_0_2LocalSecondaryIndexStatus
instance Selector S1_0_3LocalSecondaryIndexStatus
instance Selector S1_0_4LocalSecondaryIndexStatus
instance Datatype D1ProvisionedThroughput
instance Constructor C1_0ProvisionedThroughput
instance Selector S1_0_0ProvisionedThroughput
instance Selector S1_0_1ProvisionedThroughput
instance Datatype D1ProvisionedThroughputStatus
instance Constructor C1_0ProvisionedThroughputStatus
instance Selector S1_0_0ProvisionedThroughputStatus
instance Selector S1_0_1ProvisionedThroughputStatus
instance Selector S1_0_2ProvisionedThroughputStatus
instance Selector S1_0_3ProvisionedThroughputStatus
instance Selector S1_0_4ProvisionedThroughputStatus
instance Datatype D1GlobalSecondaryIndex
instance Constructor C1_0GlobalSecondaryIndex
instance Selector S1_0_0GlobalSecondaryIndex
instance Selector S1_0_1GlobalSecondaryIndex
instance Selector S1_0_2GlobalSecondaryIndex
instance Selector S1_0_3GlobalSecondaryIndex
instance Datatype D1GlobalSecondaryIndexStatus
instance Constructor C1_0GlobalSecondaryIndexStatus
instance Selector S1_0_0GlobalSecondaryIndexStatus
instance Selector S1_0_1GlobalSecondaryIndexStatus
instance Selector S1_0_2GlobalSecondaryIndexStatus
instance Selector S1_0_3GlobalSecondaryIndexStatus
instance Selector S1_0_4GlobalSecondaryIndexStatus
instance Selector S1_0_5GlobalSecondaryIndexStatus
instance Selector S1_0_6GlobalSecondaryIndexStatus
instance Datatype D1GlobalSecondaryIndexUpdate
instance Constructor C1_0GlobalSecondaryIndexUpdate
instance Selector S1_0_0GlobalSecondaryIndexUpdate
instance Selector S1_0_1GlobalSecondaryIndexUpdate
instance Datatype D1TableDescription
instance Constructor C1_0TableDescription
instance Selector S1_0_0TableDescription
instance Selector S1_0_1TableDescription
instance Selector S1_0_2TableDescription
instance Selector S1_0_3TableDescription
instance Selector S1_0_4TableDescription
instance Selector S1_0_5TableDescription
instance Selector S1_0_6TableDescription
instance Selector S1_0_7TableDescription
instance Selector S1_0_8TableDescription
instance Selector S1_0_9TableDescription
instance Datatype D1CreateTable
instance Constructor C1_0CreateTable
instance Selector S1_0_0CreateTable
instance Selector S1_0_1CreateTable
instance Selector S1_0_2CreateTable
instance Selector S1_0_3CreateTable
instance Selector S1_0_4CreateTable
instance Selector S1_0_5CreateTable
instance Datatype D1DescribeTable
instance Constructor C1_0DescribeTable
instance Selector S1_0_0DescribeTable
instance Datatype D1UpdateTable
instance Constructor C1_0UpdateTable
instance Selector S1_0_0UpdateTable
instance Selector S1_0_1UpdateTable
instance Selector S1_0_2UpdateTable
instance Datatype D1DeleteTable
instance Constructor C1_0DeleteTable
instance Selector S1_0_0DeleteTable
instance Datatype D1ListTablesResult
instance Constructor C1_0ListTablesResult
instance Selector S1_0_0ListTablesResult
instance Transaction ListTables ListTablesResult
instance AsMemoryResponse ListTablesResult
instance ResponseConsumer r ListTablesResult
instance FromJSON ListTablesResult
instance SignQuery ListTables
instance ToJSON ListTables
instance Transaction DeleteTable DeleteTableResult
instance AsMemoryResponse DeleteTableResult
instance ResponseConsumer r DeleteTableResult
instance SignQuery DeleteTable
instance ToJSON DeleteTable
instance Transaction UpdateTable UpdateTableResult
instance AsMemoryResponse UpdateTableResult
instance ResponseConsumer r UpdateTableResult
instance SignQuery UpdateTable
instance ToJSON UpdateTable
instance Transaction DescribeTable DescribeTableResult
instance AsMemoryResponse DescribeTableResult
instance ResponseConsumer r DescribeTableResult
instance SignQuery DescribeTable
instance ToJSON DescribeTable
instance Transaction CreateTable CreateTableResult
instance AsMemoryResponse CreateTableResult
instance ResponseConsumer r CreateTableResult
instance SignQuery CreateTable
instance ToJSON CreateTable
instance FromJSON TableDescription
instance ToJSON GlobalSecondaryIndexUpdate
instance FromJSON GlobalSecondaryIndexStatus
instance FromJSON GlobalSecondaryIndex
instance ToJSON GlobalSecondaryIndex
instance FromJSON ProvisionedThroughputStatus
instance FromJSON ProvisionedThroughput
instance ToJSON ProvisionedThroughput
instance FromJSON LocalSecondaryIndexStatus
instance FromJSON LocalSecondaryIndex
instance ToJSON LocalSecondaryIndex
instance FromJSON Projection
instance ToJSON Projection
instance FromJSON KeySchema
instance ToJSON KeySchema
instance FromJSON AttributeDefinition
instance ToJSON AttributeDefinition
instance FromJSON AttributeType
instance ToJSON AttributeType


module Aws.DynamoDb.Commands.UpdateItem

-- | An <tt>UpdateItem</tt> request.
data UpdateItem
UpdateItem :: Text -> PrimaryKey -> [AttributeUpdate] -> Conditions -> UpdateReturn -> ReturnConsumption -> ReturnItemCollectionMetrics -> UpdateItem
uiTable :: UpdateItem -> Text
uiKey :: UpdateItem -> PrimaryKey
uiUpdates :: UpdateItem -> [AttributeUpdate]

-- | Conditional update - see DynamoDb documentation
uiExpect :: UpdateItem -> Conditions
uiReturn :: UpdateItem -> UpdateReturn
uiRetCons :: UpdateItem -> ReturnConsumption
uiRetMet :: UpdateItem -> ReturnItemCollectionMetrics

-- | Construct a minimal <a>UpdateItem</a> request.
updateItem :: Text -> PrimaryKey -> [AttributeUpdate] -> UpdateItem
type AttributeUpdates = [AttributeUpdate]
data AttributeUpdate
AttributeUpdate :: Attribute -> UpdateAction -> AttributeUpdate

-- | Attribute key-value
auAttr :: AttributeUpdate -> Attribute

-- | Type of update operation.
auAction :: AttributeUpdate -> UpdateAction

-- | Shorthand for the <a>AttributeUpdate</a> constructor. Defaults to PUT
--   for the update action.
au :: Attribute -> AttributeUpdate

-- | Type of attribute update to perform.
--   
--   See AWS docs at:
--   
--   <pre>
--   http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html
--   </pre>
data UpdateAction

-- | Simpley write, overwriting any previous value
UPut :: UpdateAction

-- | Numerical add or add to set.
UAdd :: UpdateAction

-- | Empty value: remove; Set value: Subtract from set.
UDelete :: UpdateAction
data UpdateItemResponse
UpdateItemResponse :: Maybe Item -> Maybe ConsumedCapacity -> UpdateItemResponse

-- | Old attributes, if requested
uirAttrs :: UpdateItemResponse -> Maybe Item

-- | Amount of capacity consumed
uirConsumed :: UpdateItemResponse -> Maybe ConsumedCapacity
instance Eq UpdateAction
instance Show UpdateAction
instance Read UpdateAction
instance Ord UpdateAction
instance Eq AttributeUpdate
instance Show AttributeUpdate
instance Read AttributeUpdate
instance Ord AttributeUpdate
instance Eq UpdateItem
instance Show UpdateItem
instance Read UpdateItem
instance Ord UpdateItem
instance Eq UpdateItemResponse
instance Show UpdateItemResponse
instance Read UpdateItemResponse
instance Ord UpdateItemResponse
instance AsMemoryResponse UpdateItemResponse
instance ResponseConsumer r UpdateItemResponse
instance FromJSON UpdateItemResponse
instance SignQuery UpdateItem
instance Transaction UpdateItem UpdateItemResponse
instance ToJSON UpdateItem
instance Default UpdateAction
instance ToJSON UpdateAction
instance ToJSON AttributeUpdates
instance DynSize AttributeUpdate

module Aws.DynamoDb.Commands


module Aws.DynamoDb

module Aws.Iam.Core

-- | Constructs a <a>SignedQuery</a> with the specified request parameters.
iamSignQuery :: [(ByteString, ByteString)] -> IamConfiguration qt -> SignatureData -> SignedQuery

-- | Reads the metadata from an IAM response and delegates parsing the rest
--   of the data from the response to the given function.
iamResponseConsumer :: (Cursor -> Response IamMetadata a) -> IORef IamMetadata -> HTTPResponseConsumer a
data IamMetadata
IamMetadata :: Maybe Text -> IamMetadata
requestId :: IamMetadata -> Maybe Text
data IamConfiguration qt
IamConfiguration :: ByteString -> Int -> Protocol -> Method -> IamConfiguration qt
iamEndpoint :: IamConfiguration qt -> ByteString
iamPort :: IamConfiguration qt -> Int
iamProtocol :: IamConfiguration qt -> Protocol
iamHttpMethod :: IamConfiguration qt -> Method
data IamError
IamError :: Status -> Text -> Text -> IamError
iamStatusCode :: IamError -> Status
iamErrorCode :: IamError -> Text
iamErrorMessage :: IamError -> Text

-- | Parses IAM <tt>DateTime</tt> data type.
parseDateTime :: MonadThrow m => String -> m UTCTime
data AccessKeyStatus
AccessKeyActive :: AccessKeyStatus
AccessKeyInactive :: AccessKeyStatus

-- | The IAM <tt>User</tt> data type.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html</a>
data User
User :: Text -> UTCTime -> Text -> Text -> Text -> User

-- | ARN used to refer to this user.
userArn :: User -> Text

-- | Date and time at which the user was created.
userCreateDate :: User -> UTCTime

-- | Path under which the user was created.
userPath :: User -> Text

-- | Unique identifier used to refer to this user.
userUserId :: User -> Text

-- | Name of the user.
userUserName :: User -> Text

-- | Parses the IAM <tt>User</tt> data type.
parseUser :: MonadThrow m => Cursor -> m User
instance Typeable IamError
instance Typeable IamMetadata
instance Typeable User
instance Typeable AccessKeyStatus
instance Show IamError
instance Show IamMetadata
instance Show (IamConfiguration qt)
instance Eq User
instance Ord User
instance Show User
instance Eq AccessKeyStatus
instance Ord AccessKeyStatus
instance Show AccessKeyStatus
instance DefaultServiceConfiguration (IamConfiguration UriOnlyQuery)
instance DefaultServiceConfiguration (IamConfiguration NormalQuery)
instance Monoid IamMetadata
instance Loggable IamMetadata
instance Exception IamError

module Aws.Iam.Internal

-- | Similar to <a>iamSignQuery</a>. Accepts parameters in <tt>Text</tt>
--   form and UTF-8 encodes them. Accepts the <tt>Action</tt> parameter
--   separately since it's always required.
iamAction :: ByteString -> [(ByteString, Text)] -> IamConfiguration qt -> SignatureData -> SignedQuery

-- | Similar to <a>iamAction</a>. Accepts parameter list with
--   <tt>Maybe</tt> parameters. Ignores <tt>Nothing</tt>s.
iamAction' :: ByteString -> [Maybe (ByteString, Text)] -> IamConfiguration qt -> SignatureData -> SignedQuery

-- | Returns the parameters <tt>Marker</tt> and <tt>MaxItems</tt> that are
--   present in all IAM data pagination requests.
markedIter :: Maybe Text -> Maybe Integer -> [Maybe (ByteString, Text)]

-- | Reads and returns the <tt>IsTruncated</tt> and <tt>Marker</tt>
--   attributes present in all IAM data pagination responses.
markedIterResponse :: MonadThrow m => Cursor -> m (Bool, Maybe Text)

-- | An infix synonym for <a>mappend</a>.
--   
--   <i>Since: 4.5.0.0</i>
(<>) :: Monoid m => m -> m -> m

module Aws.Iam.Commands.CreateAccessKey

-- | Creates a new AWS secret access key and corresponding AWS access key
--   ID for the given user name.
--   
--   If a user name is not provided, IAM will determine the user name based
--   on the access key signing the request.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html</a>
data CreateAccessKey
CreateAccessKey :: (Maybe Text) -> CreateAccessKey
data CreateAccessKeyResponse
CreateAccessKeyResponse :: AccessKey -> CreateAccessKeyResponse

-- | Represents the IAM <tt>AccessKey</tt> data type.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKey.html</a>
data AccessKey
AccessKey :: Text -> Maybe UTCTime -> Text -> AccessKeyStatus -> Text -> AccessKey

-- | The Access Key ID.
akAccessKeyId :: AccessKey -> Text

-- | Date and time at which the access key was created.
akCreateDate :: AccessKey -> Maybe UTCTime

-- | Secret key used to sign requests. The secret key is accessible only
--   during key creation.
akSecretAccessKey :: AccessKey -> Text

-- | Whether the access key is active or not.
akStatus :: AccessKey -> AccessKeyStatus

-- | The user name for which this key is defined.
akUserName :: AccessKey -> Text
instance Typeable CreateAccessKey
instance Typeable AccessKey
instance Typeable CreateAccessKeyResponse
instance Eq CreateAccessKey
instance Ord CreateAccessKey
instance Show CreateAccessKey
instance Eq AccessKey
instance Ord AccessKey
instance Show AccessKey
instance Eq CreateAccessKeyResponse
instance Ord CreateAccessKeyResponse
instance Show CreateAccessKeyResponse
instance AsMemoryResponse CreateAccessKeyResponse
instance Transaction CreateAccessKey CreateAccessKeyResponse
instance ResponseConsumer CreateAccessKey CreateAccessKeyResponse
instance SignQuery CreateAccessKey

module Aws.Iam.Commands.CreateUser

-- | Creates a new user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html</a>
data CreateUser
CreateUser :: Text -> Maybe Text -> CreateUser

-- | Name of the new user
cuUserName :: CreateUser -> Text

-- | Path under which the user will be created. Defaults to <tt>/</tt> if
--   omitted.
cuPath :: CreateUser -> Maybe Text
data CreateUserResponse
CreateUserResponse :: User -> CreateUserResponse

-- | The IAM <tt>User</tt> data type.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html</a>
data User
User :: Text -> UTCTime -> Text -> Text -> Text -> User

-- | ARN used to refer to this user.
userArn :: User -> Text

-- | Date and time at which the user was created.
userCreateDate :: User -> UTCTime

-- | Path under which the user was created.
userPath :: User -> Text

-- | Unique identifier used to refer to this user.
userUserId :: User -> Text

-- | Name of the user.
userUserName :: User -> Text
instance Typeable CreateUser
instance Typeable CreateUserResponse
instance Eq CreateUser
instance Ord CreateUser
instance Show CreateUser
instance Eq CreateUserResponse
instance Ord CreateUserResponse
instance Show CreateUserResponse
instance AsMemoryResponse CreateUserResponse
instance Transaction CreateUser CreateUserResponse
instance ResponseConsumer CreateUser CreateUserResponse
instance SignQuery CreateUser

module Aws.Iam.Commands.DeleteAccessKey

-- | Deletes the access key associated with the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html</a>
data DeleteAccessKey
DeleteAccessKey :: Text -> Maybe Text -> DeleteAccessKey

-- | ID of the access key to be deleted.
dakAccessKeyId :: DeleteAccessKey -> Text

-- | User name with which the access key is associated.
dakUserName :: DeleteAccessKey -> Maybe Text
data DeleteAccessKeyResponse
DeleteAccessKeyResponse :: DeleteAccessKeyResponse
instance Typeable DeleteAccessKey
instance Typeable DeleteAccessKeyResponse
instance Eq DeleteAccessKey
instance Ord DeleteAccessKey
instance Show DeleteAccessKey
instance Eq DeleteAccessKeyResponse
instance Ord DeleteAccessKeyResponse
instance Show DeleteAccessKeyResponse
instance AsMemoryResponse DeleteAccessKeyResponse
instance Transaction DeleteAccessKey DeleteAccessKeyResponse
instance ResponseConsumer DeleteAccessKey DeleteAccessKeyResponse
instance SignQuery DeleteAccessKey

module Aws.Iam.Commands.DeleteUser

-- | Deletes the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html</a>
data DeleteUser
DeleteUser :: Text -> DeleteUser
data DeleteUserResponse
DeleteUserResponse :: DeleteUserResponse
instance Typeable DeleteUser
instance Typeable DeleteUserResponse
instance Eq DeleteUser
instance Ord DeleteUser
instance Show DeleteUser
instance Eq DeleteUserResponse
instance Ord DeleteUserResponse
instance Show DeleteUserResponse
instance AsMemoryResponse DeleteUserResponse
instance Transaction DeleteUser DeleteUserResponse
instance ResponseConsumer DeleteUser DeleteUserResponse
instance SignQuery DeleteUser

module Aws.Iam.Commands.DeleteUserPolicy

-- | Deletes the specified policy associated with the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html</a>
data DeleteUserPolicy
DeleteUserPolicy :: Text -> Text -> DeleteUserPolicy

-- | Name of the policy to be deleted.
dupPolicyName :: DeleteUserPolicy -> Text

-- | Name of the user with whom the policy is associated.
dupUserName :: DeleteUserPolicy -> Text
data DeleteUserPolicyResponse
DeleteUserPolicyResponse :: DeleteUserPolicyResponse
instance Typeable DeleteUserPolicy
instance Typeable DeleteUserPolicyResponse
instance Eq DeleteUserPolicy
instance Ord DeleteUserPolicy
instance Show DeleteUserPolicy
instance Eq DeleteUserPolicyResponse
instance Ord DeleteUserPolicyResponse
instance Show DeleteUserPolicyResponse
instance AsMemoryResponse DeleteUserPolicyResponse
instance Transaction DeleteUserPolicy DeleteUserPolicyResponse
instance ResponseConsumer DeleteUserPolicy DeleteUserPolicyResponse
instance SignQuery DeleteUserPolicy

module Aws.Iam.Commands.GetUser

-- | Retreives information about the given user.
--   
--   If a user name is not given, IAM determines the user name based on the
--   access key signing the request.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html</a>
data GetUser
GetUser :: (Maybe Text) -> GetUser
data GetUserResponse
GetUserResponse :: User -> GetUserResponse

-- | The IAM <tt>User</tt> data type.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html</a>
data User
User :: Text -> UTCTime -> Text -> Text -> Text -> User

-- | ARN used to refer to this user.
userArn :: User -> Text

-- | Date and time at which the user was created.
userCreateDate :: User -> UTCTime

-- | Path under which the user was created.
userPath :: User -> Text

-- | Unique identifier used to refer to this user.
userUserId :: User -> Text

-- | Name of the user.
userUserName :: User -> Text
instance Typeable GetUser
instance Typeable GetUserResponse
instance Eq GetUser
instance Ord GetUser
instance Show GetUser
instance Eq GetUserResponse
instance Ord GetUserResponse
instance Show GetUserResponse
instance AsMemoryResponse GetUserResponse
instance Transaction GetUser GetUserResponse
instance ResponseConsumer GetUser GetUserResponse
instance SignQuery GetUser

module Aws.Iam.Commands.GetUserPolicy

-- | Retreives the specified policy document for the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html</a>
data GetUserPolicy
GetUserPolicy :: Text -> Text -> GetUserPolicy

-- | Name of the policy.
gupPolicyName :: GetUserPolicy -> Text

-- | Name of the user with whom the policy is associated.
gupUserName :: GetUserPolicy -> Text
data GetUserPolicyResponse
GetUserPolicyResponse :: Text -> Text -> Text -> GetUserPolicyResponse

-- | The policy document.
guprPolicyDocument :: GetUserPolicyResponse -> Text

-- | Name of the policy.
guprPolicyName :: GetUserPolicyResponse -> Text

-- | Name of the user with whom the policy is associated.
guprUserName :: GetUserPolicyResponse -> Text
instance Typeable GetUserPolicy
instance Typeable GetUserPolicyResponse
instance Eq GetUserPolicy
instance Ord GetUserPolicy
instance Show GetUserPolicy
instance Eq GetUserPolicyResponse
instance Ord GetUserPolicyResponse
instance Show GetUserPolicyResponse
instance AsMemoryResponse GetUserPolicyResponse
instance Transaction GetUserPolicy GetUserPolicyResponse
instance ResponseConsumer GetUserPolicy GetUserPolicyResponse
instance SignQuery GetUserPolicy

module Aws.Iam.Commands.ListAccessKeys

-- | Returns the access keys associated with the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html</a>
data ListAccessKeys
ListAccessKeys :: Maybe Text -> Maybe Text -> Maybe Integer -> ListAccessKeys

-- | Name of the user. If the user name is not specified, IAM will
--   determine the user based on the key sigining the request.
lakUserName :: ListAccessKeys -> Maybe Text

-- | Used for paginating requests. Marks the position of the last request.
lakMarker :: ListAccessKeys -> Maybe Text

-- | Used for paginating requests. Specifies the maximum number of items to
--   return in the response. Defaults to 100.
lakMaxItems :: ListAccessKeys -> Maybe Integer
data ListAccessKeysResponse
ListAccessKeysResponse :: [AccessKeyMetadata] -> Bool -> Maybe Text -> ListAccessKeysResponse

-- | List of <a>AccessKeyMetadata</a> objects
lakrAccessKeyMetadata :: ListAccessKeysResponse -> [AccessKeyMetadata]

-- | <tt>True</tt> if the request was truncated because of too many items.
lakrIsTruncated :: ListAccessKeysResponse -> Bool

-- | Marks the position at which the request was truncated. This value must
--   be passed with the next request to continue listing from the last
--   position.
lakrMarker :: ListAccessKeysResponse -> Maybe Text
instance Typeable ListAccessKeys
instance Typeable AccessKeyMetadata
instance Typeable ListAccessKeysResponse
instance Eq ListAccessKeys
instance Ord ListAccessKeys
instance Show ListAccessKeys
instance Eq AccessKeyMetadata
instance Ord AccessKeyMetadata
instance Show AccessKeyMetadata
instance Eq ListAccessKeysResponse
instance Ord ListAccessKeysResponse
instance Show ListAccessKeysResponse
instance AsMemoryResponse ListAccessKeysResponse
instance IteratedTransaction ListAccessKeys ListAccessKeysResponse
instance Transaction ListAccessKeys ListAccessKeysResponse
instance ResponseConsumer ListAccessKeys ListAccessKeysResponse
instance SignQuery ListAccessKeys

module Aws.Iam.Commands.ListUserPolicies

-- | Lists the user policies associated with the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html</a>
data ListUserPolicies
ListUserPolicies :: Text -> Maybe Text -> Maybe Integer -> ListUserPolicies

-- | Policies associated with this user will be listed.
lupUserName :: ListUserPolicies -> Text

-- | Used for paginating requests. Marks the position of the last request.
lupMarker :: ListUserPolicies -> Maybe Text

-- | Used for paginating requests. Specifies the maximum number of items to
--   return in the response. Defaults to 100.
lupMaxItems :: ListUserPolicies -> Maybe Integer
data ListUserPoliciesResponse
ListUserPoliciesResponse :: [Text] -> Bool -> Maybe Text -> ListUserPoliciesResponse

-- | List of policy names.
luprPolicyNames :: ListUserPoliciesResponse -> [Text]

-- | <tt>True</tt> if the request was truncated because of too many items.
luprIsTruncated :: ListUserPoliciesResponse -> Bool

-- | Marks the position at which the request was truncated. This value must
--   be passed with the next request to continue listing from the last
--   position.
luprMarker :: ListUserPoliciesResponse -> Maybe Text
instance Typeable ListUserPolicies
instance Typeable ListUserPoliciesResponse
instance Eq ListUserPolicies
instance Ord ListUserPolicies
instance Show ListUserPolicies
instance Eq ListUserPoliciesResponse
instance Ord ListUserPoliciesResponse
instance Show ListUserPoliciesResponse
instance AsMemoryResponse ListUserPoliciesResponse
instance IteratedTransaction ListUserPolicies ListUserPoliciesResponse
instance Transaction ListUserPolicies ListUserPoliciesResponse
instance ResponseConsumer ListUserPolicies ListUserPoliciesResponse
instance SignQuery ListUserPolicies

module Aws.Iam.Commands.ListUsers

-- | Lists users that have the specified path prefix.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html</a>
data ListUsers
ListUsers :: Maybe Text -> Maybe Text -> Maybe Integer -> ListUsers

-- | Users defined under this path will be listed. If omitted, defaults to
--   <tt>/</tt>, which lists all users.
luPathPrefix :: ListUsers -> Maybe Text

-- | Used for paginating requests. Marks the position of the last request.
luMarker :: ListUsers -> Maybe Text

-- | Used for paginating requests. Specifies the maximum number of items to
--   return in the response. Defaults to 100.
luMaxItems :: ListUsers -> Maybe Integer
data ListUsersResponse
ListUsersResponse :: [User] -> Bool -> Maybe Text -> ListUsersResponse

-- | List of <a>User</a>s.
lurUsers :: ListUsersResponse -> [User]

-- | <tt>True</tt> if the request was truncated because of too many items.
lurIsTruncated :: ListUsersResponse -> Bool

-- | Marks the position at which the request was truncated. This value must
--   be passed with the next request to continue listing from the last
--   position.
lurMarker :: ListUsersResponse -> Maybe Text

-- | The IAM <tt>User</tt> data type.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html</a>
data User
User :: Text -> UTCTime -> Text -> Text -> Text -> User

-- | ARN used to refer to this user.
userArn :: User -> Text

-- | Date and time at which the user was created.
userCreateDate :: User -> UTCTime

-- | Path under which the user was created.
userPath :: User -> Text

-- | Unique identifier used to refer to this user.
userUserId :: User -> Text

-- | Name of the user.
userUserName :: User -> Text
instance Typeable ListUsers
instance Typeable ListUsersResponse
instance Eq ListUsers
instance Ord ListUsers
instance Show ListUsers
instance Eq ListUsersResponse
instance Ord ListUsersResponse
instance Show ListUsersResponse
instance AsMemoryResponse ListUsersResponse
instance IteratedTransaction ListUsers ListUsersResponse
instance Transaction ListUsers ListUsersResponse
instance ResponseConsumer ListUsers ListUsersResponse
instance SignQuery ListUsers

module Aws.Iam.Commands.PutUserPolicy

-- | Adds a policy document with the specified name, associated with the
--   specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html</a>
data PutUserPolicy
PutUserPolicy :: Text -> Text -> Text -> PutUserPolicy

-- | The policy document.
pupPolicyDocument :: PutUserPolicy -> Text

-- | Name of the policy.
pupPolicyName :: PutUserPolicy -> Text

-- | Name of the user with whom this policy is associated.
pupUserName :: PutUserPolicy -> Text
data PutUserPolicyResponse
PutUserPolicyResponse :: PutUserPolicyResponse
instance Typeable PutUserPolicy
instance Typeable PutUserPolicyResponse
instance Eq PutUserPolicy
instance Ord PutUserPolicy
instance Show PutUserPolicy
instance Eq PutUserPolicyResponse
instance Ord PutUserPolicyResponse
instance Show PutUserPolicyResponse
instance AsMemoryResponse PutUserPolicyResponse
instance Transaction PutUserPolicy PutUserPolicyResponse
instance ResponseConsumer PutUserPolicy PutUserPolicyResponse
instance SignQuery PutUserPolicy

module Aws.Iam.Commands.UpdateAccessKey

-- | Changes the status of the specified access key.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html</a>
data UpdateAccessKey
UpdateAccessKey :: Text -> AccessKeyStatus -> Maybe Text -> UpdateAccessKey

-- | ID of the access key to update.
uakAccessKeyId :: UpdateAccessKey -> Text

-- | New status of the access key.
uakStatus :: UpdateAccessKey -> AccessKeyStatus

-- | Name of the user to whom the access key belongs. If omitted, the user
--   will be determined based on the access key used to sign the request.
uakUserName :: UpdateAccessKey -> Maybe Text
data UpdateAccessKeyResponse
UpdateAccessKeyResponse :: UpdateAccessKeyResponse
instance Typeable UpdateAccessKey
instance Typeable UpdateAccessKeyResponse
instance Eq UpdateAccessKey
instance Ord UpdateAccessKey
instance Show UpdateAccessKey
instance Eq UpdateAccessKeyResponse
instance Ord UpdateAccessKeyResponse
instance Show UpdateAccessKeyResponse
instance AsMemoryResponse UpdateAccessKeyResponse
instance Transaction UpdateAccessKey UpdateAccessKeyResponse
instance ResponseConsumer UpdateAccessKey UpdateAccessKeyResponse
instance SignQuery UpdateAccessKey

module Aws.Iam.Commands.UpdateUser

-- | Updates the name and/or path of the specified user.
--   
--   
--   <a>http://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html</a>
data UpdateUser
UpdateUser :: Text -> Maybe Text -> Maybe Text -> UpdateUser

-- | Name of the user to be updated.
uuUserName :: UpdateUser -> Text

-- | New name for the user.
uuNewUserName :: UpdateUser -> Maybe Text

-- | New path to which the user will be moved.
uuNewPath :: UpdateUser -> Maybe Text
data UpdateUserResponse
UpdateUserResponse :: UpdateUserResponse
instance Typeable UpdateUser
instance Typeable UpdateUserResponse
instance Eq UpdateUser
instance Ord UpdateUser
instance Show UpdateUser
instance Eq UpdateUserResponse
instance Ord UpdateUserResponse
instance Show UpdateUserResponse
instance AsMemoryResponse UpdateUserResponse
instance Transaction UpdateUser UpdateUserResponse
instance ResponseConsumer UpdateUser UpdateUserResponse
instance SignQuery UpdateUser

module Aws.Iam.Commands

module Aws.Iam

module Aws.S3.Core
data S3Authorization
S3AuthorizationHeader :: S3Authorization
S3AuthorizationQuery :: S3Authorization
data RequestStyle

-- | Requires correctly setting region endpoint, but allows non-DNS
--   compliant bucket names in the US standard region.
PathStyle :: RequestStyle

-- | Bucket name must be DNS compliant.
BucketStyle :: RequestStyle
VHostStyle :: RequestStyle
data S3Configuration qt
S3Configuration :: Protocol -> ByteString -> RequestStyle -> Int -> Maybe ServerSideEncryption -> Bool -> NominalDiffTime -> S3Configuration qt
s3Protocol :: S3Configuration qt -> Protocol
s3Endpoint :: S3Configuration qt -> ByteString
s3RequestStyle :: S3Configuration qt -> RequestStyle
s3Port :: S3Configuration qt -> Int
s3ServerSideEncryption :: S3Configuration qt -> Maybe ServerSideEncryption
s3UseUri :: S3Configuration qt -> Bool
s3DefaultExpiry :: S3Configuration qt -> NominalDiffTime
s3EndpointUsClassic :: ByteString
s3EndpointUsWest :: ByteString
s3EndpointUsWest2 :: ByteString
s3EndpointEu :: ByteString
s3EndpointApSouthEast :: ByteString
s3EndpointApSouthEast2 :: ByteString
s3EndpointApNorthEast :: ByteString
s3 :: Protocol -> ByteString -> Bool -> S3Configuration qt
type ErrorCode = Text
data S3Error
S3Error :: Status -> ErrorCode -> Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ByteString -> S3Error
s3StatusCode :: S3Error -> Status
s3ErrorCode :: S3Error -> ErrorCode
s3ErrorMessage :: S3Error -> Text
s3ErrorResource :: S3Error -> Maybe Text
s3ErrorHostId :: S3Error -> Maybe Text
s3ErrorAccessKeyId :: S3Error -> Maybe Text
s3ErrorStringToSign :: S3Error -> Maybe ByteString
data S3Metadata
S3Metadata :: Maybe Text -> Maybe Text -> S3Metadata
s3MAmzId2 :: S3Metadata -> Maybe Text
s3MRequestId :: S3Metadata -> Maybe Text
data S3Query
S3Query :: Method -> Maybe ByteString -> Maybe ByteString -> Query -> Query -> Maybe ByteString -> Maybe (Digest MD5) -> RequestHeaders -> RequestHeaders -> Maybe RequestBody -> S3Query
s3QMethod :: S3Query -> Method
s3QBucket :: S3Query -> Maybe ByteString
s3QObject :: S3Query -> Maybe ByteString
s3QSubresources :: S3Query -> Query
s3QQuery :: S3Query -> Query
s3QContentType :: S3Query -> Maybe ByteString
s3QContentMd5 :: S3Query -> Maybe (Digest MD5)
s3QAmzHeaders :: S3Query -> RequestHeaders
s3QOtherHeaders :: S3Query -> RequestHeaders
s3QRequestBody :: S3Query -> Maybe RequestBody
s3SignQuery :: S3Query -> S3Configuration qt -> SignatureData -> SignedQuery
s3ResponseConsumer :: HTTPResponseConsumer a -> IORef S3Metadata -> HTTPResponseConsumer a
s3BinaryResponseConsumer :: HTTPResponseConsumer a -> IORef S3Metadata -> HTTPResponseConsumer a
s3XmlResponseConsumer :: (Cursor -> Response S3Metadata a) -> IORef S3Metadata -> HTTPResponseConsumer a
s3ErrorResponseConsumer :: HTTPResponseConsumer a
type CanonicalUserId = Text
data UserInfo
UserInfo :: CanonicalUserId -> Text -> UserInfo
userId :: UserInfo -> CanonicalUserId
userDisplayName :: UserInfo -> Text
parseUserInfo :: MonadThrow m => Cursor -> m UserInfo
data CannedAcl
AclPrivate :: CannedAcl
AclPublicRead :: CannedAcl
AclPublicReadWrite :: CannedAcl
AclAuthenticatedRead :: CannedAcl
AclBucketOwnerRead :: CannedAcl
AclBucketOwnerFullControl :: CannedAcl
AclLogDeliveryWrite :: CannedAcl
writeCannedAcl :: CannedAcl -> Text
data StorageClass
Standard :: StorageClass
ReducedRedundancy :: StorageClass
Glacier :: StorageClass
parseStorageClass :: MonadThrow m => Text -> m StorageClass
writeStorageClass :: StorageClass -> Text
data ServerSideEncryption
AES256 :: ServerSideEncryption
parseServerSideEncryption :: MonadThrow m => Text -> m ServerSideEncryption
writeServerSideEncryption :: ServerSideEncryption -> Text
type Bucket = Text
data BucketInfo
BucketInfo :: Bucket -> UTCTime -> BucketInfo
bucketName :: BucketInfo -> Bucket
bucketCreationDate :: BucketInfo -> UTCTime
type Object = Text
data ObjectId
ObjectId :: Bucket -> Object -> Maybe Text -> ObjectId
oidBucket :: ObjectId -> Bucket
oidObject :: ObjectId -> Object
oidVersion :: ObjectId -> Maybe Text
data ObjectInfo
ObjectInfo :: Text -> UTCTime -> Text -> Integer -> StorageClass -> Maybe UserInfo -> ObjectInfo
objectKey :: ObjectInfo -> Text
objectLastModified :: ObjectInfo -> UTCTime
objectETag :: ObjectInfo -> Text
objectSize :: ObjectInfo -> Integer
objectStorageClass :: ObjectInfo -> StorageClass
objectOwner :: ObjectInfo -> Maybe UserInfo
parseObjectInfo :: MonadThrow m => Cursor -> m ObjectInfo
data ObjectMetadata
ObjectMetadata :: Bool -> Text -> UTCTime -> Maybe Text -> [(Text, Text)] -> Maybe Text -> Maybe ServerSideEncryption -> ObjectMetadata
omDeleteMarker :: ObjectMetadata -> Bool
omETag :: ObjectMetadata -> Text
omLastModified :: ObjectMetadata -> UTCTime
omVersionId :: ObjectMetadata -> Maybe Text
omUserMetadata :: ObjectMetadata -> [(Text, Text)]
omMissingUserMetadata :: ObjectMetadata -> Maybe Text
omServerSideEncryption :: ObjectMetadata -> Maybe ServerSideEncryption
parseObjectMetadata :: MonadThrow m => ResponseHeaders -> m ObjectMetadata
type LocationConstraint = Text
locationUsClassic :: LocationConstraint
locationSA :: LocationConstraint
locationApNorthEast :: LocationConstraint
locationApSouthEast2 :: LocationConstraint
locationApSouthEast :: LocationConstraint
locationEuFrankfurt :: LocationConstraint
locationEu :: LocationConstraint
locationUsWest2 :: LocationConstraint
locationUsWest :: LocationConstraint
normaliseLocation :: LocationConstraint -> LocationConstraint
instance Typeable S3Error
instance Typeable S3Metadata
instance Show S3Authorization
instance Show RequestStyle
instance Show S3Error
instance Show S3Metadata
instance Show UserInfo
instance Show CannedAcl
instance Show StorageClass
instance Show ServerSideEncryption
instance Show (S3Configuration qt)
instance Show BucketInfo
instance Show ObjectId
instance Show ObjectInfo
instance Show ObjectMetadata
instance Show S3Query
instance Loggable S3Metadata
instance Monoid S3Metadata
instance Exception S3Error
instance DefaultServiceConfiguration (S3Configuration UriOnlyQuery)
instance DefaultServiceConfiguration (S3Configuration NormalQuery)

module Aws.S3.Commands.CopyObject
data CopyMetadataDirective
CopyMetadata :: CopyMetadataDirective
ReplaceMetadata :: [(Text, Text)] -> CopyMetadataDirective
data CopyObject
CopyObject :: Text -> Bucket -> ObjectId -> CopyMetadataDirective -> Maybe Text -> Maybe Text -> Maybe UTCTime -> Maybe UTCTime -> Maybe StorageClass -> Maybe CannedAcl -> Maybe ByteString -> CopyObject
coObjectName :: CopyObject -> Text
coBucket :: CopyObject -> Bucket
coSource :: CopyObject -> ObjectId
coMetadataDirective :: CopyObject -> CopyMetadataDirective
coIfMatch :: CopyObject -> Maybe Text
coIfNoneMatch :: CopyObject -> Maybe Text
coIfUnmodifiedSince :: CopyObject -> Maybe UTCTime
coIfModifiedSince :: CopyObject -> Maybe UTCTime
coStorageClass :: CopyObject -> Maybe StorageClass
coAcl :: CopyObject -> Maybe CannedAcl
coContentType :: CopyObject -> Maybe ByteString
copyObject :: Bucket -> Text -> ObjectId -> CopyMetadataDirective -> CopyObject
data CopyObjectResponse
CopyObjectResponse :: Maybe Text -> UTCTime -> Text -> CopyObjectResponse
corVersionId :: CopyObjectResponse -> Maybe Text
corLastModified :: CopyObjectResponse -> UTCTime
corETag :: CopyObjectResponse -> Text

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show CopyMetadataDirective
instance Show CopyObject
instance Show CopyObjectResponse
instance AsMemoryResponse CopyObjectResponse
instance Transaction CopyObject CopyObjectResponse
instance ResponseConsumer CopyObject CopyObjectResponse
instance SignQuery CopyObject

module Aws.S3.Commands.DeleteBucket
data DeleteBucket
DeleteBucket :: Bucket -> DeleteBucket
dbBucket :: DeleteBucket -> Bucket
data DeleteBucketResponse
DeleteBucketResponse :: DeleteBucketResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show DeleteBucket
instance Show DeleteBucketResponse
instance AsMemoryResponse DeleteBucketResponse
instance Transaction DeleteBucket DeleteBucketResponse
instance ResponseConsumer DeleteBucket DeleteBucketResponse
instance SignQuery DeleteBucket

module Aws.S3.Commands.DeleteObject
data DeleteObject
DeleteObject :: Text -> Bucket -> DeleteObject
doObjectName :: DeleteObject -> Text
doBucket :: DeleteObject -> Bucket
data DeleteObjectResponse
DeleteObjectResponse :: DeleteObjectResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance AsMemoryResponse DeleteObjectResponse
instance Transaction DeleteObject DeleteObjectResponse
instance ResponseConsumer DeleteObject DeleteObjectResponse
instance SignQuery DeleteObject

module Aws.S3.Commands.DeleteObjects
data DeleteObjects
DeleteObjects :: Bucket -> [(Object, Maybe Text)] -> Bool -> Maybe Text -> DeleteObjects
dosBucket :: DeleteObjects -> Bucket
dosObjects :: DeleteObjects -> [(Object, Maybe Text)]
dosQuiet :: DeleteObjects -> Bool
dosMultiFactorAuthentication :: DeleteObjects -> Maybe Text
deleteObjects :: Bucket -> [Text] -> DeleteObjects
data DeleteObjectsResponse
DeleteObjectsResponse :: [DORDeleted] -> [DORErrors] -> DeleteObjectsResponse
dorDeleted :: DeleteObjectsResponse -> [DORDeleted]
dorErrors :: DeleteObjectsResponse -> [DORErrors]
data DORDeleted
DORDeleted :: Text -> Maybe Text -> Maybe Text -> DORDeleted
ddKey :: DORDeleted -> Text
ddVersionId :: DORDeleted -> Maybe Text
ddDeleteMarkerVersionId :: DORDeleted -> Maybe Text
data DORErrors
DORErrors :: Text -> Text -> Text -> DORErrors
deKey :: DORErrors -> Text
deCode :: DORErrors -> Text
deMessage :: DORErrors -> Text

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show DeleteObjects
instance Show DORDeleted
instance Show DORErrors
instance Show DeleteObjectsResponse
instance AsMemoryResponse DeleteObjectsResponse
instance Transaction DeleteObjects DeleteObjectsResponse
instance ResponseConsumer DeleteObjects DeleteObjectsResponse
instance SignQuery DeleteObjects

module Aws.S3.Commands.GetBucket
data GetBucket
GetBucket :: Bucket -> Maybe Text -> Maybe Text -> Maybe Int -> Maybe Text -> GetBucket
gbBucket :: GetBucket -> Bucket
gbDelimiter :: GetBucket -> Maybe Text
gbMarker :: GetBucket -> Maybe Text
gbMaxKeys :: GetBucket -> Maybe Int
gbPrefix :: GetBucket -> Maybe Text
getBucket :: Bucket -> GetBucket
data GetBucketResponse
GetBucketResponse :: Bucket -> Maybe Text -> Maybe Text -> Maybe Int -> Maybe Text -> [ObjectInfo] -> [Text] -> Bool -> Maybe Text -> GetBucketResponse
gbrName :: GetBucketResponse -> Bucket
gbrDelimiter :: GetBucketResponse -> Maybe Text
gbrMarker :: GetBucketResponse -> Maybe Text
gbrMaxKeys :: GetBucketResponse -> Maybe Int
gbrPrefix :: GetBucketResponse -> Maybe Text
gbrContents :: GetBucketResponse -> [ObjectInfo]
gbrCommonPrefixes :: GetBucketResponse -> [Text]
gbrIsTruncated :: GetBucketResponse -> Bool
gbrNextMarker :: GetBucketResponse -> Maybe Text

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show GetBucket
instance Show GetBucketResponse
instance AsMemoryResponse GetBucketResponse
instance ListResponse GetBucketResponse ObjectInfo
instance IteratedTransaction GetBucket GetBucketResponse
instance Transaction GetBucket GetBucketResponse
instance ResponseConsumer r GetBucketResponse
instance SignQuery GetBucket

module Aws.S3.Commands.GetBucketLocation
data GetBucketLocation
GetBucketLocation :: Bucket -> GetBucketLocation
gblBucket :: GetBucketLocation -> Bucket
getBucketLocation :: Bucket -> GetBucketLocation
data GetBucketLocationResponse
GetBucketLocationResponse :: LocationConstraint -> GetBucketLocationResponse
gblrLocationConstraint :: GetBucketLocationResponse -> LocationConstraint
instance Show GetBucketLocation
instance Show GetBucketLocationResponse
instance AsMemoryResponse GetBucketLocationResponse
instance Transaction GetBucketLocation GetBucketLocationResponse
instance ResponseConsumer r GetBucketLocationResponse
instance SignQuery GetBucketLocation

module Aws.S3.Commands.GetObject
data GetObject
GetObject :: Bucket -> Object -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe (Int, Int) -> GetObject
goBucket :: GetObject -> Bucket
goObjectName :: GetObject -> Object
goVersionId :: GetObject -> Maybe Text
goResponseContentType :: GetObject -> Maybe Text
goResponseContentLanguage :: GetObject -> Maybe Text
goResponseExpires :: GetObject -> Maybe Text
goResponseCacheControl :: GetObject -> Maybe Text
goResponseContentDisposition :: GetObject -> Maybe Text
goResponseContentEncoding :: GetObject -> Maybe Text
goResponseContentRange :: GetObject -> Maybe (Int, Int)
getObject :: Bucket -> Text -> GetObject
data GetObjectResponse
GetObjectResponse :: ObjectMetadata -> Response (ResumableSource (ResourceT IO) ByteString) -> GetObjectResponse
gorMetadata :: GetObjectResponse -> ObjectMetadata
gorResponse :: GetObjectResponse -> Response (ResumableSource (ResourceT IO) ByteString)
data GetObjectMemoryResponse
GetObjectMemoryResponse :: ObjectMetadata -> (Response ByteString) -> GetObjectMemoryResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show GetObject
instance Show GetObjectMemoryResponse
instance AsMemoryResponse GetObjectResponse
instance Transaction GetObject GetObjectResponse
instance ResponseConsumer GetObject GetObjectResponse
instance SignQuery GetObject

module Aws.S3.Commands.GetService
data GetService
GetService :: GetService
data GetServiceResponse
GetServiceResponse :: UserInfo -> [BucketInfo] -> GetServiceResponse
gsrOwner :: GetServiceResponse -> UserInfo
gsrBuckets :: GetServiceResponse -> [BucketInfo]

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show GetServiceResponse
instance AsMemoryResponse GetServiceResponse
instance Transaction GetService GetServiceResponse
instance SignQuery GetService
instance ResponseConsumer r GetServiceResponse

module Aws.S3.Commands.HeadObject
data HeadObject
HeadObject :: Bucket -> Object -> Maybe Text -> HeadObject
hoBucket :: HeadObject -> Bucket
hoObjectName :: HeadObject -> Object
hoVersionId :: HeadObject -> Maybe Text
headObject :: Bucket -> Text -> HeadObject
data HeadObjectResponse
HeadObjectResponse :: Maybe ObjectMetadata -> HeadObjectResponse
horMetadata :: HeadObjectResponse -> Maybe ObjectMetadata
data HeadObjectMemoryResponse
HeadObjectMemoryResponse :: (Maybe ObjectMetadata) -> HeadObjectMemoryResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show HeadObject
instance Show HeadObjectMemoryResponse
instance AsMemoryResponse HeadObjectResponse
instance Transaction HeadObject HeadObjectResponse
instance ResponseConsumer HeadObject HeadObjectResponse
instance SignQuery HeadObject

module Aws.S3.Commands.PutBucket
data PutBucket
PutBucket :: Bucket -> Maybe CannedAcl -> LocationConstraint -> PutBucket
pbBucket :: PutBucket -> Bucket
pbCannedAcl :: PutBucket -> Maybe CannedAcl
pbLocationConstraint :: PutBucket -> LocationConstraint
data PutBucketResponse
PutBucketResponse :: PutBucketResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show PutBucket
instance Show PutBucketResponse
instance AsMemoryResponse PutBucketResponse
instance Transaction PutBucket PutBucketResponse
instance ResponseConsumer r PutBucketResponse
instance SignQuery PutBucket

module Aws.S3.Commands.PutObject
data PutObject
PutObject :: Text -> Bucket -> Maybe ByteString -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe (Digest MD5) -> Maybe Int -> Maybe CannedAcl -> Maybe StorageClass -> Maybe Text -> Maybe ServerSideEncryption -> RequestBody -> [(Text, Text)] -> Bool -> PutObject
poObjectName :: PutObject -> Text
poBucket :: PutObject -> Bucket
poContentType :: PutObject -> Maybe ByteString
poCacheControl :: PutObject -> Maybe Text
poContentDisposition :: PutObject -> Maybe Text
poContentEncoding :: PutObject -> Maybe Text
poContentMD5 :: PutObject -> Maybe (Digest MD5)
poExpires :: PutObject -> Maybe Int
poAcl :: PutObject -> Maybe CannedAcl
poStorageClass :: PutObject -> Maybe StorageClass
poWebsiteRedirectLocation :: PutObject -> Maybe Text
poServerSideEncryption :: PutObject -> Maybe ServerSideEncryption
poRequestBody :: PutObject -> RequestBody
poMetadata :: PutObject -> [(Text, Text)]

-- | Internet Archive S3 nonstandard extension
poAutoMakeBucket :: PutObject -> Bool
putObject :: Bucket -> Text -> RequestBody -> PutObject
data PutObjectResponse
PutObjectResponse :: Maybe Text -> PutObjectResponse
porVersionId :: PutObjectResponse -> Maybe Text

-- | ServiceConfiguration: <a>S3Configuration</a>
instance Show PutObjectResponse
instance AsMemoryResponse PutObjectResponse
instance Transaction PutObject PutObjectResponse
instance ResponseConsumer PutObject PutObjectResponse
instance SignQuery PutObject

module Aws.Ses.Core
data SesError
SesError :: Status -> Text -> Text -> SesError
sesStatusCode :: SesError -> Status
sesErrorCode :: SesError -> Text
sesErrorMessage :: SesError -> Text
data SesMetadata
SesMetadata :: Maybe Text -> SesMetadata
requestId :: SesMetadata -> Maybe Text
data SesConfiguration qt
SesConfiguration :: Method -> ByteString -> SesConfiguration qt
sesiHttpMethod :: SesConfiguration qt -> Method
sesiHost :: SesConfiguration qt -> ByteString
sesEuWest1 :: ByteString
sesUsEast :: ByteString
sesUsEast1 :: ByteString
sesUsWest2 :: ByteString
sesHttpsGet :: ByteString -> SesConfiguration qt
sesHttpsPost :: ByteString -> SesConfiguration NormalQuery
sesSignQuery :: [(ByteString, ByteString)] -> SesConfiguration qt -> SignatureData -> SignedQuery
sesResponseConsumer :: (Cursor -> Response SesMetadata a) -> IORef SesMetadata -> HTTPResponseConsumer a

-- | A raw e-mail.
data RawMessage
RawMessage :: ByteString -> RawMessage
rawMessageData :: RawMessage -> ByteString

-- | The destinations of an e-mail.
data Destination
Destination :: [EmailAddress] -> [EmailAddress] -> [EmailAddress] -> Destination
destinationBccAddresses :: Destination -> [EmailAddress]
destinationCcAddresses :: Destination -> [EmailAddress]
destinationToAddresses :: Destination -> [EmailAddress]

-- | An e-mail address.
type EmailAddress = Text

-- | The sender's e-mail address.
data Sender
Sender :: EmailAddress -> Sender
senderAddress :: Sender -> EmailAddress

-- | Write a data type as a list of query parameters.
sesAsQuery :: SesAsQuery a => a -> [(ByteString, ByteString)]
instance Typeable SesError
instance Typeable SesMetadata
instance Typeable RawMessage
instance Typeable Destination
instance Typeable Sender
instance Show SesError
instance Show SesMetadata
instance Show (SesConfiguration qt)
instance Eq RawMessage
instance Ord RawMessage
instance Show RawMessage
instance Eq Destination
instance Ord Destination
instance Show Destination
instance Eq Sender
instance Ord Sender
instance Show Sender
instance SesAsQuery Sender
instance Monoid Destination
instance SesAsQuery Destination
instance SesAsQuery RawMessage
instance SesAsQuery a => SesAsQuery (Maybe a)
instance DefaultServiceConfiguration (SesConfiguration UriOnlyQuery)
instance DefaultServiceConfiguration (SesConfiguration NormalQuery)
instance Monoid SesMetadata
instance Loggable SesMetadata
instance Exception SesError

module Aws.Ses.Commands.SendRawEmail

-- | Send a raw e-mail message.
data SendRawEmail
SendRawEmail :: [EmailAddress] -> RawMessage -> Maybe Sender -> SendRawEmail
srmDestinations :: SendRawEmail -> [EmailAddress]
srmRawMessage :: SendRawEmail -> RawMessage
srmSource :: SendRawEmail -> Maybe Sender

-- | The response sent back by Amazon SES after a <a>SendRawEmail</a>
--   command.
data SendRawEmailResponse
SendRawEmailResponse :: Text -> SendRawEmailResponse
srmrMessageId :: SendRawEmailResponse -> Text
instance Typeable SendRawEmail
instance Typeable SendRawEmailResponse
instance Eq SendRawEmail
instance Ord SendRawEmail
instance Show SendRawEmail
instance Eq SendRawEmailResponse
instance Ord SendRawEmailResponse
instance Show SendRawEmailResponse
instance AsMemoryResponse SendRawEmailResponse
instance Transaction SendRawEmail SendRawEmailResponse
instance ResponseConsumer SendRawEmail SendRawEmailResponse
instance SignQuery SendRawEmail

module Aws.Ses.Commands.ListIdentities

-- | List email addresses and/or domains
data ListIdentities
ListIdentities :: Maybe IdentityType -> Maybe Int -> Maybe Text -> ListIdentities
liIdentityType :: ListIdentities -> Maybe IdentityType
liMaxItems :: ListIdentities -> Maybe Int
liNextToken :: ListIdentities -> Maybe Text

-- | The response sent back by Amazon SES after a <a>ListIdentities</a>
--   command.
data ListIdentitiesResponse
ListIdentitiesResponse :: [Text] -> ListIdentitiesResponse
data IdentityType
EmailAddress :: IdentityType
Domain :: IdentityType
instance Typeable IdentityType
instance Typeable ListIdentities
instance Typeable ListIdentitiesResponse
instance Eq IdentityType
instance Ord IdentityType
instance Show IdentityType
instance Eq ListIdentities
instance Ord ListIdentities
instance Show ListIdentities
instance Eq ListIdentitiesResponse
instance Ord ListIdentitiesResponse
instance Show ListIdentitiesResponse
instance AsMemoryResponse ListIdentitiesResponse
instance Transaction ListIdentities ListIdentitiesResponse
instance ResponseConsumer ListIdentities ListIdentitiesResponse
instance SignQuery ListIdentities

module Aws.Ses.Commands.VerifyEmailIdentity

-- | List email addresses and/or domains
data VerifyEmailIdentity
VerifyEmailIdentity :: Text -> VerifyEmailIdentity

-- | The response sent back by Amazon SES after a
--   <a>VerifyEmailIdentity</a> command.
data VerifyEmailIdentityResponse
VerifyEmailIdentityResponse :: VerifyEmailIdentityResponse
instance Typeable VerifyEmailIdentity
instance Typeable VerifyEmailIdentityResponse
instance Eq VerifyEmailIdentity
instance Ord VerifyEmailIdentity
instance Show VerifyEmailIdentity
instance Eq VerifyEmailIdentityResponse
instance Ord VerifyEmailIdentityResponse
instance Show VerifyEmailIdentityResponse
instance AsMemoryResponse VerifyEmailIdentityResponse
instance Transaction VerifyEmailIdentity VerifyEmailIdentityResponse
instance ResponseConsumer VerifyEmailIdentity VerifyEmailIdentityResponse
instance SignQuery VerifyEmailIdentity

module Aws.Ses.Commands.VerifyDomainIdentity

-- | Verify ownership of a domain.
data VerifyDomainIdentity
VerifyDomainIdentity :: Text -> VerifyDomainIdentity

-- | The response sent back by Amazon SES after a
--   <a>VerifyDomainIdentity</a> command.
data VerifyDomainIdentityResponse
VerifyDomainIdentityResponse :: Text -> VerifyDomainIdentityResponse
instance Typeable VerifyDomainIdentity
instance Typeable VerifyDomainIdentityResponse
instance Eq VerifyDomainIdentity
instance Ord VerifyDomainIdentity
instance Show VerifyDomainIdentity
instance Eq VerifyDomainIdentityResponse
instance Ord VerifyDomainIdentityResponse
instance Show VerifyDomainIdentityResponse
instance AsMemoryResponse VerifyDomainIdentityResponse
instance Transaction VerifyDomainIdentity VerifyDomainIdentityResponse
instance ResponseConsumer VerifyDomainIdentity VerifyDomainIdentityResponse
instance SignQuery VerifyDomainIdentity

module Aws.Ses.Commands.VerifyDomainDkim

-- | Verify ownership of a domain.
data VerifyDomainDkim
VerifyDomainDkim :: Text -> VerifyDomainDkim

-- | The response sent back by Amazon SES after a <a>VerifyDomainDkim</a>
--   command.
data VerifyDomainDkimResponse
VerifyDomainDkimResponse :: [Text] -> VerifyDomainDkimResponse
instance Typeable VerifyDomainDkim
instance Typeable VerifyDomainDkimResponse
instance Eq VerifyDomainDkim
instance Ord VerifyDomainDkim
instance Show VerifyDomainDkim
instance Eq VerifyDomainDkimResponse
instance Ord VerifyDomainDkimResponse
instance Show VerifyDomainDkimResponse
instance AsMemoryResponse VerifyDomainDkimResponse
instance Transaction VerifyDomainDkim VerifyDomainDkimResponse
instance ResponseConsumer VerifyDomainDkim VerifyDomainDkimResponse
instance SignQuery VerifyDomainDkim

module Aws.Ses.Commands.DeleteIdentity

-- | Delete an email address or domain
data DeleteIdentity
DeleteIdentity :: Text -> DeleteIdentity

-- | The response sent back by Amazon SES after a <a>DeleteIdentity</a>
--   command.
data DeleteIdentityResponse
DeleteIdentityResponse :: DeleteIdentityResponse
instance Typeable DeleteIdentity
instance Typeable DeleteIdentityResponse
instance Eq DeleteIdentity
instance Ord DeleteIdentity
instance Show DeleteIdentity
instance Eq DeleteIdentityResponse
instance Ord DeleteIdentityResponse
instance Show DeleteIdentityResponse
instance AsMemoryResponse DeleteIdentityResponse
instance Transaction DeleteIdentity DeleteIdentityResponse
instance ResponseConsumer DeleteIdentity DeleteIdentityResponse
instance SignQuery DeleteIdentity

module Aws.Ses.Commands.GetIdentityDkimAttributes

-- | Get notification settings for the given identities.
data GetIdentityDkimAttributes
GetIdentityDkimAttributes :: [Text] -> GetIdentityDkimAttributes

-- | The response sent back by Amazon SES after a
--   <a>GetIdentityDkimAttributes</a> command.
data GetIdentityDkimAttributesResponse
GetIdentityDkimAttributesResponse :: [IdentityDkimAttributes] -> GetIdentityDkimAttributesResponse
data IdentityDkimAttributes
IdentityDkimAttributes :: Text -> Bool -> [Text] -> Text -> IdentityDkimAttributes
idIdentity :: IdentityDkimAttributes -> Text
idDkimEnabled :: IdentityDkimAttributes -> Bool
idDkimTokens :: IdentityDkimAttributes -> [Text]
idDkimVerirficationStatus :: IdentityDkimAttributes -> Text
instance Typeable GetIdentityDkimAttributes
instance Typeable IdentityDkimAttributes
instance Typeable GetIdentityDkimAttributesResponse
instance Eq GetIdentityDkimAttributes
instance Ord GetIdentityDkimAttributes
instance Show GetIdentityDkimAttributes
instance Eq IdentityDkimAttributes
instance Ord IdentityDkimAttributes
instance Show IdentityDkimAttributes
instance Eq GetIdentityDkimAttributesResponse
instance Ord GetIdentityDkimAttributesResponse
instance Show GetIdentityDkimAttributesResponse
instance AsMemoryResponse GetIdentityDkimAttributesResponse
instance Transaction GetIdentityDkimAttributes GetIdentityDkimAttributesResponse
instance ResponseConsumer GetIdentityDkimAttributes GetIdentityDkimAttributesResponse
instance SignQuery GetIdentityDkimAttributes

module Aws.Ses.Commands.GetIdentityNotificationAttributes

-- | Get notification settings for the given identities.
data GetIdentityNotificationAttributes
GetIdentityNotificationAttributes :: [Text] -> GetIdentityNotificationAttributes

-- | The response sent back by Amazon SES after a
--   <a>GetIdentityNotificationAttributes</a> command.
data GetIdentityNotificationAttributesResponse
GetIdentityNotificationAttributesResponse :: [IdentityNotificationAttributes] -> GetIdentityNotificationAttributesResponse
data IdentityNotificationAttributes
IdentityNotificationAttributes :: Text -> Maybe Text -> Maybe Text -> Bool -> IdentityNotificationAttributes
inIdentity :: IdentityNotificationAttributes -> Text
inBounceTopic :: IdentityNotificationAttributes -> Maybe Text
inComplaintTopic :: IdentityNotificationAttributes -> Maybe Text
inForwardingEnabled :: IdentityNotificationAttributes -> Bool
instance Typeable GetIdentityNotificationAttributes
instance Typeable IdentityNotificationAttributes
instance Typeable GetIdentityNotificationAttributesResponse
instance Eq GetIdentityNotificationAttributes
instance Ord GetIdentityNotificationAttributes
instance Show GetIdentityNotificationAttributes
instance Eq IdentityNotificationAttributes
instance Ord IdentityNotificationAttributes
instance Show IdentityNotificationAttributes
instance Eq GetIdentityNotificationAttributesResponse
instance Ord GetIdentityNotificationAttributesResponse
instance Show GetIdentityNotificationAttributesResponse
instance AsMemoryResponse GetIdentityNotificationAttributesResponse
instance Transaction GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse
instance ResponseConsumer GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse
instance SignQuery GetIdentityNotificationAttributes

module Aws.Ses.Commands.GetIdentityVerificationAttributes

-- | Get verification status for a list of email addresses and/or domains
data GetIdentityVerificationAttributes
GetIdentityVerificationAttributes :: [Text] -> GetIdentityVerificationAttributes

-- | The response sent back by Amazon SES after a
--   <a>GetIdentityVerificationAttributes</a> command.
data GetIdentityVerificationAttributesResponse
GetIdentityVerificationAttributesResponse :: [IdentityVerificationAttributes] -> GetIdentityVerificationAttributesResponse
data IdentityVerificationAttributes
IdentityVerificationAttributes :: Text -> Text -> Maybe Text -> IdentityVerificationAttributes
ivIdentity :: IdentityVerificationAttributes -> Text
ivVerificationStatus :: IdentityVerificationAttributes -> Text
ivVerificationToken :: IdentityVerificationAttributes -> Maybe Text
instance Typeable GetIdentityVerificationAttributes
instance Typeable IdentityVerificationAttributes
instance Typeable GetIdentityVerificationAttributesResponse
instance Eq GetIdentityVerificationAttributes
instance Ord GetIdentityVerificationAttributes
instance Show GetIdentityVerificationAttributes
instance Eq IdentityVerificationAttributes
instance Ord IdentityVerificationAttributes
instance Show IdentityVerificationAttributes
instance Eq GetIdentityVerificationAttributesResponse
instance Ord GetIdentityVerificationAttributesResponse
instance Show GetIdentityVerificationAttributesResponse
instance AsMemoryResponse GetIdentityVerificationAttributesResponse
instance Transaction GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse
instance ResponseConsumer GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse
instance SignQuery GetIdentityVerificationAttributes

module Aws.Ses.Commands.SetIdentityNotificationTopic

-- | Change or remove the Amazon SNS notification topic to which
--   notification of the given type are published.
data SetIdentityNotificationTopic
SetIdentityNotificationTopic :: Text -> NotificationType -> Maybe Text -> SetIdentityNotificationTopic

-- | The identity for which the SNS topic will be changed.
sntIdentity :: SetIdentityNotificationTopic -> Text

-- | The type of notifications that will be published to the topic.
sntNotificationType :: SetIdentityNotificationTopic -> NotificationType

-- | <tt>Just</tt> the ARN of the SNS topic or <tt>Nothing</tt> to unset
--   the topic.
sntSnsTopic :: SetIdentityNotificationTopic -> Maybe Text

-- | The response sent back by SES after the
--   <a>SetIdentityNotificationTopic</a> command.
data SetIdentityNotificationTopicResponse
SetIdentityNotificationTopicResponse :: SetIdentityNotificationTopicResponse
data NotificationType
Bounce :: NotificationType
Complaint :: NotificationType
instance Typeable NotificationType
instance Typeable SetIdentityNotificationTopic
instance Typeable SetIdentityNotificationTopicResponse
instance Eq NotificationType
instance Ord NotificationType
instance Show NotificationType
instance Eq SetIdentityNotificationTopic
instance Ord SetIdentityNotificationTopic
instance Show SetIdentityNotificationTopic
instance Eq SetIdentityNotificationTopicResponse
instance Ord SetIdentityNotificationTopicResponse
instance Show SetIdentityNotificationTopicResponse
instance AsMemoryResponse SetIdentityNotificationTopicResponse
instance Transaction SetIdentityNotificationTopic SetIdentityNotificationTopicResponse
instance ResponseConsumer SetIdentityNotificationTopic SetIdentityNotificationTopicResponse
instance SignQuery SetIdentityNotificationTopic

module Aws.Ses.Commands.SetIdentityDkimEnabled

-- | Change whether bounces and complaints for the given identity will be
--   DKIM signed.
data SetIdentityDkimEnabled
SetIdentityDkimEnabled :: Bool -> Text -> SetIdentityDkimEnabled
sdDkimEnabled :: SetIdentityDkimEnabled -> Bool
sdIdentity :: SetIdentityDkimEnabled -> Text

-- | The response sent back by SES after the <a>SetIdentityDkimEnabled</a>
--   command.
data SetIdentityDkimEnabledResponse
SetIdentityDkimEnabledResponse :: SetIdentityDkimEnabledResponse
instance Typeable SetIdentityDkimEnabled
instance Typeable SetIdentityDkimEnabledResponse
instance Eq SetIdentityDkimEnabled
instance Ord SetIdentityDkimEnabled
instance Show SetIdentityDkimEnabled
instance Eq SetIdentityDkimEnabledResponse
instance Ord SetIdentityDkimEnabledResponse
instance Show SetIdentityDkimEnabledResponse
instance AsMemoryResponse SetIdentityDkimEnabledResponse
instance Transaction SetIdentityDkimEnabled SetIdentityDkimEnabledResponse
instance ResponseConsumer SetIdentityDkimEnabled SetIdentityDkimEnabledResponse
instance SignQuery SetIdentityDkimEnabled

module Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled

-- | Change whether bounces and complaints for the given identity will be
--   forwarded as email.
data SetIdentityFeedbackForwardingEnabled
SetIdentityFeedbackForwardingEnabled :: Bool -> Text -> SetIdentityFeedbackForwardingEnabled
sffForwardingEnabled :: SetIdentityFeedbackForwardingEnabled -> Bool
sffIdentity :: SetIdentityFeedbackForwardingEnabled -> Text

-- | The response sent back by SES after the
--   <a>SetIdentityFeedbackForwardingEnabled</a> command.
data SetIdentityFeedbackForwardingEnabledResponse
SetIdentityFeedbackForwardingEnabledResponse :: SetIdentityFeedbackForwardingEnabledResponse
instance Typeable SetIdentityFeedbackForwardingEnabled
instance Typeable SetIdentityFeedbackForwardingEnabledResponse
instance Eq SetIdentityFeedbackForwardingEnabled
instance Ord SetIdentityFeedbackForwardingEnabled
instance Show SetIdentityFeedbackForwardingEnabled
instance Eq SetIdentityFeedbackForwardingEnabledResponse
instance Ord SetIdentityFeedbackForwardingEnabledResponse
instance Show SetIdentityFeedbackForwardingEnabledResponse
instance AsMemoryResponse SetIdentityFeedbackForwardingEnabledResponse
instance Transaction SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse
instance ResponseConsumer SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse
instance SignQuery SetIdentityFeedbackForwardingEnabled

module Aws.Ses.Commands

module Aws.Ses

module Aws.SimpleDb.Core
type ErrorCode = String
data SdbError
SdbError :: Status -> ErrorCode -> String -> SdbError
sdbStatusCode :: SdbError -> Status
sdbErrorCode :: SdbError -> ErrorCode
sdbErrorMessage :: SdbError -> String
data SdbMetadata
SdbMetadata :: Maybe Text -> Maybe Text -> SdbMetadata
requestId :: SdbMetadata -> Maybe Text
boxUsage :: SdbMetadata -> Maybe Text
data SdbConfiguration qt
SdbConfiguration :: Protocol -> Method -> ByteString -> Int -> SdbConfiguration qt
sdbiProtocol :: SdbConfiguration qt -> Protocol
sdbiHttpMethod :: SdbConfiguration qt -> Method
sdbiHost :: SdbConfiguration qt -> ByteString
sdbiPort :: SdbConfiguration qt -> Int
sdbUsEast :: ByteString
sdbUsWest :: ByteString
sdbEuWest :: ByteString
sdbApSoutheast :: ByteString
sdbApNortheast :: ByteString
sdbHttpGet :: ByteString -> SdbConfiguration qt
sdbHttpPost :: ByteString -> SdbConfiguration NormalQuery
sdbHttpsGet :: ByteString -> SdbConfiguration qt
sdbHttpsPost :: ByteString -> SdbConfiguration NormalQuery
sdbSignQuery :: [(ByteString, ByteString)] -> SdbConfiguration qt -> SignatureData -> SignedQuery
sdbResponseConsumer :: (Cursor -> Response SdbMetadata a) -> IORef SdbMetadata -> HTTPResponseConsumer a
class SdbFromResponse a
sdbFromResponse :: SdbFromResponse a => Cursor -> Response SdbMetadata a
sdbCheckResponseType :: MonadThrow m => a -> Text -> Cursor -> m a
decodeBase64 :: MonadThrow m => Cursor -> m Text
data Attribute a
ForAttribute :: Text -> a -> Attribute a
attributeName :: Attribute a -> Text
attributeData :: Attribute a -> a
readAttribute :: MonadThrow m => Cursor -> m (Attribute Text)
data SetAttribute
SetAttribute :: Text -> Bool -> SetAttribute
setAttribute :: SetAttribute -> Text
isReplaceAttribute :: SetAttribute -> Bool
attributeQuery :: (a -> [(ByteString, ByteString)]) -> Attribute a -> [(ByteString, ByteString)]
addAttribute :: Text -> Text -> Attribute SetAttribute
replaceAttribute :: Text -> Text -> Attribute SetAttribute
setAttributeQuery :: SetAttribute -> [(ByteString, ByteString)]
data DeleteAttribute
DeleteAttribute :: DeleteAttribute
ValuedDeleteAttribute :: Text -> DeleteAttribute
deleteAttributeValue :: DeleteAttribute -> Text
deleteAttributeQuery :: DeleteAttribute -> [(ByteString, ByteString)]
data ExpectedAttribute
ExpectedValue :: Text -> ExpectedAttribute
expectedAttributeValue :: ExpectedAttribute -> Text
ExpectedExists :: Bool -> ExpectedAttribute
expectedAttributeExists :: ExpectedAttribute -> Bool
expectedValue :: Text -> Text -> Attribute ExpectedAttribute
expectedExists :: Text -> Bool -> Attribute ExpectedAttribute
expectedAttributeQuery :: ExpectedAttribute -> [(ByteString, ByteString)]
data Item a
Item :: Text -> a -> Item a
itemName :: Item a -> Text
itemData :: Item a -> a
readItem :: MonadThrow m => Cursor -> m (Item [Attribute Text])
itemQuery :: (a -> [(ByteString, ByteString)]) -> Item a -> [(ByteString, ByteString)]
instance Typeable SdbError
instance Typeable SdbMetadata
instance Show SdbError
instance Show SdbMetadata
instance Show (SdbConfiguration qt)
instance Show a => Show (Attribute a)
instance Show SetAttribute
instance Show DeleteAttribute
instance Show ExpectedAttribute
instance Show a => Show (Item a)
instance DefaultServiceConfiguration (SdbConfiguration UriOnlyQuery)
instance DefaultServiceConfiguration (SdbConfiguration NormalQuery)
instance Monoid SdbMetadata
instance Loggable SdbMetadata
instance Exception SdbError

module Aws.SimpleDb.Commands.Attributes
data GetAttributes
GetAttributes :: Text -> Maybe Text -> Bool -> Text -> GetAttributes
gaItemName :: GetAttributes -> Text
gaAttributeName :: GetAttributes -> Maybe Text
gaConsistentRead :: GetAttributes -> Bool
gaDomainName :: GetAttributes -> Text
data GetAttributesResponse
GetAttributesResponse :: [Attribute Text] -> GetAttributesResponse
garAttributes :: GetAttributesResponse -> [Attribute Text]
getAttributes :: Text -> Text -> GetAttributes

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data PutAttributes
PutAttributes :: Text -> [Attribute SetAttribute] -> [Attribute ExpectedAttribute] -> Text -> PutAttributes
paItemName :: PutAttributes -> Text
paAttributes :: PutAttributes -> [Attribute SetAttribute]
paExpected :: PutAttributes -> [Attribute ExpectedAttribute]
paDomainName :: PutAttributes -> Text
data PutAttributesResponse
PutAttributesResponse :: PutAttributesResponse
putAttributes :: Text -> [Attribute SetAttribute] -> Text -> PutAttributes

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data DeleteAttributes
DeleteAttributes :: Text -> [Attribute DeleteAttribute] -> [Attribute ExpectedAttribute] -> Text -> DeleteAttributes
daItemName :: DeleteAttributes -> Text
daAttributes :: DeleteAttributes -> [Attribute DeleteAttribute]
daExpected :: DeleteAttributes -> [Attribute ExpectedAttribute]
daDomainName :: DeleteAttributes -> Text
data DeleteAttributesResponse
DeleteAttributesResponse :: DeleteAttributesResponse
deleteAttributes :: Text -> [Attribute DeleteAttribute] -> Text -> DeleteAttributes

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data BatchPutAttributes
BatchPutAttributes :: [Item [Attribute SetAttribute]] -> Text -> BatchPutAttributes
bpaItems :: BatchPutAttributes -> [Item [Attribute SetAttribute]]
bpaDomainName :: BatchPutAttributes -> Text
data BatchPutAttributesResponse
BatchPutAttributesResponse :: BatchPutAttributesResponse
batchPutAttributes :: [Item [Attribute SetAttribute]] -> Text -> BatchPutAttributes

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data BatchDeleteAttributes
BatchDeleteAttributes :: [Item [Attribute DeleteAttribute]] -> Text -> BatchDeleteAttributes
bdaItems :: BatchDeleteAttributes -> [Item [Attribute DeleteAttribute]]
bdaDomainName :: BatchDeleteAttributes -> Text
data BatchDeleteAttributesResponse
BatchDeleteAttributesResponse :: BatchDeleteAttributesResponse
batchDeleteAttributes :: [Item [Attribute DeleteAttribute]] -> Text -> BatchDeleteAttributes

-- | ServiceConfiguration: <a>SdbConfiguration</a>
instance Show GetAttributes
instance Show GetAttributesResponse
instance Show PutAttributes
instance Show PutAttributesResponse
instance Show DeleteAttributes
instance Show DeleteAttributesResponse
instance Show BatchPutAttributes
instance Show BatchPutAttributesResponse
instance Show BatchDeleteAttributes
instance Show BatchDeleteAttributesResponse
instance AsMemoryResponse BatchDeleteAttributesResponse
instance Transaction BatchDeleteAttributes BatchDeleteAttributesResponse
instance ResponseConsumer r BatchDeleteAttributesResponse
instance SignQuery BatchDeleteAttributes
instance AsMemoryResponse BatchPutAttributesResponse
instance Transaction BatchPutAttributes BatchPutAttributesResponse
instance ResponseConsumer r BatchPutAttributesResponse
instance SignQuery BatchPutAttributes
instance AsMemoryResponse DeleteAttributesResponse
instance Transaction DeleteAttributes DeleteAttributesResponse
instance ResponseConsumer r DeleteAttributesResponse
instance SignQuery DeleteAttributes
instance AsMemoryResponse PutAttributesResponse
instance Transaction PutAttributes PutAttributesResponse
instance ResponseConsumer r PutAttributesResponse
instance SignQuery PutAttributes
instance AsMemoryResponse GetAttributesResponse
instance Transaction GetAttributes GetAttributesResponse
instance ResponseConsumer r GetAttributesResponse
instance SignQuery GetAttributes

module Aws.SimpleDb.Commands.Domain
data CreateDomain
CreateDomain :: Text -> CreateDomain
cdDomainName :: CreateDomain -> Text
data CreateDomainResponse
CreateDomainResponse :: CreateDomainResponse
createDomain :: Text -> CreateDomain

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data DeleteDomain
DeleteDomain :: Text -> DeleteDomain
ddDomainName :: DeleteDomain -> Text
data DeleteDomainResponse
DeleteDomainResponse :: DeleteDomainResponse
deleteDomain :: Text -> DeleteDomain

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data DomainMetadata
DomainMetadata :: Text -> DomainMetadata
dmDomainName :: DomainMetadata -> Text
data DomainMetadataResponse
DomainMetadataResponse :: UTCTime -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> DomainMetadataResponse
dmrTimestamp :: DomainMetadataResponse -> UTCTime
dmrItemCount :: DomainMetadataResponse -> Integer
dmrAttributeValueCount :: DomainMetadataResponse -> Integer
dmrAttributeNameCount :: DomainMetadataResponse -> Integer
dmrItemNamesSizeBytes :: DomainMetadataResponse -> Integer
dmrAttributeValuesSizeBytes :: DomainMetadataResponse -> Integer
dmrAttributeNamesSizeBytes :: DomainMetadataResponse -> Integer
domainMetadata :: Text -> DomainMetadata

-- | ServiceConfiguration: <a>SdbConfiguration</a>
data ListDomains
ListDomains :: Maybe Int -> Maybe Text -> ListDomains
ldMaxNumberOfDomains :: ListDomains -> Maybe Int
ldNextToken :: ListDomains -> Maybe Text
data ListDomainsResponse
ListDomainsResponse :: [Text] -> Maybe Text -> ListDomainsResponse
ldrDomainNames :: ListDomainsResponse -> [Text]
ldrNextToken :: ListDomainsResponse -> Maybe Text
listDomains :: ListDomains

-- | ServiceConfiguration: <a>SdbConfiguration</a>
instance Show CreateDomain
instance Show CreateDomainResponse
instance Show DeleteDomain
instance Show DeleteDomainResponse
instance Show DomainMetadata
instance Show DomainMetadataResponse
instance Show ListDomains
instance Show ListDomainsResponse
instance IteratedTransaction ListDomains ListDomainsResponse
instance ListResponse ListDomainsResponse Text
instance AsMemoryResponse ListDomainsResponse
instance Transaction ListDomains ListDomainsResponse
instance ResponseConsumer r ListDomainsResponse
instance SignQuery ListDomains
instance AsMemoryResponse DomainMetadataResponse
instance Transaction DomainMetadata DomainMetadataResponse
instance ResponseConsumer r DomainMetadataResponse
instance SignQuery DomainMetadata
instance AsMemoryResponse DeleteDomainResponse
instance Transaction DeleteDomain DeleteDomainResponse
instance ResponseConsumer r DeleteDomainResponse
instance SignQuery DeleteDomain
instance AsMemoryResponse CreateDomainResponse
instance Transaction CreateDomain CreateDomainResponse
instance ResponseConsumer r CreateDomainResponse
instance SignQuery CreateDomain

module Aws.SimpleDb.Commands.Select
data Select
Select :: Text -> Bool -> Maybe Text -> Select
sSelectExpression :: Select -> Text
sConsistentRead :: Select -> Bool
sNextToken :: Select -> Maybe Text
data SelectResponse
SelectResponse :: [Item [Attribute Text]] -> Maybe Text -> SelectResponse
srItems :: SelectResponse -> [Item [Attribute Text]]
srNextToken :: SelectResponse -> Maybe Text
select :: Text -> Select

-- | ServiceConfiguration: <a>SdbConfiguration</a>
instance Show Select
instance Show SelectResponse
instance IteratedTransaction Select SelectResponse
instance ListResponse SelectResponse (Item [Attribute Text])
instance AsMemoryResponse SelectResponse
instance Transaction Select SelectResponse
instance ResponseConsumer r SelectResponse
instance SignQuery Select

module Aws.SimpleDb.Commands

module Aws.SimpleDb

module Aws.Sqs.Core
type ErrorCode = Text
data SqsError
SqsError :: Status -> ErrorCode -> Text -> Text -> Maybe Text -> Maybe SqsMetadata -> SqsError
sqsStatusCode :: SqsError -> Status
sqsErrorCode :: SqsError -> ErrorCode
sqsErrorType :: SqsError -> Text
sqsErrorMessage :: SqsError -> Text
sqsErrorDetail :: SqsError -> Maybe Text
sqsErrorMetadata :: SqsError -> Maybe SqsMetadata
SqsXmlError :: Text -> Maybe SqsMetadata -> SqsError
sqsXmlErrorMessage :: SqsError -> Text
sqsXmlErrorMetadata :: SqsError -> Maybe SqsMetadata
data SqsMetadata
SqsMetadata :: Maybe Text -> Maybe Text -> SqsMetadata
sqsMAmzId2 :: SqsMetadata -> Maybe Text
sqsMRequestId :: SqsMetadata -> Maybe Text
data SqsAuthorization
SqsAuthorizationHeader :: SqsAuthorization
SqsAuthorizationQuery :: SqsAuthorization
data Endpoint
Endpoint :: ByteString -> LocationConstraint -> [LocationConstraint] -> Endpoint
endpointHost :: Endpoint -> ByteString
endpointDefaultLocationConstraint :: Endpoint -> LocationConstraint
endpointAllowedLocationConstraints :: Endpoint -> [LocationConstraint]
data SqsConfiguration qt
SqsConfiguration :: Protocol -> Endpoint -> Int -> Bool -> NominalDiffTime -> SqsConfiguration qt
sqsProtocol :: SqsConfiguration qt -> Protocol
sqsEndpoint :: SqsConfiguration qt -> Endpoint
sqsPort :: SqsConfiguration qt -> Int
sqsUseUri :: SqsConfiguration qt -> Bool
sqsDefaultExpiry :: SqsConfiguration qt -> NominalDiffTime
sqsEndpointUsClassic :: Endpoint
sqsEndpointUsWest :: Endpoint
sqsEndpointUsWest2 :: Endpoint
sqsEndpointEu :: Endpoint
sqsEndpointApSouthEast :: Endpoint
sqsEndpointApNorthEast :: Endpoint
sqs :: Protocol -> Endpoint -> Bool -> SqsConfiguration qt
data SqsQuery
SqsQuery :: Maybe QueueName -> Query -> SqsQuery
sqsQueueName :: SqsQuery -> Maybe QueueName
sqsQuery :: SqsQuery -> Query
sqsSignQuery :: SqsQuery -> SqsConfiguration qt -> SignatureData -> SignedQuery
sqsResponseConsumer :: HTTPResponseConsumer a -> IORef SqsMetadata -> HTTPResponseConsumer a
sqsXmlResponseConsumer :: (Cursor -> Response SqsMetadata a) -> IORef SqsMetadata -> HTTPResponseConsumer a
sqsErrorResponseConsumer :: HTTPResponseConsumer a
data QueueName
QueueName :: Text -> Text -> QueueName
qName :: QueueName -> Text
qAccountNumber :: QueueName -> Text
printQueueName :: QueueName -> Text
data QueueAttribute
QueueAll :: QueueAttribute
ApproximateNumberOfMessages :: QueueAttribute
ApproximateNumberOfMessagesNotVisible :: QueueAttribute
VisibilityTimeout :: QueueAttribute
CreatedTimestamp :: QueueAttribute
LastModifiedTimestamp :: QueueAttribute
Policy :: QueueAttribute
MaximumMessageSize :: QueueAttribute
MessageRetentionPeriod :: QueueAttribute
QueueArn :: QueueAttribute
data MessageAttribute

-- | all values
MessageAll :: MessageAttribute

-- | the AWS account number (or the IP address, if anonymous access is
--   allowed) of the sender
SenderId :: MessageAttribute

-- | the time when the message was sent (epoch time in milliseconds)
SentTimestamp :: MessageAttribute

-- | the number of times a message has been received but not deleted
ApproximateReceiveCount :: MessageAttribute

-- | the time when the message was first received (epoch time in
--   milliseconds)
ApproximateFirstReceiveTimestamp :: MessageAttribute
data SqsPermission
PermissionAll :: SqsPermission
PermissionSendMessage :: SqsPermission
PermissionReceiveMessage :: SqsPermission
PermissionDeleteMessage :: SqsPermission
PermissionChangeMessageVisibility :: SqsPermission
PermissionGetQueueAttributes :: SqsPermission
parseQueueAttribute :: MonadThrow m => Text -> m QueueAttribute
printQueueAttribute :: QueueAttribute -> Text
parseMessageAttribute :: MonadThrow m => Text -> m MessageAttribute
printMessageAttribute :: MessageAttribute -> Text
printPermission :: SqsPermission -> Text
newtype ReceiptHandle
ReceiptHandle :: Text -> ReceiptHandle
newtype MessageId
MessageId :: Text -> MessageId
printReceiptHandle :: ReceiptHandle -> Text
instance Typeable SqsError
instance Show SqsMetadata
instance Show SqsError
instance Show SqsAuthorization
instance Show Endpoint
instance Show (SqsConfiguration qt)
instance Show QueueName
instance Read QueueName
instance Eq QueueName
instance Ord QueueName
instance Show QueueAttribute
instance Enum QueueAttribute
instance Eq QueueAttribute
instance Show MessageAttribute
instance Read MessageAttribute
instance Eq MessageAttribute
instance Ord MessageAttribute
instance Enum MessageAttribute
instance Bounded MessageAttribute
instance Show SqsPermission
instance Enum SqsPermission
instance Eq SqsPermission
instance Show ReceiptHandle
instance Read ReceiptHandle
instance Eq ReceiptHandle
instance Ord ReceiptHandle
instance Show MessageId
instance Read MessageId
instance Eq MessageId
instance Ord MessageId
instance DefaultServiceConfiguration (SqsConfiguration UriOnlyQuery)
instance DefaultServiceConfiguration (SqsConfiguration NormalQuery)
instance Monoid SqsMetadata
instance Loggable SqsMetadata
instance Exception SqsError

module Aws.Sqs.Commands.Message

-- | You can append a custom type label to the supported data types
--   (String, Number, and Binary) to create custom data types. This
--   capability is similar to type traits in programming languages. For
--   example, if you have an application that needs to know which type of
--   number is being sent in the message, then you could create custom
--   types similar to the following: Number.byte, Number.short, Number.int,
--   and Number.float. Another example using the binary data type is to use
--   Binary.gif and Binary.png to distinguish among different image file
--   types in a message or batch of messages. The appended data is optional
--   and opaque to Amazon SQS, which means that the appended data is not
--   interpreted, validated, or used by Amazon SQS. The Custom Type
--   extension has the same restrictions on allowed characters as the
--   message body.
type UserMessageAttributeCustomType = Text

-- | Message Attribute Value
--   
--   The user-specified message attribute value. For string data types, the
--   value attribute has the same restrictions on the content as the
--   message body. For more information, see SendMessage.
--   
--   Name, type, and value must not be empty or null. In addition, the
--   message body should not be empty or null. All parts of the message
--   attribute, including name, type, and value, are included in the
--   message size restriction, which is currently 256 KB (262,144 bytes).
--   
--   The supported message attribute data types are String, Number, and
--   Binary. You can also provide custom information on the type. The data
--   type has the same restrictions on the content as the message body. The
--   data type is case sensitive, and it can be up to 256 bytes long.
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_MessageAttributeValue.html</a>
data UserMessageAttributeValue

-- | Strings are Unicode with UTF-8 binary encoding.
UserMessageAttributeString :: (Maybe UserMessageAttributeCustomType) -> Text -> UserMessageAttributeValue

-- | Numbers are positive or negative integers or floating point numbers.
--   Numbers have sufficient range and precision to encompass most of the
--   possible values that integers, floats, and doubles typically support.
--   A number can have up to 38 digits of precision, and it can be between
--   10^-128 to 10^+126. Leading and trailing zeroes are trimmed.
UserMessageAttributeNumber :: (Maybe UserMessageAttributeCustomType) -> Scientific -> UserMessageAttributeValue

-- | Binary type attributes can store any binary data, for example,
--   compressed data, encrypted data, or images.
UserMessageAttributeBinary :: (Maybe UserMessageAttributeCustomType) -> ByteString -> UserMessageAttributeValue

-- | The message attribute name can contain the following characters: A-Z,
--   a-z, 0-9, underscore(_), hyphen(-), and period (.). The name must not
--   start or end with a period, and it should not have successive periods.
--   The name is case sensitive and must be unique among all attribute
--   names for the message. The name can be up to 256 characters long. The
--   name cannot start with "AWS." or "Amazon." (or any variations in
--   casing) because these prefixes are reserved for use by Amazon Web
--   Services.
type UserMessageAttributeName = Text

-- | Message Attribute
--   
--   Name, type, and value must not be empty or null. In addition, the
--   message body should not be empty or null. All parts of the message
--   attribute, including name, type, and value, are included in the
--   message size restriction, which is currently 256 KB (262,144 bytes).
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSMessageAttributes.html#SQSMessageAttributes.DataTypes</a>
--   
--   <i>NOTE</i>
--   
--   The Amazon SQS API reference calls this <i>MessageAttribute</i>. The
--   Haskell bindings use this term for what the Amazon documentation calls
--   just <i>Attributes</i>. In order to limit backward compatibility
--   issues we keep the terminology of the Haskell bindings and call this
--   type <i>UserMessageAttributes</i>.
type UserMessageAttribute = (UserMessageAttributeName, UserMessageAttributeValue)

-- | Delivers a message to the specified queue. With Amazon SQS, you now
--   have the ability to send large payload messages that are up to 256KB
--   (262,144 bytes) in size. To send large payloads, you must use an AWS
--   SDK that supports SigV4 signing. To verify whether SigV4 is supported
--   for an AWS SDK, check the SDK release notes.
--   
--   <i>IMPORTANT</i>
--   
--   The following list shows the characters (in Unicode) allowed in your
--   message, according to the W3C XML specification. For more information,
--   go to <a>http://www.w3.org/TR/REC-xml/#charsets</a> If you send any
--   characters not included in the list, your request will be rejected.
--   
--   <pre>
--   #x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]
--   </pre>
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_SendMessage.html</a>
data SendMessage
SendMessage :: !Text -> !QueueName -> ![UserMessageAttribute] -> !(Maybe Int) -> SendMessage

-- | The message to send. String maximum 256 KB in size.
smMessage :: SendMessage -> !Text

-- | The URL of the Amazon SQS queue to take action on.
smQueueName :: SendMessage -> !QueueName

-- | Each message attribute consists of a Name, Type, and Value.
smAttributes :: SendMessage -> ![UserMessageAttribute]

-- | The number of seconds (0 to 900 - 15 minutes) to delay a specific
--   message. Messages with a positive DelaySeconds value become available
--   for processing after the delay time is finished. If you don't specify
--   a value, the default value for the queue applies.
smDelaySeconds :: SendMessage -> !(Maybe Int)

-- | At
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_SendMessageResult.html</a>
--   all fields of <tt>SendMessageResult</tt> are denoted as optional. At
--   <a>http://queue.amazonaws.com/doc/2012-11-05/QueueService.wsdl</a> all
--   fields are specified as required.
--   
--   The actual service seems to treat at least
--   <a>smrMD5OfMessageAttributes</a> as optional.
data SendMessageResponse
SendMessageResponse :: !Text -> !MessageId -> !(Maybe Text) -> SendMessageResponse

-- | An MD5 digest of the non-URL-encoded message body string. This can be
--   used to verify that Amazon SQS received the message correctly. Amazon
--   SQS first URL decodes the message before creating the MD5 digest. For
--   information about MD5, go to
--   <a>http://www.faqs.org/rfcs/rfc1321.html</a>.
smrMD5OfMessageBody :: SendMessageResponse -> !Text

-- | An element containing the message ID of the message sent to the queue.
smrMessageId :: SendMessageResponse -> !MessageId

-- | An MD5 digest of the non-URL-encoded message attribute string. This
--   can be used to verify that Amazon SQS received the message correctly.
--   Amazon SQS first URL decodes the message before creating the MD5
--   digest. For information about MD5, go to
--   <a>http://www.faqs.org/rfcs/rfc1321.html</a>.
smrMD5OfMessageAttributes :: SendMessageResponse -> !(Maybe Text)

-- | Deletes the specified message from the specified queue. You specify
--   the message by using the message's receipt handle and not the message
--   ID you received when you sent the message. Even if the message is
--   locked by another reader due to the visibility timeout setting, it is
--   still deleted from the queue. If you leave a message in the queue for
--   longer than the queue's configured retention period, Amazon SQS
--   automatically deletes it.
--   
--   <i>NOTE</i>
--   
--   The receipt handle is associated with a specific instance of receiving
--   the message. If you receive a message more than once, the receipt
--   handle you get each time you receive the message is different. When
--   you request DeleteMessage, if you don't provide the most recently
--   received receipt handle for the message, the request will still
--   succeed, but the message might not be deleted.
--   
--   <i>IMPORTANT</i>
--   
--   It is possible you will receive a message even after you have deleted
--   it. This might happen on rare occasions if one of the servers storing
--   a copy of the message is unavailable when you request to delete the
--   message. The copy remains on the server and might be returned to you
--   again on a subsequent receive request. You should create your system
--   to be idempotent so that receiving a particular message more than once
--   is not a problem.
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_DeleteMessage.html</a>
data DeleteMessage
DeleteMessage :: !ReceiptHandle -> !QueueName -> DeleteMessage

-- | The receipt handle associated with the message to delete.
dmReceiptHandle :: DeleteMessage -> !ReceiptHandle

-- | The URL of the Amazon SQS queue to take action on.
dmQueueName :: DeleteMessage -> !QueueName
data DeleteMessageResponse
DeleteMessageResponse :: DeleteMessageResponse

-- | An Amazon SQS message.
--   
--   In
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_Message.html</a>
--   all elements are denoted as optional. In
--   <a>http://queue.amazonaws.com/doc/2012-11-05/QueueService.wsdl</a> all
--   elements except for the attributes are specified as required. At least
--   for the field <a>mMD5OfMessageAttributes</a> the the service is not
--   always returning a value and therefor we make this field optional.
data Message
Message :: !Text -> !ReceiptHandle -> !Text -> Text -> ![(MessageAttribute, Text)] -> !(Maybe Text) -> ![UserMessageAttribute] -> Message

-- | A unique identifier for the message. Message IDs are considered unique
--   across all AWS accounts for an extended period of time.
mMessageId :: Message -> !Text

-- | An identifier associated with the act of receiving the message. A new
--   receipt handle is returned every time you receive a message. When
--   deleting a message, you provide the last received receipt handle to
--   delete the message.
mReceiptHandle :: Message -> !ReceiptHandle

-- | An MD5 digest of the non-URL-encoded message body string.
mMD5OfBody :: Message -> !Text

-- | The message's contents (not URL-encoded).
mBody :: Message -> Text

-- | SenderId, SentTimestamp, ApproximateReceiveCount, and/or
--   ApproximateFirstReceiveTimestamp. SentTimestamp and
--   ApproximateFirstReceiveTimestamp are each returned as an integer
--   representing the epoch time in milliseconds.
mAttributes :: Message -> ![(MessageAttribute, Text)]

-- | An MD5 digest of the non-URL-encoded message attribute string. This
--   can be used to verify that Amazon SQS received the message correctly.
--   Amazon SQS first URL decodes the message before creating the MD5
--   digest. For information about MD5, go to
--   <a>http://www.faqs.org/rfcs/rfc1321.html</a>.
mMD5OfMessageAttributes :: Message -> !(Maybe Text)

-- | Each message attribute consists of a Name, Type, and Value.
mUserMessageAttributes :: Message -> ![UserMessageAttribute]

-- | Retrieves one or more messages, with a maximum limit of 10 messages,
--   from the specified queue. Long poll support is enabled by using the
--   WaitTimeSeconds parameter. For more information, see <a>Amazon SQS
--   Long Poll</a> in the Amazon SQS Developer Guide.
--   
--   Short poll is the default behavior where a weighted random set of
--   machines is sampled on a ReceiveMessage call. This means only the
--   messages on the sampled machines are returned. If the number of
--   messages in the queue is small (less than 1000), it is likely you will
--   get fewer messages than you requested per ReceiveMessage call. If the
--   number of messages in the queue is extremely small, you might not
--   receive any messages in a particular ReceiveMessage response; in which
--   case you should repeat the request.
--   
--   For each message returned, the response includes the following:
--   
--   Message body
--   
--   <ul>
--   <li>MD5 digest of the message body. For information about MD5, go to
--   <a>http://www.faqs.org/rfcs/rfc1321.html</a>.</li>
--   <li>Message ID you received when you sent the message to the
--   queue.</li>
--   <li>Receipt handle.</li>
--   <li>Message attributes.</li>
--   <li>MD5 digest of the message attributes.</li>
--   </ul>
--   
--   The receipt handle is the identifier you must provide when deleting
--   the message. For more information, see Queue and Message Identifiers
--   in the Amazon SQS Developer Guide.
--   
--   You can provide the VisibilityTimeout parameter in your request, which
--   will be applied to the messages that Amazon SQS returns in the
--   response. If you do not include the parameter, the overall visibility
--   timeout for the queue is used for the returned messages. For more
--   information, see Visibility Timeout in the Amazon SQS Developer Guide.
--   
--   <i>NOTE</i>
--   
--   Going forward, new attributes might be added. If you are writing code
--   that calls this action, we recommend that you structure your code so
--   that it can handle new attributes gracefully.
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_ReceiveMessage.html</a>
data ReceiveMessage
ReceiveMessage :: !(Maybe Int) -> ![MessageAttribute] -> !(Maybe Int) -> ![UserMessageAttributeName] -> !QueueName -> !(Maybe Int) -> ReceiveMessage

-- | The duration (in seconds) that the received messages are hidden from
--   subsequent retrieve requests after being retrieved by a ReceiveMessage
--   request.
rmVisibilityTimeout :: ReceiveMessage -> !(Maybe Int)

-- | A list of attributes that need to be returned along with each message.
--   
--   The following lists the names and descriptions of the attributes that
--   can be returned:
--   
--   <ul>
--   <li>All - returns all values.</li>
--   <li>ApproximateFirstReceiveTimestamp - returns the time when the
--   message was first received (epoch time in milliseconds).</li>
--   <li>ApproximateReceiveCount - returns the number of times a message
--   has been received but not deleted.</li>
--   <li>SenderId - returns the AWS account number (or the IP address, if
--   anonymous access is allowed) of the sender.</li>
--   <li>SentTimestamp - returns the time when the message was sent (epoch
--   time in milliseconds).</li>
--   </ul>
rmAttributes :: ReceiveMessage -> ![MessageAttribute]

-- | The maximum number of messages to return. Amazon SQS never returns
--   more messages than this value but may return fewer. Values can be from
--   1 to 10. Default is 1.
--   
--   All of the messages are not necessarily returned.
rmMaxNumberOfMessages :: ReceiveMessage -> !(Maybe Int)

-- | The name of the message attribute, where N is the index. The message
--   attribute name can contain the following characters: A-Z, a-z, 0-9,
--   underscore (_), hyphen (-), and period (.). The name must not start or
--   end with a period, and it should not have successive periods. The name
--   is case sensitive and must be unique among all attribute names for the
--   message. The name can be up to 256 characters long. The name cannot
--   start with "AWS." or "Amazon." (or any variations in casing), because
--   these prefixes are reserved for use by Amazon Web Services.
--   
--   When using ReceiveMessage, you can send a list of attribute names to
--   receive, or you can return all of the attributes by specifying
--   <a>All</a> or ".*" in your request. You can also use "foo.*" to return
--   all message attributes starting with the "foo" prefix.
rmUserMessageAttributes :: ReceiveMessage -> ![UserMessageAttributeName]

-- | The URL of the Amazon SQS queue to take action on.
rmQueueName :: ReceiveMessage -> !QueueName

-- | The duration (in seconds) for which the call will wait for a message
--   to arrive in the queue before returning. If a message is available,
--   the call will return sooner than WaitTimeSeconds.
rmWaitTimeSeconds :: ReceiveMessage -> !(Maybe Int)
data ReceiveMessageResponse
ReceiveMessageResponse :: ![Message] -> ReceiveMessageResponse
rmrMessages :: ReceiveMessageResponse -> ![Message]

-- | Changes the visibility timeout of a specified message in a queue to a
--   new value. The maximum allowed timeout value you can set the value to
--   is 12 hours. This means you can't extend the timeout of a message in
--   an existing queue to more than a total visibility timeout of 12 hours.
--   (For more information visibility timeout, see Visibility Timeout in
--   the Amazon SQS Developer Guide.)
--   
--   For example, let's say you have a message and its default message
--   visibility timeout is 30 minutes. You could call
--   ChangeMessageVisiblity with a value of two hours and the effective
--   timeout would be two hours and 30 minutes. When that time comes near
--   you could again extend the time out by calling ChangeMessageVisiblity,
--   but this time the maximum allowed timeout would be 9 hours and 30
--   minutes.
--   
--   <i>NOTE</i>
--   
--   There is a 120,000 limit for the number of inflight messages per
--   queue. Messages are inflight after they have been received from the
--   queue by a consuming component, but have not yet been deleted from the
--   queue. If you reach the 120,000 limit, you will receive an OverLimit
--   error message from Amazon SQS. To help avoid reaching the limit, you
--   should delete the messages from the queue after they have been
--   processed. You can also increase the number of queues you use to
--   process the messages.
--   
--   <i>IMPORTANT</i>
--   
--   If you attempt to set the VisibilityTimeout to an amount more than the
--   maximum time left, Amazon SQS returns an error. It will not
--   automatically recalculate and increase the timeout to the maximum time
--   remaining.
--   
--   <i>IMPORTANT</i>
--   
--   Unlike with a queue, when you change the visibility timeout for a
--   specific message, that timeout value is applied immediately but is not
--   saved in memory for that message. If you don't delete a message after
--   it is received, the visibility timeout for the message the next time
--   it is received reverts to the original timeout value, not the value
--   you set with the ChangeMessageVisibility action.
--   
--   
--   <a>http://docs.aws.amazon.com/AWSSimpleQueueService/2012-11-05/APIReference/API_ChangeMessageVisibility.html</a>
data ChangeMessageVisibility
ChangeMessageVisibility :: !ReceiptHandle -> !Int -> !QueueName -> ChangeMessageVisibility

-- | The receipt handle associated with the message whose visibility
--   timeout should be changed. This parameter is returned by the
--   ReceiveMessage action.
cmvReceiptHandle :: ChangeMessageVisibility -> !ReceiptHandle

-- | The new value (in seconds - from 0 to 43200 - maximum 12 hours) for
--   the message's visibility timeout.
cmvVisibilityTimeout :: ChangeMessageVisibility -> !Int

-- | The URL of the Amazon SQS queue to take action on.
cmvQueueName :: ChangeMessageVisibility -> !QueueName
data ChangeMessageVisibilityResponse
ChangeMessageVisibilityResponse :: ChangeMessageVisibilityResponse
instance Show UserMessageAttributeValue
instance Read UserMessageAttributeValue
instance Eq UserMessageAttributeValue
instance Ord UserMessageAttributeValue
instance Show SendMessage
instance Read SendMessage
instance Eq SendMessage
instance Ord SendMessage
instance Show SendMessageResponse
instance Read SendMessageResponse
instance Eq SendMessageResponse
instance Ord SendMessageResponse
instance Show DeleteMessage
instance Read DeleteMessage
instance Eq DeleteMessage
instance Ord DeleteMessage
instance Show DeleteMessageResponse
instance Read DeleteMessageResponse
instance Eq DeleteMessageResponse
instance Ord DeleteMessageResponse
instance Show ReceiveMessage
instance Read ReceiveMessage
instance Eq ReceiveMessage
instance Ord ReceiveMessage
instance Show Message
instance Read Message
instance Eq Message
instance Ord Message
instance Show ReceiveMessageResponse
instance Read ReceiveMessageResponse
instance Eq ReceiveMessageResponse
instance Ord ReceiveMessageResponse
instance Show ChangeMessageVisibility
instance Read ChangeMessageVisibility
instance Eq ChangeMessageVisibility
instance Ord ChangeMessageVisibility
instance Show ChangeMessageVisibilityResponse
instance Read ChangeMessageVisibilityResponse
instance Eq ChangeMessageVisibilityResponse
instance Ord ChangeMessageVisibilityResponse
instance AsMemoryResponse ChangeMessageVisibilityResponse
instance Transaction ChangeMessageVisibility ChangeMessageVisibilityResponse
instance SignQuery ChangeMessageVisibility
instance ResponseConsumer r ChangeMessageVisibilityResponse
instance AsMemoryResponse ReceiveMessageResponse
instance Transaction ReceiveMessage ReceiveMessageResponse
instance SignQuery ReceiveMessage
instance ResponseConsumer r ReceiveMessageResponse
instance AsMemoryResponse DeleteMessageResponse
instance Transaction DeleteMessage DeleteMessageResponse
instance SignQuery DeleteMessage
instance ResponseConsumer r DeleteMessageResponse
instance AsMemoryResponse SendMessageResponse
instance Transaction SendMessage SendMessageResponse
instance SignQuery SendMessage
instance ResponseConsumer r SendMessageResponse

module Aws.Sqs.Commands.Permission
data AddPermission
AddPermission :: Text -> [(Text, SqsPermission)] -> QueueName -> AddPermission
apLabel :: AddPermission -> Text
apPermissions :: AddPermission -> [(Text, SqsPermission)]
apQueueName :: AddPermission -> QueueName
data AddPermissionResponse
AddPermissionResponse :: AddPermissionResponse
formatPermissions :: [(Text, SqsPermission)] -> [QueryItem]

-- | ServiceConfiguration: <a>SqsConfiguration</a>
data RemovePermission
RemovePermission :: Text -> QueueName -> RemovePermission
rpLabel :: RemovePermission -> Text
rpQueueName :: RemovePermission -> QueueName
data RemovePermissionResponse
RemovePermissionResponse :: RemovePermissionResponse

-- | ServiceConfiguration: <a>SqsConfiguration</a>
instance Show AddPermission
instance Show AddPermissionResponse
instance Show RemovePermission
instance Show RemovePermissionResponse
instance AsMemoryResponse RemovePermissionResponse
instance Transaction RemovePermission RemovePermissionResponse
instance SignQuery RemovePermission
instance ResponseConsumer r RemovePermissionResponse
instance AsMemoryResponse AddPermissionResponse
instance Transaction AddPermission AddPermissionResponse
instance SignQuery AddPermission
instance ResponseConsumer r AddPermissionResponse

module Aws.Sqs.Commands.Queue
data CreateQueue
CreateQueue :: Maybe Int -> Text -> CreateQueue
cqDefaultVisibilityTimeout :: CreateQueue -> Maybe Int
cqQueueName :: CreateQueue -> Text
data CreateQueueResponse
CreateQueueResponse :: Text -> CreateQueueResponse
cqrQueueUrl :: CreateQueueResponse -> Text

-- | ServiceConfiguration: <a>SqsConfiguration</a>
data DeleteQueue
DeleteQueue :: QueueName -> DeleteQueue
dqQueueName :: DeleteQueue -> QueueName
data DeleteQueueResponse
DeleteQueueResponse :: DeleteQueueResponse

-- | ServiceConfiguration: <a>SqsConfiguration</a>
data ListQueues
ListQueues :: Maybe Text -> ListQueues
lqQueueNamePrefix :: ListQueues -> Maybe Text
data ListQueuesResponse
ListQueuesResponse :: [Text] -> ListQueuesResponse
lqrQueueUrls :: ListQueuesResponse -> [Text]

-- | ServiceConfiguration: <a>SqsConfiguration</a>
instance Show CreateQueue
instance Show CreateQueueResponse
instance Show DeleteQueue
instance Show DeleteQueueResponse
instance Show ListQueues
instance Show ListQueuesResponse
instance AsMemoryResponse ListQueuesResponse
instance Transaction ListQueues ListQueuesResponse
instance SignQuery ListQueues
instance ResponseConsumer r ListQueuesResponse
instance AsMemoryResponse DeleteQueueResponse
instance Transaction DeleteQueue DeleteQueueResponse
instance SignQuery DeleteQueue
instance ResponseConsumer r DeleteQueueResponse
instance AsMemoryResponse CreateQueueResponse
instance Transaction CreateQueue CreateQueueResponse
instance SignQuery CreateQueue
instance ResponseConsumer r CreateQueueResponse

module Aws.Sqs.Commands.QueueAttributes
data GetQueueAttributes
GetQueueAttributes :: QueueName -> [QueueAttribute] -> GetQueueAttributes
gqaQueueName :: GetQueueAttributes -> QueueName
gqaAttributes :: GetQueueAttributes -> [QueueAttribute]
data GetQueueAttributesResponse
GetQueueAttributesResponse :: [(QueueAttribute, Text)] -> GetQueueAttributesResponse
gqarAttributes :: GetQueueAttributesResponse -> [(QueueAttribute, Text)]
parseAttributes :: Cursor -> [(QueueAttribute, Text)]
formatAttributes :: [QueueAttribute] -> [(ByteString, Maybe ByteString)]

-- | ServiceConfiguration: <a>SqsConfiguration</a>
data SetQueueAttributes
SetQueueAttributes :: QueueAttribute -> Text -> QueueName -> SetQueueAttributes
sqaAttribute :: SetQueueAttributes -> QueueAttribute
sqaValue :: SetQueueAttributes -> Text
sqaQueueName :: SetQueueAttributes -> QueueName
data SetQueueAttributesResponse
SetQueueAttributesResponse :: SetQueueAttributesResponse

-- | ServiceConfiguration: <a>SqsConfiguration</a>
instance Show GetQueueAttributes
instance Show GetQueueAttributesResponse
instance Show SetQueueAttributes
instance Show SetQueueAttributesResponse
instance AsMemoryResponse SetQueueAttributesResponse
instance Transaction SetQueueAttributes SetQueueAttributesResponse
instance SignQuery SetQueueAttributes
instance ResponseConsumer r SetQueueAttributesResponse
instance AsMemoryResponse GetQueueAttributesResponse
instance Transaction GetQueueAttributes GetQueueAttributesResponse
instance SignQuery GetQueueAttributes
instance ResponseConsumer r GetQueueAttributesResponse

module Aws.Sqs.Commands

module Aws.Sqs

module Aws.Aws

-- | The severity of a log message, in rising order.
data LogLevel
Debug :: LogLevel
Info :: LogLevel
Warning :: LogLevel
Error :: LogLevel

-- | The interface for any logging function. Takes log level and a log
--   message, and can perform an arbitrary IO action.
type Logger = LogLevel -> Text -> IO ()

-- | The default logger <tt>defaultLog minLevel</tt>, which prints log
--   messages above level <tt>minLevel</tt> to <tt>stderr</tt>.
defaultLog :: LogLevel -> Logger

-- | The configuration for an AWS request. You can use multiple
--   configurations in parallel, even over the same HTTP connection
--   manager.
data Configuration
Configuration :: TimeInfo -> Credentials -> Logger -> Configuration

-- | Whether to restrict the signature validity with a plain timestamp, or
--   with explicit expiration (absolute or relative).
timeInfo :: Configuration -> TimeInfo

-- | AWS access credentials.
credentials :: Configuration -> Credentials

-- | The error / message logger.
logger :: Configuration -> Logger

-- | The default configuration, with credentials loaded from environment
--   variable or configuration file (see <a>loadCredentialsDefault</a>).
baseConfiguration :: MonadIO io => io Configuration

-- | Debug configuration, which logs much more verbosely.
dbgConfiguration :: MonadIO io => io Configuration

-- | Run an AWS transaction, with HTTP manager and metadata wrapped in a
--   <a>Response</a>.
--   
--   All errors are caught and wrapped in the <a>Response</a> value.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Usage (with existing <a>Manager</a>): <tt> resp &lt;- aws cfg
--   serviceCfg manager request </tt>
aws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)

-- | Run an AWS transaction, with HTTP manager and metadata returned in an
--   <a>IORef</a>.
--   
--   Errors are not caught, and need to be handled with exception handlers.
--   
--   Metadata is not logged.
--   
--   Usage (with existing <a>Manager</a>): <tt> ref &lt;- newIORef mempty;
--   resp &lt;- awsRef cfg serviceCfg manager request </tt>
awsRef :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a

-- | Run an AWS transaction, with HTTP manager and without metadata.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Usage (with existing <a>Manager</a>): <tt> resp &lt;- aws cfg
--   serviceCfg manager request </tt>
pureAws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a

-- | Run an AWS transaction, with HTTP manager and without metadata.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Usage (with existing <a>Manager</a>): <tt> resp &lt;- aws cfg
--   serviceCfg manager request </tt>
memoryAws :: (Transaction r a, AsMemoryResponse a, MonadIO io) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> io (MemoryResponse a)

-- | Run an AWS transaction, <i>without</i> HTTP manager and without
--   metadata.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Note that this is potentially less efficient than using <a>aws</a>,
--   because HTTP connections cannot be re-used.
--   
--   Usage: <tt> resp &lt;- simpleAws cfg serviceCfg request </tt>
simpleAws :: (Transaction r a, AsMemoryResponse a, MonadIO io) => Configuration -> ServiceConfiguration r NormalQuery -> r -> io (MemoryResponse a)

-- | Run an AWS transaction, without enforcing that response and request
--   type form a valid transaction pair.
--   
--   This is especially useful for debugging and development, you should
--   not have to use it in production.
--   
--   All errors are caught and wrapped in the <a>Response</a> value.
--   
--   Metadata is wrapped in the Response, and also logged at level
--   <a>Info</a>.
unsafeAws :: (ResponseConsumer r a, Monoid (ResponseMetadata a), Loggable (ResponseMetadata a), SignQuery r) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)

-- | Run an AWS transaction, without enforcing that response and request
--   type form a valid transaction pair.
--   
--   This is especially useful for debugging and development, you should
--   not have to use it in production.
--   
--   Errors are not caught, and need to be handled with exception handlers.
--   
--   Metadata is put in the <a>IORef</a>, but not logged.
unsafeAwsRef :: (ResponseConsumer r a, Monoid (ResponseMetadata a), SignQuery r) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a

-- | Run a URI-only AWS transaction. Returns a URI that can be sent
--   anywhere. Does not work with all requests.
--   
--   Usage: <tt> uri &lt;- awsUri cfg request </tt>
awsUri :: (SignQuery request, MonadIO io) => Configuration -> ServiceConfiguration request UriOnlyQuery -> request -> io ByteString
awsIteratedSource :: IteratedTransaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)

-- | A more flexible version of <a>awsIteratedSource</a> that uses a
--   user-supplied run function. Useful for embedding AWS functionality
--   within application specific monadic contexts.
awsIteratedSource' :: (Monad m, IteratedTransaction r a) => (r -> m (a, b)) -> r -> Producer m b
awsIteratedList :: (IteratedTransaction r a, ListResponse a i) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) i

-- | A more flexible version of <a>awsIteratedList</a> that uses a
--   user-supplied run function. Useful for embedding AWS functionality
--   within application specific monadic contexts.
awsIteratedList' :: (Monad m, IteratedTransaction r b, ListResponse b c) => (r -> m b) -> r -> Producer m c
instance Show LogLevel
instance Eq LogLevel
instance Ord LogLevel

module Aws.S3.Commands.Multipart
data InitiateMultipartUpload
InitiateMultipartUpload :: Bucket -> Object -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Int -> [(Text, Text)] -> Maybe StorageClass -> Maybe Text -> Maybe CannedAcl -> Maybe ServerSideEncryption -> Bool -> InitiateMultipartUpload
imuBucket :: InitiateMultipartUpload -> Bucket
imuObjectName :: InitiateMultipartUpload -> Object
imuCacheControl :: InitiateMultipartUpload -> Maybe Text
imuContentDisposition :: InitiateMultipartUpload -> Maybe Text
imuContentEncoding :: InitiateMultipartUpload -> Maybe Text
imuContentType :: InitiateMultipartUpload -> Maybe Text
imuExpires :: InitiateMultipartUpload -> Maybe Int
imuMetadata :: InitiateMultipartUpload -> [(Text, Text)]
imuStorageClass :: InitiateMultipartUpload -> Maybe StorageClass
imuWebsiteRedirectLocation :: InitiateMultipartUpload -> Maybe Text
imuAcl :: InitiateMultipartUpload -> Maybe CannedAcl
imuServerSideEncryption :: InitiateMultipartUpload -> Maybe ServerSideEncryption

-- | Internet Archive S3 nonstandard extension
imuAutoMakeBucket :: InitiateMultipartUpload -> Bool
postInitiateMultipartUpload :: Bucket -> Text -> InitiateMultipartUpload
data InitiateMultipartUploadResponse
InitiateMultipartUploadResponse :: !Bucket -> !Text -> !Text -> InitiateMultipartUploadResponse
imurBucket :: InitiateMultipartUploadResponse -> !Bucket
imurKey :: InitiateMultipartUploadResponse -> !Text
imurUploadId :: InitiateMultipartUploadResponse -> !Text

-- | ServiceConfiguration: <a>S3Configuration</a>
data UploadPart
UploadPart :: Text -> Bucket -> Integer -> Text -> Maybe ByteString -> Maybe (Digest MD5) -> Maybe ServerSideEncryption -> RequestBody -> UploadPart
upObjectName :: UploadPart -> Text
upBucket :: UploadPart -> Bucket
upPartNumber :: UploadPart -> Integer
upUploadId :: UploadPart -> Text
upContentType :: UploadPart -> Maybe ByteString
upContentMD5 :: UploadPart -> Maybe (Digest MD5)
upServerSideEncryption :: UploadPart -> Maybe ServerSideEncryption
upRequestBody :: UploadPart -> RequestBody
uploadPart :: Bucket -> Text -> Integer -> Text -> RequestBody -> UploadPart
data UploadPartResponse
UploadPartResponse :: !(Maybe Text) -> !Text -> UploadPartResponse
uprVersionId :: UploadPartResponse -> !(Maybe Text)
uprETag :: UploadPartResponse -> !Text

-- | ServiceConfiguration: <a>S3Configuration</a>
data CompleteMultipartUpload
CompleteMultipartUpload :: Bucket -> Object -> Text -> [(Integer, Text)] -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CompleteMultipartUpload
cmuBucket :: CompleteMultipartUpload -> Bucket
cmuObjectName :: CompleteMultipartUpload -> Object
cmuUploadId :: CompleteMultipartUpload -> Text
cmuPartNumberAndEtags :: CompleteMultipartUpload -> [(Integer, Text)]
cmuExpiration :: CompleteMultipartUpload -> Maybe Text
cmuServerSideEncryption :: CompleteMultipartUpload -> Maybe Text
cmuServerSideEncryptionCustomerAlgorithm :: CompleteMultipartUpload -> Maybe Text
cmuVersionId :: CompleteMultipartUpload -> Maybe Text
postCompleteMultipartUpload :: Bucket -> Text -> Text -> [(Integer, Text)] -> CompleteMultipartUpload
data CompleteMultipartUploadResponse
CompleteMultipartUploadResponse :: !Text -> !Bucket -> !Text -> !Text -> CompleteMultipartUploadResponse
cmurLocation :: CompleteMultipartUploadResponse -> !Text
cmurBucket :: CompleteMultipartUploadResponse -> !Bucket
cmurKey :: CompleteMultipartUploadResponse -> !Text
cmurETag :: CompleteMultipartUploadResponse -> !Text

-- | ServiceConfiguration: <a>S3Configuration</a>
data AbortMultipartUpload
AbortMultipartUpload :: Bucket -> Object -> Text -> AbortMultipartUpload
amuBucket :: AbortMultipartUpload -> Bucket
amuObjectName :: AbortMultipartUpload -> Object
amuUploadId :: AbortMultipartUpload -> Text
postAbortMultipartUpload :: Bucket -> Text -> Text -> AbortMultipartUpload
data AbortMultipartUploadResponse
AbortMultipartUploadResponse :: AbortMultipartUploadResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
getUploadId :: Configuration -> S3Configuration NormalQuery -> Manager -> Text -> Text -> IO Text
sendEtag :: Configuration -> S3Configuration NormalQuery -> Manager -> Text -> Text -> Text -> [Text] -> IO ()
putConduit :: MonadResource m => Configuration -> S3Configuration NormalQuery -> Manager -> Text -> Text -> Text -> Conduit ByteString m Text
chunkedConduit :: MonadResource m => Integer -> Conduit ByteString m ByteString
multipartUpload :: Configuration -> S3Configuration NormalQuery -> Manager -> Text -> Text -> Conduit () (ResourceT IO) ByteString -> Integer -> ResourceT IO ()
multipartUploadWithInitiator :: Configuration -> S3Configuration NormalQuery -> (Bucket -> Text -> InitiateMultipartUpload) -> Manager -> Text -> Text -> Conduit () (ResourceT IO) ByteString -> Integer -> ResourceT IO ()
instance Show InitiateMultipartUpload
instance Show UploadPartResponse
instance Show CompleteMultipartUpload
instance Show AbortMultipartUpload
instance AsMemoryResponse AbortMultipartUploadResponse
instance Transaction AbortMultipartUpload AbortMultipartUploadResponse
instance ResponseConsumer r AbortMultipartUploadResponse
instance SignQuery AbortMultipartUpload
instance AsMemoryResponse CompleteMultipartUploadResponse
instance Transaction CompleteMultipartUpload CompleteMultipartUploadResponse
instance ResponseConsumer r CompleteMultipartUploadResponse
instance SignQuery CompleteMultipartUpload
instance AsMemoryResponse UploadPartResponse
instance Transaction UploadPart UploadPartResponse
instance ResponseConsumer UploadPart UploadPartResponse
instance SignQuery UploadPart
instance AsMemoryResponse InitiateMultipartUploadResponse
instance Transaction InitiateMultipartUpload InitiateMultipartUploadResponse
instance ResponseConsumer r InitiateMultipartUploadResponse
instance SignQuery InitiateMultipartUpload

module Aws.S3.Commands

module Aws.S3

module Aws

-- | The severity of a log message, in rising order.
data LogLevel
Debug :: LogLevel
Info :: LogLevel
Warning :: LogLevel
Error :: LogLevel

-- | The interface for any logging function. Takes log level and a log
--   message, and can perform an arbitrary IO action.
type Logger = LogLevel -> Text -> IO ()

-- | The default logger <tt>defaultLog minLevel</tt>, which prints log
--   messages above level <tt>minLevel</tt> to <tt>stderr</tt>.
defaultLog :: LogLevel -> Logger

-- | The configuration for an AWS request. You can use multiple
--   configurations in parallel, even over the same HTTP connection
--   manager.
data Configuration
Configuration :: TimeInfo -> Credentials -> Logger -> Configuration

-- | Whether to restrict the signature validity with a plain timestamp, or
--   with explicit expiration (absolute or relative).
timeInfo :: Configuration -> TimeInfo

-- | AWS access credentials.
credentials :: Configuration -> Credentials

-- | The error / message logger.
logger :: Configuration -> Logger

-- | The default configuration, with credentials loaded from environment
--   variable or configuration file (see <a>loadCredentialsDefault</a>).
baseConfiguration :: MonadIO io => io Configuration

-- | Debug configuration, which logs much more verbosely.
dbgConfiguration :: MonadIO io => io Configuration

-- | Run an AWS transaction, with HTTP manager and metadata wrapped in a
--   <a>Response</a>.
--   
--   All errors are caught and wrapped in the <a>Response</a> value.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Usage (with existing <a>Manager</a>): <tt> resp &lt;- aws cfg
--   serviceCfg manager request </tt>
aws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)

-- | Run an AWS transaction, with HTTP manager and metadata returned in an
--   <a>IORef</a>.
--   
--   Errors are not caught, and need to be handled with exception handlers.
--   
--   Metadata is not logged.
--   
--   Usage (with existing <a>Manager</a>): <tt> ref &lt;- newIORef mempty;
--   resp &lt;- awsRef cfg serviceCfg manager request </tt>
awsRef :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a

-- | Run an AWS transaction, with HTTP manager and without metadata.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Usage (with existing <a>Manager</a>): <tt> resp &lt;- aws cfg
--   serviceCfg manager request </tt>
pureAws :: Transaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO a

-- | Run an AWS transaction, <i>without</i> HTTP manager and without
--   metadata.
--   
--   Metadata is logged at level <a>Info</a>.
--   
--   Note that this is potentially less efficient than using <a>aws</a>,
--   because HTTP connections cannot be re-used.
--   
--   Usage: <tt> resp &lt;- simpleAws cfg serviceCfg request </tt>
simpleAws :: (Transaction r a, AsMemoryResponse a, MonadIO io) => Configuration -> ServiceConfiguration r NormalQuery -> r -> io (MemoryResponse a)

-- | Run an AWS transaction, without enforcing that response and request
--   type form a valid transaction pair.
--   
--   This is especially useful for debugging and development, you should
--   not have to use it in production.
--   
--   All errors are caught and wrapped in the <a>Response</a> value.
--   
--   Metadata is wrapped in the Response, and also logged at level
--   <a>Info</a>.
unsafeAws :: (ResponseConsumer r a, Monoid (ResponseMetadata a), Loggable (ResponseMetadata a), SignQuery r) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)

-- | Run an AWS transaction, without enforcing that response and request
--   type form a valid transaction pair.
--   
--   This is especially useful for debugging and development, you should
--   not have to use it in production.
--   
--   Errors are not caught, and need to be handled with exception handlers.
--   
--   Metadata is put in the <a>IORef</a>, but not logged.
unsafeAwsRef :: (ResponseConsumer r a, Monoid (ResponseMetadata a), SignQuery r) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a

-- | Run a URI-only AWS transaction. Returns a URI that can be sent
--   anywhere. Does not work with all requests.
--   
--   Usage: <tt> uri &lt;- awsUri cfg request </tt>
awsUri :: (SignQuery request, MonadIO io) => Configuration -> ServiceConfiguration request UriOnlyQuery -> request -> io ByteString
awsIteratedSource :: IteratedTransaction r a => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) (Response (ResponseMetadata a) a)
awsIteratedList :: (IteratedTransaction r a, ListResponse a i) => Configuration -> ServiceConfiguration r NormalQuery -> Manager -> r -> Producer (ResourceT IO) i

-- | A full HTTP response parser. Takes HTTP status, response headers, and
--   response body.
type HTTPResponseConsumer a = Response (ResumableSource (ResourceT IO) ByteString) -> ResourceT IO a

-- | A response with metadata. Can also contain an error response, or an
--   internal error, via <tt>Attempt</tt>.
--   
--   Response forms a Writer-like monad.
data Response m a
Response :: m -> Either SomeException a -> Response m a
responseMetadata :: Response m a -> m
responseResult :: Response m a -> Either SomeException a

-- | Read a response result (if it's a success response, fail otherwise).
readResponse :: MonadThrow n => Response m a -> n a

-- | Read a response result (if it's a success response, fail otherwise).
--   In MonadIO.
readResponseIO :: MonadIO io => Response m a -> io a

-- | Class for responses that are fully loaded into memory
class AsMemoryResponse resp where type family MemoryResponse resp :: *
loadToMemory :: AsMemoryResponse resp => resp -> ResourceT IO (MemoryResponse resp)

-- | An error that occurred during XML parsing / validation.
newtype XmlException
XmlException :: String -> XmlException
xmlErrorMessage :: XmlException -> String

-- | An error that occurred during header parsing / validation.
newtype HeaderException
HeaderException :: String -> HeaderException
headerErrorMessage :: HeaderException -> String

-- | An error that occurred during form parsing / validation.
newtype FormException
FormException :: String -> FormException
formErrorMesage :: FormException -> String

-- | Default configuration for a specific service.
class DefaultServiceConfiguration config where debugServiceConfig = defServiceConfig
defServiceConfig :: DefaultServiceConfiguration config => config
debugServiceConfig :: DefaultServiceConfiguration config => config

-- | Tag type for normal queries.
data NormalQuery

-- | Tag type for URI-only queries.
data UriOnlyQuery

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

-- | Use a simple timestamp to let AWS check the request validity.
Timestamp :: TimeInfo

-- | Let requests expire at a specific fixed time.
ExpiresAt :: UTCTime -> TimeInfo
fromExpiresAt :: TimeInfo -> UTCTime

-- | Let requests expire a specific number of seconds after they were
--   generated.
ExpiresIn :: NominalDiffTime -> TimeInfo
fromExpiresIn :: TimeInfo -> NominalDiffTime

-- | 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 <a>SignQuery</a> and <a>ResponseConsumer</a> respectively.
class (SignQuery r, ResponseConsumer r a, Loggable (ResponseMetadata a)) => Transaction r a | r -> a

-- | A transaction that may need to be split over multiple requests, for
--   example because of upstream response size limits.
class Transaction r a => IteratedTransaction r a | r -> a

-- | AWS access credentials.
data Credentials
Credentials :: ByteString -> ByteString -> IORef [V4Key] -> Maybe ByteString -> Credentials

-- | AWS Access Key ID.
accessKeyID :: Credentials -> ByteString

-- | AWS Secret Access Key.
secretAccessKey :: Credentials -> ByteString

-- | Signing keys for signature version 4
v4SigningKeys :: Credentials -> IORef [V4Key]

-- | Signed IAM token
iamToken :: Credentials -> Maybe ByteString
makeCredentials :: MonadIO io => ByteString -> ByteString -> io Credentials

-- | The file where access credentials are loaded, when using
--   <a>loadCredentialsDefault</a>.
--   
--   Value: <i><a>directory</a></i><tt>/.aws-keys</tt>
credentialsDefaultFile :: MonadIO io => io FilePath

-- | The key to be used in the access credential file that is loaded, when
--   using <a>loadCredentialsDefault</a>.
--   
--   Value: <tt>default</tt>
credentialsDefaultKey :: Text

-- | Load credentials from a (text) file given a key name.
--   
--   The file consists of a sequence of lines, each in the following
--   format:
--   
--   <pre>
--   keyName awsKeyID awsKeySecret
--   </pre>
loadCredentialsFromFile :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)

-- | Load credentials from the environment variables
--   <tt>AWS_ACCESS_KEY_ID</tt> and <tt>AWS_ACCESS_KEY_SECRET</tt> (or
--   <tt>AWS_SECRET_ACCESS_KEY</tt>), if possible.
loadCredentialsFromEnv :: MonadIO io => io (Maybe Credentials)
loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials)

-- | Load credentials from environment variables if possible, or
--   alternatively from a file with a given key name.
--   
--   See <a>loadCredentialsFromEnv</a> and <a>loadCredentialsFromFile</a>
--   for details.
loadCredentialsFromEnvOrFile :: 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 <a>loadCredentialsFromEnv</a>, <a>loadCredentialsFromFile</a> and
--   <a>loadCredentialsFromInstanceMetadata</a> for details.
loadCredentialsFromEnvOrFileOrInstanceMetadata :: MonadIO io => FilePath -> Text -> io (Maybe Credentials)

-- | Load credentials from environment variables if possible, or
--   alternative from the default file with the default key name.
--   
--   Default file: <i><a>directory</a></i><tt>/.aws-keys</tt> Default key
--   name: <tt>default</tt>
--   
--   See <a>loadCredentialsFromEnv</a> and <a>loadCredentialsFromFile</a>
--   for details.
loadCredentialsDefault :: MonadIO io => io (Maybe Credentials)
