Safe Haskell | None |
---|---|
Language | Haskell2010 |
Serialisation classes and primitives for the various formats used to communicate with AWS.
- type LazyByteString = ByteString
- class ToByteString a where
- toBS :: a -> ByteString
- class ToBuilder a where
- showBS :: ToByteString a => a -> String
- buildBS :: ToBuilder a => a -> LazyByteString
- stripBS :: ByteString -> ByteString
- data Base64
- class FromText a where
- parser :: Parser a
- fromText :: FromText a => Text -> Either String a
- takeLowerText :: Parser Text
- matchCI :: Text -> a -> Parser a
- class ToText a where
- showText :: ToText a => a -> String
- newtype Nat = Nat {}
- _Nat :: Iso' Nat Natural
- data Format
- data Time :: Format -> * where
- _Time :: Iso' (Time a) UTCTime
- data UTCTime :: *
- type RFC822 = Time RFC822Format
- type ISO8601 = Time ISO8601Format
- type BasicTime = Time BasicFormat
- type AWSTime = Time AWSFormat
- type POSIX = Time POSIXFormat
- parseTime :: ParseTime t => TimeLocale -> String -> String -> Maybe t
- defaultTimeLocale :: TimeLocale
- iso8601DateFormat :: Maybe String -> String
- newtype Sensitive a = Sensitive {
- desensitise :: a
- _Sensitive :: Iso' (Sensitive a) a
- data RsBody = RsBody (ResumableSource (ResourceT IO) ByteString)
- _RsBody :: Iso' RsBody (ResumableSource (ResourceT IO) ByteString)
- connectBody :: MonadResource m => RsBody -> Sink ByteString m a -> m a
- data RqBody = RqBody {
- _bdyHash :: Digest SHA256
- _bdyBody :: RequestBody
- bdyHash :: Lens' RqBody (Digest SHA256)
- bdyBody :: Lens' RqBody RequestBody
- bodyHash :: RqBody -> ByteString
- isStreaming :: RqBody -> Bool
- class ToBody a where
- (~:) :: FromText a => ResponseHeaders -> HeaderName -> Either String a
- (~:?) :: FromText a => ResponseHeaders -> HeaderName -> Either String (Maybe a)
- class ToHeaders a where
- toHeaders :: a -> [Header]
- (=:) :: ToHeader a => HeaderName -> a -> [Header]
- hdr :: HeaderName -> ByteString -> [Header] -> [Header]
- hdrs :: [Header] -> [Header] -> [Header]
- toHeaderText :: ToText a => HeaderName -> a -> [Header]
- class ToHeader a where
- toHeader :: HeaderName -> a -> [Header]
- hHost :: HeaderName
- hAMZToken :: HeaderName
- hAMZTarget :: HeaderName
- hAMZAlgorithm :: HeaderName
- hAMZCredential :: HeaderName
- hAMZExpires :: HeaderName
- hAMZSignedHeaders :: HeaderName
- hAMZContentSHA256 :: HeaderName
- hAMZAuth :: HeaderName
- hAMZDate :: HeaderName
- hMetaPrefix :: HeaderName
- class ToPath a where
- class ToQuery a where
- renderQuery :: Query -> ByteString
- data Query
- valuesOf :: Traversal' Query (Maybe ByteString)
- (=?) :: ToQuery a => ByteString -> a -> Query
- pair :: ToQuery a => ByteString -> a -> Query -> Query
- toQueryList :: (IsList a, ToQuery (Item a)) => ByteString -> a -> Query
- collapsePath :: ByteString -> ByteString
- class FromXML a where
- decodeXML :: LazyByteString -> Either String [Node]
- parseXMLText :: FromText a => String -> [Node] -> Either String a
- childNodes :: Text -> Node -> Maybe [Node]
- findElement :: Text -> [Node] -> Either String [Node]
- withContent :: String -> [Node] -> Either String (Maybe Text)
- withElement :: Text -> ([Node] -> Either String a) -> [Node] -> Either String a
- localName :: Node -> Maybe Text
- (.@) :: FromXML a => [Node] -> Text -> Either String a
- (.@?) :: FromXML a => [Node] -> Text -> Either String (Maybe a)
- (.!@) :: Either String (Maybe a) -> a -> Either String a
- class ToXML a where
- toXML :: a -> [Node]
- class ToXMLRoot a where
- encodeXML :: ToXMLRoot a => a -> LazyByteString
- toXMLText :: ToText a => a -> [Node]
- namespaced :: Text -> Text -> [Node] -> Maybe Element
- element :: Name -> [Node] -> Element
- nodes :: Name -> [Node] -> [Node]
- (=@) :: ToXML a => Name -> a -> Node
- extractRoot :: Text -> [Node] -> Maybe Element
- unsafeToXML :: (Show a, ToXML a) => a -> Node
- class FromJSON a where
- parseJSON :: Value -> Parser a
- parseJSONText :: FromText a => String -> Value -> Parser a
- eitherDecode' :: FromJSON a => ByteString -> Either String a
- withObject :: String -> (Object -> Parser a) -> Value -> Parser a
- (.:) :: FromJSON a => Object -> Text -> Parser a
- (.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a)
- (.!=) :: Parser (Maybe a) -> a -> Parser a
- (.:>) :: FromJSON a => Object -> Text -> Either String a
- (.:?>) :: FromJSON a => Object -> Text -> Either String (Maybe a)
- class ToJSON a where
- toJSON :: a -> Value
- toJSONText :: ToText a => a -> Value
- object :: [Pair] -> Value
- (.=) :: ToJSON a => Text -> a -> Pair
- newtype List e a = List {
- list :: [a]
- newtype List1 e a = List1 {}
- _List :: (Coercible a b, Coercible b a) => Iso' (List e a) [b]
- _List1 :: (Coercible a b, Coercible b a) => Iso' (List1 e a) (NonEmpty b)
- fromList1 :: List1 e a -> List e a
- toList1 :: List e a -> Either String (List1 e a)
- newtype Map k v = Map {}
- _Map :: (Coercible a b, Coercible b a) => Iso' (Map k a) (HashMap k b)
- (~::) :: ResponseHeaders -> CI Text -> Either String (Map (CI Text) Text)
- newtype EMap e i j k v = EMap {}
- _EMap :: (Coercible a b, Coercible b a) => Iso' (EMap e i j k a) (HashMap k b)
ByteString
type LazyByteString = ByteString Source
class ToByteString a where Source
Nothing
toBS :: a -> ByteString Source
class ToBuilder a where Source
Nothing
ToBuilder Bool | |
ToBuilder Char | |
ToBuilder Double | |
ToBuilder Int | |
ToBuilder Int64 | |
ToBuilder Integer | |
ToBuilder Builder | |
ToBuilder ByteString | |
ToBuilder UTCTime | |
ToBuilder Text | |
ToBuilder RequestBody | |
ToBuilder Request | |
ToBuilder HttpVersion | |
ToBuilder StdMethod | |
ToBuilder Natural | |
ToBuilder LazyByteString | |
ToBuilder RsBody | |
ToBuilder RqBody | |
ToBuilder Query | |
ToBuilder Region | |
ToBuilder Auth | |
ToBuilder AuthEnv | |
ToBuilder AccessKey | |
ToBuilder Accept | |
ToBuilder [Char] | |
ToBuilder [Header] | |
ToBuilder a => ToBuilder (Maybe a) | |
ToBuilder (Digest a) | |
ToBuilder a => ToBuilder (CI a) | |
ToBuilder (Response a) | |
ToBuilder (Request a) | |
ToBuilder (Meta V2) | |
ToBuilder (Meta V4) |
showBS :: ToByteString a => a -> String Source
buildBS :: ToBuilder a => a -> LazyByteString Source
stripBS :: ByteString -> ByteString Source
Base64 encoded binary data.
Text
takeLowerText :: Parser Text Source
ToText Bool | |
ToText Double | |
ToText Int | |
ToText Int64 | |
ToText Integer | |
ToText ByteString | |
ToText Text | |
ToText Scientific | |
ToText StdMethod | |
ToText Natural | |
ToText Query | |
ToText Base64 | |
ToText Nat | |
ToText POSIX | |
ToText AWSTime | |
ToText BasicTime | |
ToText ISO8601 | |
ToText RFC822 | |
ToText Action | |
ToText Region | |
ToText SecurityToken | |
ToText SecretKey | |
ToText AccessKey | |
ToText a => ToText [a] | |
ToText (Digest a) | |
ToText a => ToText (CI a) | |
ToText (Response a) | |
ToText a => ToText (Sensitive a) | |
(ToText a, ToText b) => ToText (a, b) |
Numeric
Time
data Time :: Format -> * where Source
data UTCTime :: *
This is the simplest representation of UTC. It consists of the day number, and a time offset from midnight. Note that if a day has a leap second added to it, it will have 86401 seconds.
type RFC822 = Time RFC822Format Source
type ISO8601 = Time ISO8601Format Source
type BasicTime = Time BasicFormat Source
type POSIX = Time POSIXFormat Source
:: ParseTime t | |
=> TimeLocale | Time locale. |
-> String | Format string. |
-> String | Input string. |
-> Maybe t | The time value, or |
Parses a time value given a format string.
Supports the same %-codes as formatTime
, including %-
, %_
and %0
modifiers.
Leading and trailing whitespace is accepted. Case is not significant.
Some variations in the input are accepted:
%z
- accepts any of
-HHMM
or-HH:MM
. %Z
- accepts any string of letters, or any of the formats accepted by
%z
. %0Y
- accepts exactly four digits.
%0G
- accepts exactly four digits.
%0C
- accepts exactly two digits.
%0f
- accepts exactly two digits.
iso8601DateFormat :: Maybe String -> String
Construct format string according to ISO-8601.
The Maybe String
argument allows to supply an optional time specification. E.g.:
iso8601DateFormat
Nothing == "%Y-%m-%d" -- i.e.YYYY-MM-DD
iso8601DateFormat
(Just "%H:%M:%S") == "%Y-%m-%dT%H:%M:%S" -- i.e.YYYY-MM-DDTHH:MM:SS
Sensitive
read . show /= isomorphic
Sensitive | |
|
Eq a => Eq (Sensitive a) | |
Ord a => Ord (Sensitive a) | |
Read a => Read (Sensitive a) | |
Show (Sensitive a) | |
IsString a => IsString (Sensitive a) | |
Monoid a => Monoid (Sensitive a) | |
ToText a => ToText (Sensitive a) | |
FromText a => FromText (Sensitive a) | |
ToJSON a => ToJSON (Sensitive a) | |
FromJSON a => FromJSON (Sensitive a) | |
ToByteString a => ToByteString (Sensitive a) | |
ToQuery a => ToQuery (Sensitive a) | |
ToXML a => ToXML (Sensitive a) | |
FromXML a => FromXML (Sensitive a) |
_Sensitive :: Iso' (Sensitive a) a Source
HTTP
Body
_RsBody :: Iso' RsBody (ResumableSource (ResourceT IO) ByteString) Source
connectBody :: MonadResource m => RsBody -> Sink ByteString m a -> m a Source
RqBody | |
|
bdyBody :: Lens' RqBody RequestBody Source
bodyHash :: RqBody -> ByteString Source
isStreaming :: RqBody -> Bool Source
Nothing
Headers
hdr :: HeaderName -> ByteString -> [Header] -> [Header] Source
toHeaderText :: ToText a => HeaderName -> a -> [Header] Source
Nothing
ToHeader ByteString | |
ToHeader Text | |
ToByteString a => ToHeader (Maybe a) | |
(ToByteString k, ToByteString v) => ToHeader (HashMap k v) | |
ToHeader (Map (CI Text) Text) |
hAMZTarget :: HeaderName Source
hAMZAlgorithm :: HeaderName Source
hAMZCredential :: HeaderName Source
hAMZExpires :: HeaderName Source
hAMZSignedHeaders :: HeaderName Source
hAMZContentSHA256 :: HeaderName Source
hMetaPrefix :: HeaderName Source
Path
Query
Nothing
ToQuery Bool | |
ToQuery Char | |
ToQuery Double | |
ToQuery Int | |
ToQuery Integer | |
ToQuery ByteString | |
ToQuery Text | |
ToQuery Natural | |
ToQuery Query | |
ToQuery Base64 | |
ToQuery Nat | |
ToQuery AWSTime | |
ToQuery BasicTime | |
ToQuery ISO8601 | |
ToQuery RFC822 | |
ToQuery a => ToQuery [a] | |
ToQuery a => ToQuery (Maybe a) | |
ToQuery a => ToQuery (Sensitive a) | |
(ToByteString k, ToQuery v) => ToQuery (k, v) | |
(KnownSymbol e, ToQuery a) => ToQuery (List1 e a) | |
(KnownSymbol e, ToQuery a) => ToQuery (List e a) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, ToQuery k, ToQuery v) => ToQuery (EMap e i j k v) |
renderQuery :: Query -> ByteString Source
valuesOf :: Traversal' Query (Maybe ByteString) Source
(=?) :: ToQuery a => ByteString -> a -> Query Source
toQueryList :: (IsList a, ToQuery (Item a)) => ByteString -> a -> Query Source
URI
XML
FromXML
FromXML Bool | |
FromXML Double | |
FromXML Int | |
FromXML Integer | |
FromXML Text | |
FromXML Natural | |
FromXML Base64 | |
FromXML Nat | |
FromXML POSIX | |
FromXML AWSTime | |
FromXML BasicTime | |
FromXML ISO8601 | |
FromXML RFC822 | |
FromXML Region | |
FromXML RESTError | |
FromXML ErrorType | |
FromXML ErrorCode | |
FromXML a => FromXML (Maybe a) | |
FromXML a => FromXML (Sensitive a) | |
(KnownSymbol e, FromXML a) => FromXML (List1 e a) | |
(KnownSymbol e, FromXML a) => FromXML (List e a) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, FromXML k, FromXML v) => FromXML (EMap e i j k v) |
decodeXML :: LazyByteString -> Either String [Node] Source
childNodes :: Text -> Node -> Maybe [Node] Source
findElement :: Text -> [Node] -> Either String [Node] Source
ToXML
Nothing
ToXML Bool | |
ToXML Double | |
ToXML Int | |
ToXML Integer | |
ToXML Text | |
ToXML Natural | |
ToXML Base64 | |
ToXML Nat | |
ToXML POSIX | |
ToXML AWSTime | |
ToXML BasicTime | |
ToXML ISO8601 | |
ToXML RFC822 | |
ToXML Region | |
ToXML a => ToXML (Maybe a) | |
ToXML a => ToXML (Sensitive a) | |
(KnownSymbol e, ToXML a) => ToXML (List1 e a) | |
(KnownSymbol e, ToXML a) => ToXML (List e a) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, ToXML k, ToXML v) => ToXML (EMap e i j k v) |
encodeXML :: ToXMLRoot a => a -> LazyByteString Source
namespaced :: Text -> Text -> [Node] -> Maybe Element Source
extractRoot :: Text -> [Node] -> Maybe Element Source
unsafeToXML :: (Show a, ToXML a) => a -> Node Source
Caution: This is for use with types which are flattened
in
AWS service model terminology.
It is applied by the generator/templating in safe contexts only.
JSON
FromJSON
class FromJSON a where
Nothing
parseJSON :: Value -> Parser a
parseJSONText :: FromText a => String -> Value -> Parser a Source
eitherDecode' :: FromJSON a => ByteString -> Either String a
Parser a
withObject :: String -> (Object -> Parser a) -> Value -> Parser a
Either String a
ToJSON
class ToJSON a where
Nothing
toJSON :: a -> Value
toJSONText :: ToText a => a -> Value Source
object :: [Pair] -> Value
Collections
IsList (List e a) | |
Eq a => Eq (List e a) | |
Ord a => Ord (List e a) | |
Read a => Read (List e a) | |
Show a => Show (List e a) | |
Monoid (List e a) | |
ToJSON a => ToJSON (List e a) | |
FromJSON a => FromJSON (List e a) | |
Semigroup (List e a) | |
(KnownSymbol e, ToQuery a) => ToQuery (List e a) | |
(KnownSymbol e, ToXML a) => ToXML (List e a) | |
(KnownSymbol e, FromXML a) => FromXML (List e a) | |
type Item (List e a) = a |
Functor (List1 e) | |
Foldable (List1 e) | |
Traversable (List1 e) | |
Eq a => Eq (List1 e a) | |
Ord a => Ord (List1 e a) | |
Read a => Read (List1 e a) | |
Show a => Show (List1 e a) | |
ToJSON a => ToJSON (List1 e a) | |
FromJSON a => FromJSON (List1 e a) | |
Semigroup (List1 e a) | |
(KnownSymbol e, ToQuery a) => ToQuery (List1 e a) | |
(KnownSymbol e, ToXML a) => ToXML (List1 e a) | |
(KnownSymbol e, FromXML a) => FromXML (List1 e a) |
(Eq k, Hashable k) => IsList (Map k v) | |
(Eq k, Eq v) => Eq (Map k v) | |
(Eq k, Read k, Read v, Hashable k) => Read (Map k v) | |
(Show k, Show v) => Show (Map k v) | |
(Eq k, Hashable k) => Monoid (Map k v) | |
(Eq k, Hashable k, ToText k, ToJSON v) => ToJSON (Map k v) | |
(Eq k, Hashable k, FromText k, FromJSON v) => FromJSON (Map k v) | |
(Eq k, Hashable k) => Semigroup (Map k v) | |
ToHeader (Map (CI Text) Text) | |
type Item (Map k v) = (k, v) |
(Eq k, Hashable k) => IsList (EMap e i j k v) | |
(Eq k, Eq v) => Eq (EMap e i j k v) | |
(Eq k, Read k, Read v, Hashable k) => Read (EMap e i j k v) | |
(Show k, Show v) => Show (EMap e i j k v) | |
(Eq k, Hashable k) => Monoid (EMap e i j k v) | |
(Eq k, Hashable k) => Semigroup (EMap e i j k v) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, ToQuery k, ToQuery v) => ToQuery (EMap e i j k v) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, ToXML k, ToXML v) => ToXML (EMap e i j k v) | |
(KnownSymbol e, KnownSymbol i, KnownSymbol j, Eq k, Hashable k, FromXML k, FromXML v) => FromXML (EMap e i j k v) | |
type Item (EMap e i j k v) = (k, v) |