-- 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.md</a>.
@package aws
@version 0.14.0

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 GHC.Show.Show Aws.Ec2.InstanceMetadata.InstanceMetadataException
instance GHC.Exception.Exception Aws.Ec2.InstanceMetadata.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 ResponseMetadata resp where {
    type family ResponseMetadata resp;
}

-- | Response parser. Takes the corresponding request, an <a>IORef</a> for
--   metadata, and HTTP response data.
responseConsumer :: ResponseConsumer req resp => req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp

-- | Class for responses that are fully loaded into memory
class AsMemoryResponse resp where type MemoryResponse 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 ServiceConfiguration request :: * -> * where {
    type family ServiceConfiguration request :: * -> *;
}

-- | Create a <a>SignedQuery</a> from a request, additional <tt>Info</tt>,
--   and <a>SignatureData</a>.
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>. May return <a>Nothing</a> if
--   <tt>HOME</tt> is unset.
--   
--   Value: <i><a>directory</a></i><tt>/.aws-keys</tt>
credentialsDefaultFile :: MonadIO io => io (Maybe 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

-- | Default service configuration.
defServiceConfig :: DefaultServiceConfiguration config => config

-- | Default debugging-only configuration. (Normally using HTTP instead of
--   HTTPS for easier debugging.)
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 GHC.Show.Show Aws.Core.NoCredentialsException
instance GHC.Show.Show Aws.Core.FormException
instance GHC.Show.Show Aws.Core.HeaderException
instance GHC.Show.Show Aws.Core.XmlException
instance GHC.Show.Show Aws.Core.AuthorizationHash
instance GHC.Show.Show Aws.Core.AbsoluteTimeInfo
instance GHC.Show.Show Aws.Core.TimeInfo
instance GHC.Classes.Ord Aws.Core.Method
instance GHC.Classes.Eq Aws.Core.Method
instance GHC.Show.Show Aws.Core.Method
instance GHC.Classes.Ord Aws.Core.Protocol
instance GHC.Show.Show Aws.Core.Protocol
instance GHC.Read.Read Aws.Core.Protocol
instance GHC.Classes.Eq Aws.Core.Protocol
instance GHC.Base.Functor (Aws.Core.Response m)
instance (GHC.Show.Show m, GHC.Show.Show a) => GHC.Show.Show (Aws.Core.Response m a)
instance GHC.Base.Monoid m => GHC.Base.Applicative (Aws.Core.Response m)
instance GHC.Base.Monoid m => GHC.Base.Monad (Aws.Core.Response m)
instance GHC.Base.Monoid m => Control.Monad.Catch.MonadThrow (Aws.Core.Response m)
instance Aws.Core.ResponseConsumer r (Network.HTTP.Client.Types.Response Data.ByteString.Lazy.Internal.ByteString)
instance GHC.Show.Show Aws.Core.Credentials
instance GHC.Exception.Exception Aws.Core.XmlException
instance GHC.Exception.Exception Aws.Core.HeaderException
instance GHC.Exception.Exception Aws.Core.FormException
instance GHC.Exception.Exception Aws.Core.NoCredentialsException


-- | 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
ddbEuCentral1 :: 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
DNull :: 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
DBool :: Bool -> DValue

-- | Composite data
DBoolSet :: (Set Bool) -> DValue
DList :: (Vector DValue) -> DValue
DMap :: (Map Text DValue) -> 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 DynRep a where {
    type family DynRep a;
}

-- | Convert to representation
toRep :: DynVal a => a -> DynRep a

-- | Convert from representation
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
newtype OldBool
OldBool :: Bool -> OldBool

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

-- | Boolean values stored in DynamoDb. Only used in defining new
--   <a>DynVal</a> instances.
newtype DynBool
DynBool :: Bool -> DynBool
[unDynBool] :: DynBool -> Bool

-- | 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 :: forall a. (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' :: forall a. (Typeable a, DynVal a) => Text -> Item -> Parser (Maybe a)

-- | Combinator for parsing an attribute into a <a>FromDynItem</a>.
parseAttr :: FromDynItem a => Text -> Item -> Parser 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 :: KeyValue t => QuerySelect -> [t]

-- | 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 GHC.Classes.Ord Aws.DynamoDb.Core.QuerySelect
instance GHC.Read.Read Aws.DynamoDb.Core.QuerySelect
instance GHC.Show.Show Aws.DynamoDb.Core.QuerySelect
instance GHC.Classes.Eq Aws.DynamoDb.Core.QuerySelect
instance GHC.Classes.Ord Aws.DynamoDb.Core.UpdateReturn
instance GHC.Read.Read Aws.DynamoDb.Core.UpdateReturn
instance GHC.Show.Show Aws.DynamoDb.Core.UpdateReturn
instance GHC.Classes.Eq Aws.DynamoDb.Core.UpdateReturn
instance GHC.Classes.Ord Aws.DynamoDb.Core.ItemCollectionMetrics
instance GHC.Read.Read Aws.DynamoDb.Core.ItemCollectionMetrics
instance GHC.Show.Show Aws.DynamoDb.Core.ItemCollectionMetrics
instance GHC.Classes.Eq Aws.DynamoDb.Core.ItemCollectionMetrics
instance GHC.Classes.Ord Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance GHC.Read.Read Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance GHC.Show.Show Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance GHC.Classes.Eq Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance GHC.Classes.Ord Aws.DynamoDb.Core.ReturnConsumption
instance GHC.Read.Read Aws.DynamoDb.Core.ReturnConsumption
instance GHC.Show.Show Aws.DynamoDb.Core.ReturnConsumption
instance GHC.Classes.Eq Aws.DynamoDb.Core.ReturnConsumption
instance GHC.Classes.Ord Aws.DynamoDb.Core.ConsumedCapacity
instance GHC.Read.Read Aws.DynamoDb.Core.ConsumedCapacity
instance GHC.Show.Show Aws.DynamoDb.Core.ConsumedCapacity
instance GHC.Classes.Eq Aws.DynamoDb.Core.ConsumedCapacity
instance GHC.Classes.Ord Aws.DynamoDb.Core.Conditions
instance GHC.Read.Read Aws.DynamoDb.Core.Conditions
instance GHC.Show.Show Aws.DynamoDb.Core.Conditions
instance GHC.Classes.Eq Aws.DynamoDb.Core.Conditions
instance GHC.Classes.Ord Aws.DynamoDb.Core.Condition
instance GHC.Read.Read Aws.DynamoDb.Core.Condition
instance GHC.Show.Show Aws.DynamoDb.Core.Condition
instance GHC.Classes.Eq Aws.DynamoDb.Core.Condition
instance GHC.Classes.Ord Aws.DynamoDb.Core.CondOp
instance GHC.Read.Read Aws.DynamoDb.Core.CondOp
instance GHC.Show.Show Aws.DynamoDb.Core.CondOp
instance GHC.Classes.Eq Aws.DynamoDb.Core.CondOp
instance GHC.Classes.Ord Aws.DynamoDb.Core.CondMerge
instance GHC.Read.Read Aws.DynamoDb.Core.CondMerge
instance GHC.Show.Show Aws.DynamoDb.Core.CondMerge
instance GHC.Classes.Eq Aws.DynamoDb.Core.CondMerge
instance GHC.Show.Show (Aws.DynamoDb.Core.DdbConfiguration qt)
instance GHC.Read.Read Aws.DynamoDb.Core.Region
instance GHC.Show.Show Aws.DynamoDb.Core.Region
instance GHC.Classes.Eq Aws.DynamoDb.Core.Region
instance GHC.Classes.Eq Aws.DynamoDb.Core.DdbError
instance GHC.Show.Show Aws.DynamoDb.Core.DdbError
instance GHC.Classes.Eq Aws.DynamoDb.Core.DdbLibraryError
instance GHC.Show.Show Aws.DynamoDb.Core.DdbLibraryError
instance GHC.Classes.Eq Aws.DynamoDb.Core.DdbErrCode
instance GHC.Show.Show Aws.DynamoDb.Core.DdbErrCode
instance GHC.Read.Read Aws.DynamoDb.Core.DdbErrCode
instance GHC.Classes.Eq Aws.DynamoDb.Core.PrimaryKey
instance GHC.Classes.Ord Aws.DynamoDb.Core.PrimaryKey
instance GHC.Show.Show Aws.DynamoDb.Core.PrimaryKey
instance GHC.Read.Read Aws.DynamoDb.Core.PrimaryKey
instance GHC.Classes.Eq Aws.DynamoDb.Core.Attribute
instance GHC.Classes.Ord Aws.DynamoDb.Core.Attribute
instance GHC.Show.Show Aws.DynamoDb.Core.Attribute
instance GHC.Read.Read Aws.DynamoDb.Core.Attribute
instance GHC.Classes.Ord Aws.DynamoDb.Core.DValue
instance GHC.Read.Read Aws.DynamoDb.Core.DValue
instance GHC.Show.Show Aws.DynamoDb.Core.DValue
instance GHC.Classes.Eq Aws.DynamoDb.Core.DValue
instance GHC.Enum.Enum a => GHC.Enum.Enum (Aws.DynamoDb.Core.Bin a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Aws.DynamoDb.Core.Bin a)
instance GHC.Read.Read a => GHC.Read.Read (Aws.DynamoDb.Core.Bin a)
instance GHC.Show.Show a => GHC.Show.Show (Aws.DynamoDb.Core.Bin a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Aws.DynamoDb.Core.Bin a)
instance GHC.Classes.Ord Aws.DynamoDb.Core.DynBinary
instance GHC.Read.Read Aws.DynamoDb.Core.DynBinary
instance GHC.Show.Show Aws.DynamoDb.Core.DynBinary
instance GHC.Classes.Eq Aws.DynamoDb.Core.DynBinary
instance GHC.Classes.Ord Aws.DynamoDb.Core.DynString
instance GHC.Read.Read Aws.DynamoDb.Core.DynString
instance GHC.Show.Show Aws.DynamoDb.Core.DynString
instance GHC.Classes.Eq Aws.DynamoDb.Core.DynString
instance GHC.Classes.Ord Aws.DynamoDb.Core.DynNumber
instance GHC.Read.Read Aws.DynamoDb.Core.DynNumber
instance GHC.Show.Show Aws.DynamoDb.Core.DynNumber
instance GHC.Classes.Eq Aws.DynamoDb.Core.DynNumber
instance GHC.Classes.Ord Aws.DynamoDb.Core.DynBool
instance GHC.Read.Read Aws.DynamoDb.Core.DynBool
instance GHC.Show.Show Aws.DynamoDb.Core.DynBool
instance GHC.Classes.Eq Aws.DynamoDb.Core.DynBool
instance Aws.DynamoDb.Core.DynData Aws.DynamoDb.Core.DynBool
instance Aws.DynamoDb.Core.DynData (Data.Set.Base.Set Aws.DynamoDb.Core.DynBool)
instance Aws.DynamoDb.Core.DynData Aws.DynamoDb.Core.DynNumber
instance Aws.DynamoDb.Core.DynData (Data.Set.Base.Set Aws.DynamoDb.Core.DynNumber)
instance Aws.DynamoDb.Core.DynData Aws.DynamoDb.Core.DynString
instance Aws.DynamoDb.Core.DynData (Data.Set.Base.Set Aws.DynamoDb.Core.DynString)
instance Aws.DynamoDb.Core.DynData Aws.DynamoDb.Core.DynBinary
instance Aws.DynamoDb.Core.DynData (Data.Set.Base.Set Aws.DynamoDb.Core.DynBinary)
instance Aws.DynamoDb.Core.DynData Aws.DynamoDb.Core.DValue
instance (Aws.DynamoDb.Core.DynData (Aws.DynamoDb.Core.DynRep [a]), Aws.DynamoDb.Core.DynVal a) => Aws.DynamoDb.Core.DynVal [a]
instance (Aws.DynamoDb.Core.DynData (Aws.DynamoDb.Core.DynRep (Data.Set.Base.Set a)), Aws.DynamoDb.Core.DynVal a, GHC.Classes.Ord a) => Aws.DynamoDb.Core.DynVal (Data.Set.Base.Set a)
instance Aws.DynamoDb.Core.DynVal Aws.DynamoDb.Core.DValue
instance Aws.DynamoDb.Core.DynVal GHC.Types.Bool
instance Aws.DynamoDb.Core.DynVal GHC.Types.Int
instance Aws.DynamoDb.Core.DynVal GHC.Int.Int8
instance Aws.DynamoDb.Core.DynVal GHC.Int.Int16
instance Aws.DynamoDb.Core.DynVal GHC.Int.Int32
instance Aws.DynamoDb.Core.DynVal GHC.Int.Int64
instance Aws.DynamoDb.Core.DynVal GHC.Word.Word8
instance Aws.DynamoDb.Core.DynVal GHC.Word.Word16
instance Aws.DynamoDb.Core.DynVal GHC.Word.Word32
instance Aws.DynamoDb.Core.DynVal GHC.Word.Word64
instance Aws.DynamoDb.Core.DynVal GHC.Integer.Type.Integer
instance Aws.DynamoDb.Core.DynVal Data.Text.Internal.Text
instance Aws.DynamoDb.Core.DynVal Data.ByteString.Internal.ByteString
instance Aws.DynamoDb.Core.DynVal GHC.Types.Double
instance Aws.DynamoDb.Core.DynVal Data.Time.Calendar.Days.Day
instance Aws.DynamoDb.Core.DynVal Data.Time.Clock.UTC.UTCTime
instance Data.Serialize.Serialize a => Aws.DynamoDb.Core.DynVal (Aws.DynamoDb.Core.Bin a)
instance Aws.DynamoDb.Core.DynVal Aws.DynamoDb.Core.OldBool
instance Data.String.IsString Aws.DynamoDb.Core.DValue
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.PrimaryKey
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.DValue
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Core.DValue
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.Attribute
instance GHC.Exception.Exception Aws.DynamoDb.Core.DdbError
instance GHC.Exception.Exception Aws.DynamoDb.Core.DdbLibraryError
instance Aws.Core.Loggable Aws.DynamoDb.Core.DdbResponse
instance GHC.Base.Monoid Aws.DynamoDb.Core.DdbResponse
instance Data.Default.Class.Default (Aws.DynamoDb.Core.DdbConfiguration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.DynamoDb.Core.DdbConfiguration Aws.Core.NormalQuery)
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Core.AmazonError
instance Data.Default.Class.Default Aws.DynamoDb.Core.Conditions
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.CondOp
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Core.ConsumedCapacity
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.ReturnConsumption
instance Data.Default.Class.Default Aws.DynamoDb.Core.ReturnConsumption
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance Data.Default.Class.Default Aws.DynamoDb.Core.ReturnItemCollectionMetrics
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Core.ItemCollectionMetrics
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Core.UpdateReturn
instance Data.Default.Class.Default Aws.DynamoDb.Core.UpdateReturn
instance Data.Default.Class.Default Aws.DynamoDb.Core.QuerySelect
instance Aws.DynamoDb.Core.DynSize Aws.DynamoDb.Core.DValue
instance Aws.DynamoDb.Core.DynSize Aws.DynamoDb.Core.Attribute
instance Aws.DynamoDb.Core.DynSize Aws.DynamoDb.Core.Item
instance Aws.DynamoDb.Core.DynSize a => Aws.DynamoDb.Core.DynSize [a]
instance Aws.DynamoDb.Core.DynSize a => Aws.DynamoDb.Core.DynSize (GHC.Base.Maybe a)
instance (Aws.DynamoDb.Core.DynSize a, Aws.DynamoDb.Core.DynSize b) => Aws.DynamoDb.Core.DynSize (Data.Either.Either a b)
instance GHC.Base.Monad Aws.DynamoDb.Core.Parser
instance GHC.Base.Functor Aws.DynamoDb.Core.Parser
instance GHC.Base.Applicative Aws.DynamoDb.Core.Parser
instance GHC.Base.Alternative Aws.DynamoDb.Core.Parser
instance GHC.Base.MonadPlus Aws.DynamoDb.Core.Parser
instance GHC.Base.Monoid (Aws.DynamoDb.Core.Parser a)
instance Aws.DynamoDb.Core.ToDynItem Aws.DynamoDb.Core.Item
instance Aws.DynamoDb.Core.FromDynItem Aws.DynamoDb.Core.Item
instance Aws.DynamoDb.Core.DynVal a => Aws.DynamoDb.Core.ToDynItem [(Data.Text.Internal.Text, a)]
instance (Data.Typeable.Internal.Typeable a, Aws.DynamoDb.Core.DynVal a) => Aws.DynamoDb.Core.FromDynItem [(Data.Text.Internal.Text, a)]
instance Aws.DynamoDb.Core.DynVal a => Aws.DynamoDb.Core.ToDynItem (Data.Map.Base.Map Data.Text.Internal.Text a)
instance (Data.Typeable.Internal.Typeable a, Aws.DynamoDb.Core.DynVal a) => Aws.DynamoDb.Core.FromDynItem (Data.Map.Base.Map Data.Text.Internal.Text a)


-- | <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 GHC.Classes.Ord Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance GHC.Read.Read Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance GHC.Show.Show Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance GHC.Classes.Eq Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance Aws.Core.Transaction Aws.DynamoDb.Commands.DeleteItem.DeleteItem Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.DeleteItem.DeleteItem
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.DeleteItem.DeleteItemResponse


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 GHC.Classes.Ord Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.GetItem.GetItem
instance GHC.Read.Read Aws.DynamoDb.Commands.GetItem.GetItem
instance GHC.Show.Show Aws.DynamoDb.Commands.GetItem.GetItem
instance GHC.Classes.Eq Aws.DynamoDb.Commands.GetItem.GetItem
instance Aws.Core.Transaction Aws.DynamoDb.Commands.GetItem.GetItem Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.GetItem.GetItem
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.GetItem.GetItem
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.GetItem.GetItemResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.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 GHC.Classes.Ord Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.PutItem.PutItem
instance GHC.Read.Read Aws.DynamoDb.Commands.PutItem.PutItem
instance GHC.Show.Show Aws.DynamoDb.Commands.PutItem.PutItem
instance GHC.Classes.Eq Aws.DynamoDb.Commands.PutItem.PutItem
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.PutItem.PutItem
instance Aws.Core.Transaction Aws.DynamoDb.Commands.PutItem.PutItem Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.PutItem.PutItem
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.PutItem.PutItemResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.PutItem.PutItemResponse


-- | 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 GHC.Classes.Ord Aws.DynamoDb.Commands.Query.QueryResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.Query.QueryResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.Query.QueryResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Query.QueryResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Query.Query
instance GHC.Read.Read Aws.DynamoDb.Commands.Query.Query
instance GHC.Show.Show Aws.DynamoDb.Commands.Query.Query
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Query.Query
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Query.Slice
instance GHC.Read.Read Aws.DynamoDb.Commands.Query.Slice
instance GHC.Show.Show Aws.DynamoDb.Commands.Query.Slice
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Query.Slice
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Query.Query
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Query.QueryResponse
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Query.Query Aws.DynamoDb.Commands.Query.QueryResponse
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Query.Query
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Query.QueryResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Query.QueryResponse
instance Aws.Core.ListResponse Aws.DynamoDb.Commands.Query.QueryResponse Aws.DynamoDb.Core.Item
instance Aws.Core.IteratedTransaction Aws.DynamoDb.Commands.Query.Query Aws.DynamoDb.Commands.Query.QueryResponse


-- | 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 -> Bool -> Conditions -> Maybe [Attribute] -> Maybe Int -> Maybe Text -> QuerySelect -> ReturnConsumption -> Int -> Int -> Scan

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

-- | Whether to require a consistent read
[sConsistentRead] :: Scan -> Bool

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

-- | Optional. Index to <a>Scan</a>
[sIndex] :: Scan -> Maybe Text

-- | 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 GHC.Classes.Ord Aws.DynamoDb.Commands.Scan.ScanResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.Scan.ScanResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.Scan.ScanResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Scan.ScanResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Scan.Scan
instance GHC.Read.Read Aws.DynamoDb.Commands.Scan.Scan
instance GHC.Show.Show Aws.DynamoDb.Commands.Scan.Scan
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Scan.Scan
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Scan.Scan
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Scan.ScanResponse
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Scan.Scan Aws.DynamoDb.Commands.Scan.ScanResponse
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Scan.Scan
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Scan.ScanResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Scan.ScanResponse
instance Aws.Core.ListResponse Aws.DynamoDb.Commands.Scan.ScanResponse Aws.DynamoDb.Core.Item
instance Aws.Core.IteratedTransaction Aws.DynamoDb.Commands.Scan.Scan Aws.DynamoDb.Commands.Scan.ScanResponse

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 GHC.Generics.Generic Aws.DynamoDb.Commands.Table.ListTablesResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.ListTablesResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.ListTables
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.DeleteTableResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.DeleteTableResult
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.DeleteTable
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.DeleteTable
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.UpdateTableResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.UpdateTableResult
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.UpdateTable
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.UpdateTable
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.DescribeTableResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.DescribeTableResult
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.DescribeTable
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.DescribeTable
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.CreateTableResult
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.CreateTableResult
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.CreateTable
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.CreateTable
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.TableDescription
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.TableDescription
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexUpdate
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexUpdate
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexStatus
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexStatus
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.GlobalSecondaryIndex
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.GlobalSecondaryIndex
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.ProvisionedThroughputStatus
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.ProvisionedThroughputStatus
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.ProvisionedThroughput
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.ProvisionedThroughput
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.LocalSecondaryIndexStatus
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.LocalSecondaryIndexStatus
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.LocalSecondaryIndex
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.LocalSecondaryIndex
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.Projection
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.KeySchema
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Table.KeySchema
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.KeySchema
instance GHC.Read.Read Aws.DynamoDb.Commands.Table.KeySchema
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Table.KeySchema
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.AttributeDefinition
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.AttributeDefinition
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Table.AttributeDefinition
instance GHC.Read.Read Aws.DynamoDb.Commands.Table.AttributeDefinition
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Table.AttributeDefinition
instance GHC.Generics.Generic Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Enum.Bounded Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Enum.Enum Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Classes.Eq Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Classes.Ord Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Read.Read Aws.DynamoDb.Commands.Table.AttributeType
instance GHC.Show.Show Aws.DynamoDb.Commands.Table.AttributeType
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.AttributeType
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.AttributeType
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.AttributeDefinition
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.AttributeDefinition
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.KeySchema
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.KeySchema
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.Projection
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.Projection
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.LocalSecondaryIndex
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.LocalSecondaryIndex
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.LocalSecondaryIndexStatus
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.ProvisionedThroughput
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.ProvisionedThroughput
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.ProvisionedThroughputStatus
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.GlobalSecondaryIndex
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.GlobalSecondaryIndex
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexStatus
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.GlobalSecondaryIndexUpdate
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.TableDescription
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.CreateTable
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Table.CreateTable
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Table.CreateTableResult
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Table.CreateTableResult
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Table.CreateTable Aws.DynamoDb.Commands.Table.CreateTableResult
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.DescribeTable
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Table.DescribeTable
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Table.DescribeTableResult
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Table.DescribeTableResult
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Table.DescribeTable Aws.DynamoDb.Commands.Table.DescribeTableResult
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.UpdateTable
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Table.UpdateTable
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Table.UpdateTableResult
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Table.UpdateTableResult
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Table.UpdateTable Aws.DynamoDb.Commands.Table.UpdateTableResult
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.DeleteTable
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Table.DeleteTable
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Table.DeleteTableResult
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Table.DeleteTableResult
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Table.DeleteTable Aws.DynamoDb.Commands.Table.DeleteTableResult
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.Table.ListTables
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.Table.ListTables
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.Table.ListTablesResult
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.Table.ListTablesResult
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.Table.ListTablesResult
instance Aws.Core.Transaction Aws.DynamoDb.Commands.Table.ListTables Aws.DynamoDb.Commands.Table.ListTablesResult


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 GHC.Classes.Ord Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance GHC.Read.Read Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance GHC.Show.Show Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance GHC.Classes.Eq Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance GHC.Classes.Ord Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance GHC.Read.Read Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance GHC.Show.Show Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance GHC.Classes.Eq Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance GHC.Classes.Ord Aws.DynamoDb.Commands.UpdateItem.AttributeUpdate
instance GHC.Read.Read Aws.DynamoDb.Commands.UpdateItem.AttributeUpdate
instance GHC.Show.Show Aws.DynamoDb.Commands.UpdateItem.AttributeUpdate
instance GHC.Classes.Eq Aws.DynamoDb.Commands.UpdateItem.AttributeUpdate
instance GHC.Classes.Ord Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance GHC.Read.Read Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance GHC.Show.Show Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance GHC.Classes.Eq Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance Aws.DynamoDb.Core.DynSize Aws.DynamoDb.Commands.UpdateItem.AttributeUpdate
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.UpdateItem.AttributeUpdates
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance Data.Default.Class.Default Aws.DynamoDb.Commands.UpdateItem.UpdateAction
instance Data.Aeson.Types.Class.ToJSON Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance Aws.Core.Transaction Aws.DynamoDb.Commands.UpdateItem.UpdateItem Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance Aws.Core.SignQuery Aws.DynamoDb.Commands.UpdateItem.UpdateItem
instance Data.Aeson.Types.Class.FromJSON Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance Aws.Core.ResponseConsumer r Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse
instance Aws.Core.AsMemoryResponse Aws.DynamoDb.Commands.UpdateItem.UpdateItemResponse

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

-- | The IAM <tt>MFADevice</tt> data type.
--   
--   
--   <a>https://docs.aws.amazon.com/IAM/latest/APIReference/API_MFADevice.html</a>
data MfaDevice
MfaDevice :: UTCTime -> Text -> Text -> MfaDevice

-- | The date when the MFA device was enabled for the user.
[mfaEnableDate] :: MfaDevice -> UTCTime

-- | The serial number that uniquely identifies the MFA device. For virtual
--   MFA devices, the serial number is the device ARN.
[mfaSerialNumber] :: MfaDevice -> Text

-- | The user with whom the MFA device is associated. Minimum length of 1.
--   Maximum length of 64.
[mfaUserName] :: MfaDevice -> Text

-- | Parses the IAM <tt>MFADevice</tt> data type.
parseMfaDevice :: MonadThrow m => Cursor -> m MfaDevice
instance GHC.Show.Show Aws.Iam.Core.MfaDevice
instance GHC.Classes.Ord Aws.Iam.Core.MfaDevice
instance GHC.Classes.Eq Aws.Iam.Core.MfaDevice
instance GHC.Show.Show Aws.Iam.Core.AccessKeyStatus
instance GHC.Classes.Ord Aws.Iam.Core.AccessKeyStatus
instance GHC.Classes.Eq Aws.Iam.Core.AccessKeyStatus
instance GHC.Show.Show Aws.Iam.Core.User
instance GHC.Classes.Ord Aws.Iam.Core.User
instance GHC.Classes.Eq Aws.Iam.Core.User
instance GHC.Show.Show (Aws.Iam.Core.IamConfiguration qt)
instance GHC.Show.Show Aws.Iam.Core.IamMetadata
instance GHC.Show.Show Aws.Iam.Core.IamError
instance GHC.Exception.Exception Aws.Iam.Core.IamError
instance Aws.Core.Loggable Aws.Iam.Core.IamMetadata
instance GHC.Base.Monoid Aws.Iam.Core.IamMetadata
instance Aws.Core.DefaultServiceConfiguration (Aws.Iam.Core.IamConfiguration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.Iam.Core.IamConfiguration Aws.Core.UriOnlyQuery)

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>.
(<>) :: Monoid m => m -> m -> m
infixr 6 <>

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 GHC.Show.Show Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse
instance GHC.Show.Show Aws.Iam.Commands.CreateAccessKey.AccessKey
instance GHC.Classes.Ord Aws.Iam.Commands.CreateAccessKey.AccessKey
instance GHC.Classes.Eq Aws.Iam.Commands.CreateAccessKey.AccessKey
instance GHC.Show.Show Aws.Iam.Commands.CreateAccessKey.CreateAccessKey
instance GHC.Classes.Ord Aws.Iam.Commands.CreateAccessKey.CreateAccessKey
instance GHC.Classes.Eq Aws.Iam.Commands.CreateAccessKey.CreateAccessKey
instance Aws.Core.SignQuery Aws.Iam.Commands.CreateAccessKey.CreateAccessKey
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.CreateAccessKey.CreateAccessKey Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.CreateAccessKey.CreateAccessKey Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.CreateAccessKey.CreateAccessKeyResponse

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 GHC.Show.Show Aws.Iam.Commands.CreateUser.CreateUserResponse
instance GHC.Classes.Ord Aws.Iam.Commands.CreateUser.CreateUserResponse
instance GHC.Classes.Eq Aws.Iam.Commands.CreateUser.CreateUserResponse
instance GHC.Show.Show Aws.Iam.Commands.CreateUser.CreateUser
instance GHC.Classes.Ord Aws.Iam.Commands.CreateUser.CreateUser
instance GHC.Classes.Eq Aws.Iam.Commands.CreateUser.CreateUser
instance Aws.Core.SignQuery Aws.Iam.Commands.CreateUser.CreateUser
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.CreateUser.CreateUser Aws.Iam.Commands.CreateUser.CreateUserResponse
instance Aws.Core.Transaction Aws.Iam.Commands.CreateUser.CreateUser Aws.Iam.Commands.CreateUser.CreateUserResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.CreateUser.CreateUserResponse

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 GHC.Show.Show Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse
instance GHC.Show.Show Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey
instance Aws.Core.SignQuery Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKey Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.DeleteAccessKey.DeleteAccessKeyResponse

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 GHC.Show.Show Aws.Iam.Commands.DeleteUser.DeleteUserResponse
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteUser.DeleteUserResponse
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteUser.DeleteUserResponse
instance GHC.Show.Show Aws.Iam.Commands.DeleteUser.DeleteUser
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteUser.DeleteUser
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteUser.DeleteUser
instance Aws.Core.SignQuery Aws.Iam.Commands.DeleteUser.DeleteUser
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.DeleteUser.DeleteUser Aws.Iam.Commands.DeleteUser.DeleteUserResponse
instance Aws.Core.Transaction Aws.Iam.Commands.DeleteUser.DeleteUser Aws.Iam.Commands.DeleteUser.DeleteUserResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.DeleteUser.DeleteUserResponse

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 GHC.Show.Show Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse
instance GHC.Show.Show Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy
instance GHC.Classes.Ord Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy
instance GHC.Classes.Eq Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy
instance Aws.Core.SignQuery Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicy Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.DeleteUserPolicy.DeleteUserPolicyResponse

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 GHC.Show.Show Aws.Iam.Commands.GetUser.GetUserResponse
instance GHC.Classes.Ord Aws.Iam.Commands.GetUser.GetUserResponse
instance GHC.Classes.Eq Aws.Iam.Commands.GetUser.GetUserResponse
instance GHC.Show.Show Aws.Iam.Commands.GetUser.GetUser
instance GHC.Classes.Ord Aws.Iam.Commands.GetUser.GetUser
instance GHC.Classes.Eq Aws.Iam.Commands.GetUser.GetUser
instance Aws.Core.SignQuery Aws.Iam.Commands.GetUser.GetUser
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.GetUser.GetUser Aws.Iam.Commands.GetUser.GetUserResponse
instance Aws.Core.Transaction Aws.Iam.Commands.GetUser.GetUser Aws.Iam.Commands.GetUser.GetUserResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.GetUser.GetUserResponse

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 GHC.Show.Show Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse
instance GHC.Show.Show Aws.Iam.Commands.GetUserPolicy.GetUserPolicy
instance GHC.Classes.Ord Aws.Iam.Commands.GetUserPolicy.GetUserPolicy
instance GHC.Classes.Eq Aws.Iam.Commands.GetUserPolicy.GetUserPolicy
instance Aws.Core.SignQuery Aws.Iam.Commands.GetUserPolicy.GetUserPolicy
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.GetUserPolicy.GetUserPolicy Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.GetUserPolicy.GetUserPolicy Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.GetUserPolicy.GetUserPolicyResponse

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 GHC.Show.Show Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance GHC.Classes.Ord Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance GHC.Classes.Eq Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance GHC.Show.Show Aws.Iam.Commands.ListAccessKeys.AccessKeyMetadata
instance GHC.Classes.Ord Aws.Iam.Commands.ListAccessKeys.AccessKeyMetadata
instance GHC.Classes.Eq Aws.Iam.Commands.ListAccessKeys.AccessKeyMetadata
instance GHC.Show.Show Aws.Iam.Commands.ListAccessKeys.ListAccessKeys
instance GHC.Classes.Ord Aws.Iam.Commands.ListAccessKeys.ListAccessKeys
instance GHC.Classes.Eq Aws.Iam.Commands.ListAccessKeys.ListAccessKeys
instance Aws.Core.SignQuery Aws.Iam.Commands.ListAccessKeys.ListAccessKeys
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.ListAccessKeys.ListAccessKeys Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance Aws.Core.Transaction Aws.Iam.Commands.ListAccessKeys.ListAccessKeys Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance Aws.Core.IteratedTransaction Aws.Iam.Commands.ListAccessKeys.ListAccessKeys Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.ListAccessKeys.ListAccessKeysResponse

module Aws.Iam.Commands.ListMfaDevices

-- | Lists the MFA devices. If the request includes the user name, then
--   this action lists all the MFA devices associated with the specified
--   user name. If you do not specify a user name, IAM determines the user
--   name implicitly based on the AWS access key ID signing the request.
--   
--   
--   <a>https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html</a>
data ListMfaDevices
ListMfaDevices :: Maybe Text -> Maybe Text -> Maybe Integer -> ListMfaDevices

-- | The name of the user whose MFA devices you want to list. If you do not
--   specify a user name, IAM determines the user name implicitly based on
--   the AWS access key ID signing the request
[lmfaUserName] :: ListMfaDevices -> Maybe Text

-- | Used for paginating requests. Marks the position of the last request.
[lmfaMarker] :: ListMfaDevices -> Maybe Text

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

-- | List of 'MFA Device's.
[lmfarMfaDevices] :: ListMfaDevicesResponse -> [MfaDevice]

-- | <tt>True</tt> if the request was truncated because of too many items.
[lmfarIsTruncated] :: ListMfaDevicesResponse -> 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.
[lmfarMarker] :: ListMfaDevicesResponse -> Maybe Text
instance GHC.Show.Show Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance GHC.Classes.Ord Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance GHC.Classes.Eq Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance GHC.Show.Show Aws.Iam.Commands.ListMfaDevices.ListMfaDevices
instance GHC.Classes.Ord Aws.Iam.Commands.ListMfaDevices.ListMfaDevices
instance GHC.Classes.Eq Aws.Iam.Commands.ListMfaDevices.ListMfaDevices
instance Aws.Core.SignQuery Aws.Iam.Commands.ListMfaDevices.ListMfaDevices
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.ListMfaDevices.ListMfaDevices Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance Aws.Core.Transaction Aws.Iam.Commands.ListMfaDevices.ListMfaDevices Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance Aws.Core.IteratedTransaction Aws.Iam.Commands.ListMfaDevices.ListMfaDevices Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.ListMfaDevices.ListMfaDevicesResponse

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 GHC.Show.Show Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance GHC.Classes.Ord Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance GHC.Classes.Eq Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance GHC.Show.Show Aws.Iam.Commands.ListUserPolicies.ListUserPolicies
instance GHC.Classes.Ord Aws.Iam.Commands.ListUserPolicies.ListUserPolicies
instance GHC.Classes.Eq Aws.Iam.Commands.ListUserPolicies.ListUserPolicies
instance Aws.Core.SignQuery Aws.Iam.Commands.ListUserPolicies.ListUserPolicies
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.ListUserPolicies.ListUserPolicies Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance Aws.Core.Transaction Aws.Iam.Commands.ListUserPolicies.ListUserPolicies Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance Aws.Core.IteratedTransaction Aws.Iam.Commands.ListUserPolicies.ListUserPolicies Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.ListUserPolicies.ListUserPoliciesResponse

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 GHC.Show.Show Aws.Iam.Commands.ListUsers.ListUsersResponse
instance GHC.Classes.Ord Aws.Iam.Commands.ListUsers.ListUsersResponse
instance GHC.Classes.Eq Aws.Iam.Commands.ListUsers.ListUsersResponse
instance GHC.Show.Show Aws.Iam.Commands.ListUsers.ListUsers
instance GHC.Classes.Ord Aws.Iam.Commands.ListUsers.ListUsers
instance GHC.Classes.Eq Aws.Iam.Commands.ListUsers.ListUsers
instance Aws.Core.SignQuery Aws.Iam.Commands.ListUsers.ListUsers
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.ListUsers.ListUsers Aws.Iam.Commands.ListUsers.ListUsersResponse
instance Aws.Core.Transaction Aws.Iam.Commands.ListUsers.ListUsers Aws.Iam.Commands.ListUsers.ListUsersResponse
instance Aws.Core.IteratedTransaction Aws.Iam.Commands.ListUsers.ListUsers Aws.Iam.Commands.ListUsers.ListUsersResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.ListUsers.ListUsersResponse

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 GHC.Show.Show Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse
instance GHC.Show.Show Aws.Iam.Commands.PutUserPolicy.PutUserPolicy
instance GHC.Classes.Ord Aws.Iam.Commands.PutUserPolicy.PutUserPolicy
instance GHC.Classes.Eq Aws.Iam.Commands.PutUserPolicy.PutUserPolicy
instance Aws.Core.SignQuery Aws.Iam.Commands.PutUserPolicy.PutUserPolicy
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.PutUserPolicy.PutUserPolicy Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.PutUserPolicy.PutUserPolicy Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.PutUserPolicy.PutUserPolicyResponse

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 GHC.Show.Show Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse
instance GHC.Classes.Ord Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse
instance GHC.Classes.Eq Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse
instance GHC.Show.Show Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey
instance GHC.Classes.Ord Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey
instance GHC.Classes.Eq Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey
instance Aws.Core.SignQuery Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse
instance Aws.Core.Transaction Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKey Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.UpdateAccessKey.UpdateAccessKeyResponse

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 GHC.Show.Show Aws.Iam.Commands.UpdateUser.UpdateUserResponse
instance GHC.Classes.Ord Aws.Iam.Commands.UpdateUser.UpdateUserResponse
instance GHC.Classes.Eq Aws.Iam.Commands.UpdateUser.UpdateUserResponse
instance GHC.Show.Show Aws.Iam.Commands.UpdateUser.UpdateUser
instance GHC.Classes.Ord Aws.Iam.Commands.UpdateUser.UpdateUser
instance GHC.Classes.Eq Aws.Iam.Commands.UpdateUser.UpdateUser
instance Aws.Core.SignQuery Aws.Iam.Commands.UpdateUser.UpdateUser
instance Aws.Core.ResponseConsumer Aws.Iam.Commands.UpdateUser.UpdateUser Aws.Iam.Commands.UpdateUser.UpdateUserResponse
instance Aws.Core.Transaction Aws.Iam.Commands.UpdateUser.UpdateUser Aws.Iam.Commands.UpdateUser.UpdateUserResponse
instance Aws.Core.AsMemoryResponse Aws.Iam.Commands.UpdateUser.UpdateUserResponse

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 -> 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
[s3ErrorBucket] :: S3Error -> Maybe Text
[s3ErrorEndpointRaw] :: S3Error -> Maybe Text
[s3ErrorEndpoint] :: 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
StandardInfrequentAccess :: StorageClass
ReducedRedundancy :: StorageClass
Glacier :: StorageClass
OtherStorageClass :: Text -> StorageClass
parseStorageClass :: Text -> 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
locationUsWest :: LocationConstraint
locationUsWest2 :: LocationConstraint
locationEu :: LocationConstraint
locationEuFrankfurt :: LocationConstraint
locationApSouthEast :: LocationConstraint
locationApSouthEast2 :: LocationConstraint
locationApNorthEast :: LocationConstraint
locationSA :: LocationConstraint
normaliseLocation :: LocationConstraint -> LocationConstraint
instance GHC.Show.Show Aws.S3.Core.ObjectMetadata
instance GHC.Show.Show Aws.S3.Core.ObjectInfo
instance GHC.Show.Show Aws.S3.Core.ObjectId
instance GHC.Show.Show Aws.S3.Core.BucketInfo
instance GHC.Show.Show (Aws.S3.Core.S3Configuration qt)
instance GHC.Show.Show Aws.S3.Core.ServerSideEncryption
instance GHC.Show.Show Aws.S3.Core.StorageClass
instance GHC.Show.Show Aws.S3.Core.CannedAcl
instance GHC.Show.Show Aws.S3.Core.UserInfo
instance GHC.Show.Show Aws.S3.Core.S3Metadata
instance GHC.Show.Show Aws.S3.Core.S3Error
instance GHC.Show.Show Aws.S3.Core.RequestStyle
instance GHC.Show.Show Aws.S3.Core.S3Authorization
instance Aws.Core.DefaultServiceConfiguration (Aws.S3.Core.S3Configuration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.S3.Core.S3Configuration Aws.Core.UriOnlyQuery)
instance GHC.Exception.Exception Aws.S3.Core.S3Error
instance GHC.Base.Monoid Aws.S3.Core.S3Metadata
instance Aws.Core.Loggable Aws.S3.Core.S3Metadata
instance GHC.Show.Show Aws.S3.Core.S3Query

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 GHC.Show.Show Aws.S3.Commands.CopyObject.CopyObjectResponse
instance GHC.Show.Show Aws.S3.Commands.CopyObject.CopyObject
instance GHC.Show.Show Aws.S3.Commands.CopyObject.CopyMetadataDirective
instance Aws.Core.SignQuery Aws.S3.Commands.CopyObject.CopyObject
instance Aws.Core.ResponseConsumer Aws.S3.Commands.CopyObject.CopyObject Aws.S3.Commands.CopyObject.CopyObjectResponse
instance Aws.Core.Transaction Aws.S3.Commands.CopyObject.CopyObject Aws.S3.Commands.CopyObject.CopyObjectResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.CopyObject.CopyObjectResponse

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

-- | ServiceConfiguration: <a>S3Configuration</a>
instance GHC.Show.Show Aws.S3.Commands.DeleteBucket.DeleteBucketResponse
instance GHC.Show.Show Aws.S3.Commands.DeleteBucket.DeleteBucket
instance Aws.Core.SignQuery Aws.S3.Commands.DeleteBucket.DeleteBucket
instance Aws.Core.ResponseConsumer Aws.S3.Commands.DeleteBucket.DeleteBucket Aws.S3.Commands.DeleteBucket.DeleteBucketResponse
instance Aws.Core.Transaction Aws.S3.Commands.DeleteBucket.DeleteBucket Aws.S3.Commands.DeleteBucket.DeleteBucketResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.DeleteBucket.DeleteBucketResponse

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 Aws.Core.SignQuery Aws.S3.Commands.DeleteObject.DeleteObject
instance Aws.Core.ResponseConsumer Aws.S3.Commands.DeleteObject.DeleteObject Aws.S3.Commands.DeleteObject.DeleteObjectResponse
instance Aws.Core.Transaction Aws.S3.Commands.DeleteObject.DeleteObject Aws.S3.Commands.DeleteObject.DeleteObjectResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.DeleteObject.DeleteObjectResponse

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 GHC.Show.Show Aws.S3.Commands.DeleteObjects.DeleteObjectsResponse
instance GHC.Show.Show Aws.S3.Commands.DeleteObjects.DORErrors
instance GHC.Show.Show Aws.S3.Commands.DeleteObjects.DORDeleted
instance GHC.Show.Show Aws.S3.Commands.DeleteObjects.DeleteObjects
instance Aws.Core.SignQuery Aws.S3.Commands.DeleteObjects.DeleteObjects
instance Aws.Core.ResponseConsumer Aws.S3.Commands.DeleteObjects.DeleteObjects Aws.S3.Commands.DeleteObjects.DeleteObjectsResponse
instance Aws.Core.Transaction Aws.S3.Commands.DeleteObjects.DeleteObjects Aws.S3.Commands.DeleteObjects.DeleteObjectsResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.DeleteObjects.DeleteObjectsResponse

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 GHC.Show.Show Aws.S3.Commands.GetBucket.GetBucketResponse
instance GHC.Show.Show Aws.S3.Commands.GetBucket.GetBucket
instance Aws.Core.SignQuery Aws.S3.Commands.GetBucket.GetBucket
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.GetBucket.GetBucketResponse
instance Aws.Core.Transaction Aws.S3.Commands.GetBucket.GetBucket Aws.S3.Commands.GetBucket.GetBucketResponse
instance Aws.Core.IteratedTransaction Aws.S3.Commands.GetBucket.GetBucket Aws.S3.Commands.GetBucket.GetBucketResponse
instance Aws.Core.ListResponse Aws.S3.Commands.GetBucket.GetBucketResponse Aws.S3.Core.ObjectInfo
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.GetBucket.GetBucketResponse

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 GHC.Show.Show Aws.S3.Commands.GetBucketLocation.GetBucketLocationResponse
instance GHC.Show.Show Aws.S3.Commands.GetBucketLocation.GetBucketLocation
instance Aws.Core.SignQuery Aws.S3.Commands.GetBucketLocation.GetBucketLocation
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.GetBucketLocation.GetBucketLocationResponse
instance Aws.Core.Transaction Aws.S3.Commands.GetBucketLocation.GetBucketLocation Aws.S3.Commands.GetBucketLocation.GetBucketLocationResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.GetBucketLocation.GetBucketLocationResponse

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) -> Maybe Text -> Maybe Text -> 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)

-- | Return the object only if its entity tag (ETag, which is an md5sum of
--   the content) is the same as the one specified; otherwise, catch a
--   <tt>StatusCodeException</tt> with a status of 412 precondition failed.
[goIfMatch] :: GetObject -> Maybe Text

-- | Return the object only if its entity tag (ETag, which is an md5sum of
--   the content) is different from the one specified; otherwise, catch a
--   <tt>StatusCodeException</tt> with a status of 304 not modified.
[goIfNoneMatch] :: GetObject -> Maybe Text
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 GHC.Show.Show Aws.S3.Commands.GetObject.GetObjectMemoryResponse
instance GHC.Show.Show Aws.S3.Commands.GetObject.GetObject
instance Aws.Core.SignQuery Aws.S3.Commands.GetObject.GetObject
instance Aws.Core.ResponseConsumer Aws.S3.Commands.GetObject.GetObject Aws.S3.Commands.GetObject.GetObjectResponse
instance Aws.Core.Transaction Aws.S3.Commands.GetObject.GetObject Aws.S3.Commands.GetObject.GetObjectResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.GetObject.GetObjectResponse

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 GHC.Show.Show Aws.S3.Commands.GetService.GetServiceResponse
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.GetService.GetServiceResponse
instance Aws.Core.SignQuery Aws.S3.Commands.GetService.GetService
instance Aws.Core.Transaction Aws.S3.Commands.GetService.GetService Aws.S3.Commands.GetService.GetServiceResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.GetService.GetServiceResponse

module Aws.S3.Commands.HeadObject
data HeadObject
HeadObject :: Bucket -> Object -> Maybe Text -> Maybe Text -> Maybe Text -> HeadObject
[hoBucket] :: HeadObject -> Bucket
[hoObjectName] :: HeadObject -> Object
[hoVersionId] :: HeadObject -> Maybe Text

-- | Return the object only if its entity tag (ETag, which is an md5sum of
--   the content) is the same as the one specified; otherwise, catch a
--   <tt>StatusCodeException</tt> with a status of 412 precondition failed.
[hoIfMatch] :: HeadObject -> Maybe Text

-- | Return the object only if its entity tag (ETag, which is an md5sum of
--   the content) is different from the one specified; otherwise, catch a
--   <tt>StatusCodeException</tt> with a status of 304 not modified.
[hoIfNoneMatch] :: 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 GHC.Show.Show Aws.S3.Commands.HeadObject.HeadObjectMemoryResponse
instance GHC.Show.Show Aws.S3.Commands.HeadObject.HeadObject
instance Aws.Core.SignQuery Aws.S3.Commands.HeadObject.HeadObject
instance Aws.Core.ResponseConsumer Aws.S3.Commands.HeadObject.HeadObject Aws.S3.Commands.HeadObject.HeadObjectResponse
instance Aws.Core.Transaction Aws.S3.Commands.HeadObject.HeadObject Aws.S3.Commands.HeadObject.HeadObjectResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.HeadObject.HeadObjectResponse

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

-- | Google Cloud Storage S3 nonstandard extension
[pbXStorageClass] :: PutBucket -> Maybe StorageClass
putBucket :: Bucket -> PutBucket
data PutBucketResponse
PutBucketResponse :: PutBucketResponse

-- | ServiceConfiguration: <a>S3Configuration</a>
instance GHC.Show.Show Aws.S3.Commands.PutBucket.PutBucketResponse
instance GHC.Show.Show Aws.S3.Commands.PutBucket.PutBucket
instance Aws.Core.SignQuery Aws.S3.Commands.PutBucket.PutBucket
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.PutBucket.PutBucketResponse
instance Aws.Core.Transaction Aws.S3.Commands.PutBucket.PutBucket Aws.S3.Commands.PutBucket.PutBucketResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.PutBucket.PutBucketResponse

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

-- | Note: Requires http-client &gt;= 0.4.10
[poExpect100Continue] :: PutObject -> Bool
putObject :: Bucket -> Text -> RequestBody -> PutObject
data PutObjectResponse
PutObjectResponse :: Maybe Text -> PutObjectResponse
[porVersionId] :: PutObjectResponse -> Maybe Text

-- | ServiceConfiguration: <a>S3Configuration</a>
instance GHC.Show.Show Aws.S3.Commands.PutObject.PutObjectResponse
instance Aws.Core.SignQuery Aws.S3.Commands.PutObject.PutObject
instance Aws.Core.ResponseConsumer Aws.S3.Commands.PutObject.PutObject Aws.S3.Commands.PutObject.PutObjectResponse
instance Aws.Core.Transaction Aws.S3.Commands.PutObject.PutObject Aws.S3.Commands.PutObject.PutObjectResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.PutObject.PutObjectResponse

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 GHC.Show.Show Aws.Ses.Core.Sender
instance GHC.Classes.Ord Aws.Ses.Core.Sender
instance GHC.Classes.Eq Aws.Ses.Core.Sender
instance GHC.Show.Show Aws.Ses.Core.Destination
instance GHC.Classes.Ord Aws.Ses.Core.Destination
instance GHC.Classes.Eq Aws.Ses.Core.Destination
instance GHC.Show.Show Aws.Ses.Core.RawMessage
instance GHC.Classes.Ord Aws.Ses.Core.RawMessage
instance GHC.Classes.Eq Aws.Ses.Core.RawMessage
instance GHC.Show.Show (Aws.Ses.Core.SesConfiguration qt)
instance GHC.Show.Show Aws.Ses.Core.SesMetadata
instance GHC.Show.Show Aws.Ses.Core.SesError
instance GHC.Exception.Exception Aws.Ses.Core.SesError
instance Aws.Core.Loggable Aws.Ses.Core.SesMetadata
instance GHC.Base.Monoid Aws.Ses.Core.SesMetadata
instance Aws.Core.DefaultServiceConfiguration (Aws.Ses.Core.SesConfiguration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.Ses.Core.SesConfiguration Aws.Core.UriOnlyQuery)
instance Aws.Ses.Core.SesAsQuery a => Aws.Ses.Core.SesAsQuery (GHC.Base.Maybe a)
instance Aws.Ses.Core.SesAsQuery Aws.Ses.Core.RawMessage
instance Aws.Ses.Core.SesAsQuery Aws.Ses.Core.Destination
instance GHC.Base.Monoid Aws.Ses.Core.Destination
instance Aws.Ses.Core.SesAsQuery Aws.Ses.Core.Sender

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 GHC.Show.Show Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse
instance GHC.Classes.Ord Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse
instance GHC.Classes.Eq Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse
instance GHC.Show.Show Aws.Ses.Commands.SendRawEmail.SendRawEmail
instance GHC.Classes.Ord Aws.Ses.Commands.SendRawEmail.SendRawEmail
instance GHC.Classes.Eq Aws.Ses.Commands.SendRawEmail.SendRawEmail
instance Aws.Core.SignQuery Aws.Ses.Commands.SendRawEmail.SendRawEmail
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.SendRawEmail.SendRawEmail Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse
instance Aws.Core.Transaction Aws.Ses.Commands.SendRawEmail.SendRawEmail Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.SendRawEmail.SendRawEmailResponse

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 GHC.Show.Show Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse
instance GHC.Classes.Ord Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse
instance GHC.Classes.Eq Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse
instance GHC.Show.Show Aws.Ses.Commands.ListIdentities.ListIdentities
instance GHC.Classes.Ord Aws.Ses.Commands.ListIdentities.ListIdentities
instance GHC.Classes.Eq Aws.Ses.Commands.ListIdentities.ListIdentities
instance GHC.Show.Show Aws.Ses.Commands.ListIdentities.IdentityType
instance GHC.Classes.Ord Aws.Ses.Commands.ListIdentities.IdentityType
instance GHC.Classes.Eq Aws.Ses.Commands.ListIdentities.IdentityType
instance Aws.Core.SignQuery Aws.Ses.Commands.ListIdentities.ListIdentities
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.ListIdentities.ListIdentities Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse
instance Aws.Core.Transaction Aws.Ses.Commands.ListIdentities.ListIdentities Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.ListIdentities.ListIdentitiesResponse

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 GHC.Show.Show Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse
instance GHC.Show.Show Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity
instance Aws.Core.SignQuery Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse
instance Aws.Core.Transaction Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentity Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.VerifyEmailIdentity.VerifyEmailIdentityResponse

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 GHC.Show.Show Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse
instance GHC.Show.Show Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity
instance Aws.Core.SignQuery Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse
instance Aws.Core.Transaction Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentity Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.VerifyDomainIdentity.VerifyDomainIdentityResponse

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 GHC.Show.Show Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse
instance GHC.Show.Show Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim
instance GHC.Classes.Ord Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim
instance GHC.Classes.Eq Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim
instance Aws.Core.SignQuery Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse
instance Aws.Core.Transaction Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkim Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.VerifyDomainDkim.VerifyDomainDkimResponse

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 GHC.Show.Show Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse
instance GHC.Classes.Ord Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse
instance GHC.Classes.Eq Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse
instance GHC.Show.Show Aws.Ses.Commands.DeleteIdentity.DeleteIdentity
instance GHC.Classes.Ord Aws.Ses.Commands.DeleteIdentity.DeleteIdentity
instance GHC.Classes.Eq Aws.Ses.Commands.DeleteIdentity.DeleteIdentity
instance Aws.Core.SignQuery Aws.Ses.Commands.DeleteIdentity.DeleteIdentity
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.DeleteIdentity.DeleteIdentity Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse
instance Aws.Core.Transaction Aws.Ses.Commands.DeleteIdentity.DeleteIdentity Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.DeleteIdentity.DeleteIdentityResponse

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 GHC.Show.Show Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityDkimAttributes.IdentityDkimAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityDkimAttributes.IdentityDkimAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityDkimAttributes.IdentityDkimAttributes
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes
instance Aws.Core.SignQuery Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse
instance Aws.Core.Transaction Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributes Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.GetIdentityDkimAttributes.GetIdentityDkimAttributesResponse

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 GHC.Show.Show Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityNotificationAttributes.IdentityNotificationAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityNotificationAttributes.IdentityNotificationAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityNotificationAttributes.IdentityNotificationAttributes
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes
instance Aws.Core.SignQuery Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse
instance Aws.Core.Transaction Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributes Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.GetIdentityNotificationAttributes.GetIdentityNotificationAttributesResponse

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 GHC.Show.Show Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityVerificationAttributes.IdentityVerificationAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityVerificationAttributes.IdentityVerificationAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityVerificationAttributes.IdentityVerificationAttributes
instance GHC.Show.Show Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes
instance GHC.Classes.Ord Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes
instance GHC.Classes.Eq Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes
instance Aws.Core.SignQuery Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse
instance Aws.Core.Transaction Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributes Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.GetIdentityVerificationAttributes.GetIdentityVerificationAttributesResponse

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 GHC.Show.Show Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse
instance GHC.Show.Show Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic
instance GHC.Show.Show Aws.Ses.Commands.SetIdentityNotificationTopic.NotificationType
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityNotificationTopic.NotificationType
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityNotificationTopic.NotificationType
instance Aws.Core.SignQuery Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse
instance Aws.Core.Transaction Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopic Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.SetIdentityNotificationTopic.SetIdentityNotificationTopicResponse

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 GHC.Show.Show Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse
instance GHC.Show.Show Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled
instance Aws.Core.SignQuery Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse
instance Aws.Core.Transaction Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabled Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.SetIdentityDkimEnabled.SetIdentityDkimEnabledResponse

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 GHC.Show.Show Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse
instance GHC.Show.Show Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled
instance GHC.Classes.Ord Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled
instance GHC.Classes.Eq Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled
instance Aws.Core.SignQuery Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled
instance Aws.Core.ResponseConsumer Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse
instance Aws.Core.Transaction Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabled Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse
instance Aws.Core.AsMemoryResponse Aws.Ses.Commands.SetIdentityFeedbackForwardingEnabled.SetIdentityFeedbackForwardingEnabledResponse

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 GHC.Show.Show a => GHC.Show.Show (Aws.SimpleDb.Core.Item a)
instance GHC.Show.Show Aws.SimpleDb.Core.ExpectedAttribute
instance GHC.Show.Show Aws.SimpleDb.Core.DeleteAttribute
instance GHC.Show.Show Aws.SimpleDb.Core.SetAttribute
instance GHC.Show.Show a => GHC.Show.Show (Aws.SimpleDb.Core.Attribute a)
instance GHC.Show.Show (Aws.SimpleDb.Core.SdbConfiguration qt)
instance GHC.Show.Show Aws.SimpleDb.Core.SdbMetadata
instance GHC.Show.Show Aws.SimpleDb.Core.SdbError
instance GHC.Exception.Exception Aws.SimpleDb.Core.SdbError
instance Aws.Core.Loggable Aws.SimpleDb.Core.SdbMetadata
instance GHC.Base.Monoid Aws.SimpleDb.Core.SdbMetadata
instance Aws.Core.DefaultServiceConfiguration (Aws.SimpleDb.Core.SdbConfiguration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.SimpleDb.Core.SdbConfiguration Aws.Core.UriOnlyQuery)

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 GHC.Show.Show Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributesResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributes
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.BatchPutAttributesResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.BatchPutAttributes
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.DeleteAttributesResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.DeleteAttributes
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.PutAttributesResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.PutAttributes
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.GetAttributesResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Attributes.GetAttributes
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Attributes.GetAttributes
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Attributes.GetAttributesResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Attributes.GetAttributes Aws.SimpleDb.Commands.Attributes.GetAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Attributes.GetAttributesResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Attributes.PutAttributes
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Attributes.PutAttributesResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Attributes.PutAttributes Aws.SimpleDb.Commands.Attributes.PutAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Attributes.PutAttributesResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Attributes.DeleteAttributes
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Attributes.DeleteAttributesResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Attributes.DeleteAttributes Aws.SimpleDb.Commands.Attributes.DeleteAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Attributes.DeleteAttributesResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Attributes.BatchPutAttributes
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Attributes.BatchPutAttributesResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Attributes.BatchPutAttributes Aws.SimpleDb.Commands.Attributes.BatchPutAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Attributes.BatchPutAttributesResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributes
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributesResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributes Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Attributes.BatchDeleteAttributesResponse

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 GHC.Show.Show Aws.SimpleDb.Commands.Domain.ListDomainsResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.ListDomains
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.DomainMetadataResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.DomainMetadata
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.DeleteDomainResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.DeleteDomain
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.CreateDomainResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Domain.CreateDomain
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Domain.CreateDomain
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Domain.CreateDomainResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Domain.CreateDomain Aws.SimpleDb.Commands.Domain.CreateDomainResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Domain.CreateDomainResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Domain.DeleteDomain
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Domain.DeleteDomainResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Domain.DeleteDomain Aws.SimpleDb.Commands.Domain.DeleteDomainResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Domain.DeleteDomainResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Domain.DomainMetadata
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Domain.DomainMetadataResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Domain.DomainMetadata Aws.SimpleDb.Commands.Domain.DomainMetadataResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Domain.DomainMetadataResponse
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Domain.ListDomains
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Domain.ListDomainsResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Domain.ListDomains Aws.SimpleDb.Commands.Domain.ListDomainsResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Domain.ListDomainsResponse
instance Aws.Core.ListResponse Aws.SimpleDb.Commands.Domain.ListDomainsResponse Data.Text.Internal.Text
instance Aws.Core.IteratedTransaction Aws.SimpleDb.Commands.Domain.ListDomains Aws.SimpleDb.Commands.Domain.ListDomainsResponse

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 GHC.Show.Show Aws.SimpleDb.Commands.Select.SelectResponse
instance GHC.Show.Show Aws.SimpleDb.Commands.Select.Select
instance Aws.Core.SignQuery Aws.SimpleDb.Commands.Select.Select
instance Aws.Core.ResponseConsumer r Aws.SimpleDb.Commands.Select.SelectResponse
instance Aws.Core.Transaction Aws.SimpleDb.Commands.Select.Select Aws.SimpleDb.Commands.Select.SelectResponse
instance Aws.Core.AsMemoryResponse Aws.SimpleDb.Commands.Select.SelectResponse
instance Aws.Core.ListResponse Aws.SimpleDb.Commands.Select.SelectResponse (Aws.SimpleDb.Core.Item [Aws.SimpleDb.Core.Attribute Data.Text.Internal.Text])
instance Aws.Core.IteratedTransaction Aws.SimpleDb.Commands.Select.Select Aws.SimpleDb.Commands.Select.SelectResponse

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
sqsEndpointApSouthEast2 :: 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 GHC.Classes.Ord Aws.Sqs.Core.MessageId
instance GHC.Classes.Eq Aws.Sqs.Core.MessageId
instance GHC.Read.Read Aws.Sqs.Core.MessageId
instance GHC.Show.Show Aws.Sqs.Core.MessageId
instance GHC.Classes.Ord Aws.Sqs.Core.ReceiptHandle
instance GHC.Classes.Eq Aws.Sqs.Core.ReceiptHandle
instance GHC.Read.Read Aws.Sqs.Core.ReceiptHandle
instance GHC.Show.Show Aws.Sqs.Core.ReceiptHandle
instance GHC.Classes.Eq Aws.Sqs.Core.SqsPermission
instance GHC.Enum.Enum Aws.Sqs.Core.SqsPermission
instance GHC.Show.Show Aws.Sqs.Core.SqsPermission
instance GHC.Enum.Bounded Aws.Sqs.Core.MessageAttribute
instance GHC.Enum.Enum Aws.Sqs.Core.MessageAttribute
instance GHC.Classes.Ord Aws.Sqs.Core.MessageAttribute
instance GHC.Classes.Eq Aws.Sqs.Core.MessageAttribute
instance GHC.Read.Read Aws.Sqs.Core.MessageAttribute
instance GHC.Show.Show Aws.Sqs.Core.MessageAttribute
instance GHC.Classes.Eq Aws.Sqs.Core.QueueAttribute
instance GHC.Enum.Enum Aws.Sqs.Core.QueueAttribute
instance GHC.Show.Show Aws.Sqs.Core.QueueAttribute
instance GHC.Classes.Ord Aws.Sqs.Core.QueueName
instance GHC.Classes.Eq Aws.Sqs.Core.QueueName
instance GHC.Read.Read Aws.Sqs.Core.QueueName
instance GHC.Show.Show Aws.Sqs.Core.QueueName
instance GHC.Show.Show (Aws.Sqs.Core.SqsConfiguration qt)
instance GHC.Show.Show Aws.Sqs.Core.Endpoint
instance GHC.Show.Show Aws.Sqs.Core.SqsAuthorization
instance GHC.Show.Show Aws.Sqs.Core.SqsError
instance GHC.Show.Show Aws.Sqs.Core.SqsMetadata
instance GHC.Exception.Exception Aws.Sqs.Core.SqsError
instance Aws.Core.Loggable Aws.Sqs.Core.SqsMetadata
instance GHC.Base.Monoid Aws.Sqs.Core.SqsMetadata
instance Aws.Core.DefaultServiceConfiguration (Aws.Sqs.Core.SqsConfiguration Aws.Core.NormalQuery)
instance Aws.Core.DefaultServiceConfiguration (Aws.Sqs.Core.SqsConfiguration Aws.Core.UriOnlyQuery)

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 GHC.Classes.Ord Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance GHC.Read.Read Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance GHC.Show.Show Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.ChangeMessageVisibility
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.ChangeMessageVisibility
instance GHC.Read.Read Aws.Sqs.Commands.Message.ChangeMessageVisibility
instance GHC.Show.Show Aws.Sqs.Commands.Message.ChangeMessageVisibility
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance GHC.Read.Read Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance GHC.Show.Show Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.Message
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.Message
instance GHC.Read.Read Aws.Sqs.Commands.Message.Message
instance GHC.Show.Show Aws.Sqs.Commands.Message.Message
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.ReceiveMessage
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.ReceiveMessage
instance GHC.Read.Read Aws.Sqs.Commands.Message.ReceiveMessage
instance GHC.Show.Show Aws.Sqs.Commands.Message.ReceiveMessage
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.DeleteMessageResponse
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.DeleteMessageResponse
instance GHC.Read.Read Aws.Sqs.Commands.Message.DeleteMessageResponse
instance GHC.Show.Show Aws.Sqs.Commands.Message.DeleteMessageResponse
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.DeleteMessage
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.DeleteMessage
instance GHC.Read.Read Aws.Sqs.Commands.Message.DeleteMessage
instance GHC.Show.Show Aws.Sqs.Commands.Message.DeleteMessage
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.SendMessageResponse
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.SendMessageResponse
instance GHC.Read.Read Aws.Sqs.Commands.Message.SendMessageResponse
instance GHC.Show.Show Aws.Sqs.Commands.Message.SendMessageResponse
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.SendMessage
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.SendMessage
instance GHC.Read.Read Aws.Sqs.Commands.Message.SendMessage
instance GHC.Show.Show Aws.Sqs.Commands.Message.SendMessage
instance GHC.Classes.Ord Aws.Sqs.Commands.Message.UserMessageAttributeValue
instance GHC.Classes.Eq Aws.Sqs.Commands.Message.UserMessageAttributeValue
instance GHC.Read.Read Aws.Sqs.Commands.Message.UserMessageAttributeValue
instance GHC.Show.Show Aws.Sqs.Commands.Message.UserMessageAttributeValue
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Message.SendMessageResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Message.SendMessage
instance Aws.Core.Transaction Aws.Sqs.Commands.Message.SendMessage Aws.Sqs.Commands.Message.SendMessageResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Message.SendMessageResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Message.DeleteMessageResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Message.DeleteMessage
instance Aws.Core.Transaction Aws.Sqs.Commands.Message.DeleteMessage Aws.Sqs.Commands.Message.DeleteMessageResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Message.DeleteMessageResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Message.ReceiveMessage
instance Aws.Core.Transaction Aws.Sqs.Commands.Message.ReceiveMessage Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Message.ReceiveMessageResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Message.ChangeMessageVisibility
instance Aws.Core.Transaction Aws.Sqs.Commands.Message.ChangeMessageVisibility Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Message.ChangeMessageVisibilityResponse

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 GHC.Show.Show Aws.Sqs.Commands.Permission.RemovePermissionResponse
instance GHC.Show.Show Aws.Sqs.Commands.Permission.RemovePermission
instance GHC.Show.Show Aws.Sqs.Commands.Permission.AddPermissionResponse
instance GHC.Show.Show Aws.Sqs.Commands.Permission.AddPermission
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Permission.AddPermissionResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Permission.AddPermission
instance Aws.Core.Transaction Aws.Sqs.Commands.Permission.AddPermission Aws.Sqs.Commands.Permission.AddPermissionResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Permission.AddPermissionResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Permission.RemovePermissionResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Permission.RemovePermission
instance Aws.Core.Transaction Aws.Sqs.Commands.Permission.RemovePermission Aws.Sqs.Commands.Permission.RemovePermissionResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Permission.RemovePermissionResponse

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 GHC.Show.Show Aws.Sqs.Commands.Queue.ListQueuesResponse
instance GHC.Show.Show Aws.Sqs.Commands.Queue.ListQueues
instance GHC.Show.Show Aws.Sqs.Commands.Queue.DeleteQueueResponse
instance GHC.Show.Show Aws.Sqs.Commands.Queue.DeleteQueue
instance GHC.Show.Show Aws.Sqs.Commands.Queue.CreateQueueResponse
instance GHC.Show.Show Aws.Sqs.Commands.Queue.CreateQueue
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Queue.CreateQueueResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Queue.CreateQueue
instance Aws.Core.Transaction Aws.Sqs.Commands.Queue.CreateQueue Aws.Sqs.Commands.Queue.CreateQueueResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Queue.CreateQueueResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Queue.DeleteQueueResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Queue.DeleteQueue
instance Aws.Core.Transaction Aws.Sqs.Commands.Queue.DeleteQueue Aws.Sqs.Commands.Queue.DeleteQueueResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Queue.DeleteQueueResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.Queue.ListQueuesResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.Queue.ListQueues
instance Aws.Core.Transaction Aws.Sqs.Commands.Queue.ListQueues Aws.Sqs.Commands.Queue.ListQueuesResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.Queue.ListQueuesResponse

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 GHC.Show.Show Aws.Sqs.Commands.QueueAttributes.SetQueueAttributesResponse
instance GHC.Show.Show Aws.Sqs.Commands.QueueAttributes.SetQueueAttributes
instance GHC.Show.Show Aws.Sqs.Commands.QueueAttributes.GetQueueAttributesResponse
instance GHC.Show.Show Aws.Sqs.Commands.QueueAttributes.GetQueueAttributes
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.QueueAttributes.GetQueueAttributesResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.QueueAttributes.GetQueueAttributes
instance Aws.Core.Transaction Aws.Sqs.Commands.QueueAttributes.GetQueueAttributes Aws.Sqs.Commands.QueueAttributes.GetQueueAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.QueueAttributes.GetQueueAttributesResponse
instance Aws.Core.ResponseConsumer r Aws.Sqs.Commands.QueueAttributes.SetQueueAttributesResponse
instance Aws.Core.SignQuery Aws.Sqs.Commands.QueueAttributes.SetQueueAttributes
instance Aws.Core.Transaction Aws.Sqs.Commands.QueueAttributes.SetQueueAttributes Aws.Sqs.Commands.QueueAttributes.SetQueueAttributesResponse
instance Aws.Core.AsMemoryResponse Aws.Sqs.Commands.QueueAttributes.SetQueueAttributesResponse

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 GHC.Classes.Ord Aws.Aws.LogLevel
instance GHC.Classes.Eq Aws.Aws.LogLevel
instance GHC.Show.Show Aws.Aws.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 -> Bool -> 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

-- | Note: Requires http-client &gt;= 0.4.10
[upExpect100Continue] :: UploadPart -> Bool
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 ()
multipartUploadSink :: MonadResource m => Configuration -> S3Configuration NormalQuery -> Manager -> Text -> Text -> Integer -> Sink ByteString m ()
multipartUploadWithInitiator :: Configuration -> S3Configuration NormalQuery -> (Bucket -> Text -> InitiateMultipartUpload) -> Manager -> Text -> Text -> Conduit () (ResourceT IO) ByteString -> Integer -> ResourceT IO ()
multipartUploadSinkWithInitiator :: MonadResource m => Configuration -> S3Configuration NormalQuery -> (Bucket -> Text -> InitiateMultipartUpload) -> Manager -> Text -> Text -> Integer -> Sink ByteString m ()
instance GHC.Show.Show Aws.S3.Commands.Multipart.AbortMultipartUpload
instance GHC.Show.Show Aws.S3.Commands.Multipart.CompleteMultipartUpload
instance GHC.Show.Show Aws.S3.Commands.Multipart.UploadPartResponse
instance GHC.Show.Show Aws.S3.Commands.Multipart.InitiateMultipartUpload
instance Aws.Core.SignQuery Aws.S3.Commands.Multipart.InitiateMultipartUpload
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.Multipart.InitiateMultipartUploadResponse
instance Aws.Core.Transaction Aws.S3.Commands.Multipart.InitiateMultipartUpload Aws.S3.Commands.Multipart.InitiateMultipartUploadResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.Multipart.InitiateMultipartUploadResponse
instance Aws.Core.SignQuery Aws.S3.Commands.Multipart.UploadPart
instance Aws.Core.ResponseConsumer Aws.S3.Commands.Multipart.UploadPart Aws.S3.Commands.Multipart.UploadPartResponse
instance Aws.Core.Transaction Aws.S3.Commands.Multipart.UploadPart Aws.S3.Commands.Multipart.UploadPartResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.Multipart.UploadPartResponse
instance Aws.Core.SignQuery Aws.S3.Commands.Multipart.CompleteMultipartUpload
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.Multipart.CompleteMultipartUploadResponse
instance Aws.Core.Transaction Aws.S3.Commands.Multipart.CompleteMultipartUpload Aws.S3.Commands.Multipart.CompleteMultipartUploadResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.Multipart.CompleteMultipartUploadResponse
instance Aws.Core.SignQuery Aws.S3.Commands.Multipart.AbortMultipartUpload
instance Aws.Core.ResponseConsumer r Aws.S3.Commands.Multipart.AbortMultipartUploadResponse
instance Aws.Core.Transaction Aws.S3.Commands.Multipart.AbortMultipartUpload Aws.S3.Commands.Multipart.AbortMultipartUploadResponse
instance Aws.Core.AsMemoryResponse Aws.S3.Commands.Multipart.AbortMultipartUploadResponse

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

-- | Default service configuration.
defServiceConfig :: DefaultServiceConfiguration config => config

-- | Default debugging-only configuration. (Normally using HTTP instead of
--   HTTPS for easier debugging.)
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>. May return <a>Nothing</a> if
--   <tt>HOME</tt> is unset.
--   
--   Value: <i><a>directory</a></i><tt>/.aws-keys</tt>
credentialsDefaultFile :: MonadIO io => io (Maybe 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)
