packages feed

amazonka-core 1.4.1 → 1.4.2

raw patch · 4 files changed

+47/−38 lines, 4 filesdep ~timePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: time

API changes (from Hackage documentation)

- Network.AWS.Data.Base64: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Base64.Base64
- Network.AWS.Data.Base64: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Base64.Base64
- Network.AWS.Data.Base64: instance GHC.Generics.Constructor Network.AWS.Data.Base64.C1_0Base64
- Network.AWS.Data.Base64: instance GHC.Generics.Datatype Network.AWS.Data.Base64.D1Base64
- Network.AWS.Data.Base64: instance GHC.Generics.Selector Network.AWS.Data.Base64.S1_0_0Base64
- Network.AWS.Data.List1: instance Data.Aeson.Types.Class.FromJSON a => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.List1.List1 a)
- Network.AWS.Data.List1: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.List1.List1 a)
- Network.AWS.Data.List1: instance GHC.Generics.Constructor Network.AWS.Data.List1.C1_0List1
- Network.AWS.Data.List1: instance GHC.Generics.Datatype Network.AWS.Data.List1.D1List1
- Network.AWS.Data.List1: instance GHC.Generics.Selector Network.AWS.Data.List1.S1_0_0List1
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Data.Data k, Data.Data.Data v, Data.Hashable.Class.Hashable k) => Data.Data.Data (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => Data.Semigroup.Semigroup (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) => GHC.Base.Monoid (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.FromText k, Data.Aeson.Types.Class.FromJSON v) => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.ToText k, Data.Aeson.Types.Class.ToJSON v) => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, GHC.Classes.Eq v) => GHC.Classes.Eq (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Classes.Eq k, GHC.Read.Read k, GHC.Read.Read v, Data.Hashable.Class.Hashable k) => GHC.Read.Read (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance (GHC.Show.Show k, GHC.Show.Show v) => GHC.Show.Show (Network.AWS.Data.Map.Map k v)
- Network.AWS.Data.Map: instance GHC.Generics.Constructor Network.AWS.Data.Map.C1_0Map
- Network.AWS.Data.Map: instance GHC.Generics.Datatype Network.AWS.Data.Map.D1Map
- Network.AWS.Data.Map: instance GHC.Generics.Selector Network.AWS.Data.Map.S1_0_0Map
- Network.AWS.Data.Numeric: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Numeric.Nat
- Network.AWS.Data.Numeric: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Numeric.Nat
- Network.AWS.Data.Numeric: instance GHC.Generics.Constructor Network.AWS.Data.Numeric.C1_0Nat
- Network.AWS.Data.Numeric: instance GHC.Generics.Datatype Network.AWS.Data.Numeric.D1Nat
- Network.AWS.Data.Numeric: instance GHC.Generics.Selector Network.AWS.Data.Numeric.S1_0_0Nat
- Network.AWS.Data.Sensitive: instance Data.Aeson.Types.Class.FromJSON a => Data.Aeson.Types.Class.FromJSON (Network.AWS.Data.Sensitive.Sensitive a)
- Network.AWS.Data.Sensitive: instance Data.Aeson.Types.Class.ToJSON a => Data.Aeson.Types.Class.ToJSON (Network.AWS.Data.Sensitive.Sensitive a)
- Network.AWS.Data.Sensitive: instance GHC.Generics.Constructor Network.AWS.Data.Sensitive.C1_0Sensitive
- Network.AWS.Data.Sensitive: instance GHC.Generics.Datatype Network.AWS.Data.Sensitive.D1Sensitive
- Network.AWS.Data.Sensitive: instance GHC.Generics.Selector Network.AWS.Data.Sensitive.S1_0_0Sensitive
- Network.AWS.Data.Time: Time :: UTCTime -> Time a
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.AWSTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.BasicTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.ISO8601
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.POSIX
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Data.Time.RFC822
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.AWSTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.BasicTime
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.ISO8601
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.POSIX
- Network.AWS.Data.Time: instance Data.Aeson.Types.Class.ToJSON Network.AWS.Data.Time.RFC822
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_0Format
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_0Time
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_1Format
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_2Format
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_3Format
- Network.AWS.Data.Time: instance GHC.Generics.Constructor Network.AWS.Data.Time.C1_4Format
- Network.AWS.Data.Time: instance GHC.Generics.Datatype Network.AWS.Data.Time.D1Format
- Network.AWS.Data.Time: instance GHC.Generics.Datatype Network.AWS.Data.Time.D1Time
- Network.AWS.Response: receive :: MonadResource m => (Int -> ResponseHeaders -> ResponseBody -> m (Either String (Rs a))) -> Service -> Proxy a -> ClientResponse -> m (Response a)
- Network.AWS.Types: Meta :: a -> Meta
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.Abbrev
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.AuthEnv
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.ErrorCode
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.ErrorMessage
- Network.AWS.Types: instance Data.Aeson.Types.Class.FromJSON Network.AWS.Types.RequestId
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_0Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_0Seconds
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_10Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_11Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_1Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_2Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_3Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_4Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_5Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_6Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_7Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_8Region
- Network.AWS.Types: instance GHC.Generics.Constructor Network.AWS.Types.C1_9Region
- Network.AWS.Types: instance GHC.Generics.Datatype Network.AWS.Types.D1Region
- Network.AWS.Types: instance GHC.Generics.Datatype Network.AWS.Types.D1Seconds
+ Network.AWS.Data.Base64: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Base64.Base64
+ Network.AWS.Data.Base64: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Base64.Base64
+ Network.AWS.Data.Headers: infixl 7 .#?
+ Network.AWS.Data.Headers: infixr 7 =#
+ Network.AWS.Data.JSON: parseJSONList :: FromJSON a => Value -> Parser [a]
+ Network.AWS.Data.JSON: toEncodingList :: ToJSON a => [a] -> Encoding
+ Network.AWS.Data.JSON: toJSONList :: ToJSON a => [a] -> Value
+ Network.AWS.Data.List1: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.List1.List1 a)
+ Network.AWS.Data.List1: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.List1.List1 a)
+ Network.AWS.Data.Map: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Semigroup.Semigroup (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => GHC.Base.Monoid (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k, Data.Data.Data v, Data.Data.Data k) => Data.Data.Data (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.FromText k, Data.Aeson.Types.FromJSON.FromJSON v) => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Network.AWS.Data.Text.ToText k, Data.Aeson.Types.ToJSON.ToJSON v) => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Classes.Eq v, GHC.Classes.Eq k) => GHC.Classes.Eq (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Read.Read v, GHC.Read.Read k, Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => GHC.Read.Read (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Map: instance (GHC.Show.Show v, GHC.Show.Show k) => GHC.Show.Show (Network.AWS.Data.Map.Map k v)
+ Network.AWS.Data.Numeric: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Numeric.Nat
+ Network.AWS.Data.Numeric: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Numeric.Nat
+ Network.AWS.Data.Query: infixr 7 =:
+ Network.AWS.Data.Sensitive: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Network.AWS.Data.Sensitive.Sensitive a)
+ Network.AWS.Data.Sensitive: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Network.AWS.Data.Sensitive.Sensitive a)
+ Network.AWS.Data.Time: [Time] :: UTCTime -> Time a
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.AWSTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.BasicTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.ISO8601
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.POSIX
+ Network.AWS.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Data.Time.RFC822
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.AWSTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.BasicTime
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.ISO8601
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.POSIX
+ Network.AWS.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Data.Time.RFC822
+ Network.AWS.Data.XML: infixl 7 .@?
+ Network.AWS.Data.XML: infixr 7 @=
+ Network.AWS.Prelude: infixl 7 .!@
+ Network.AWS.Response: stream :: MonadResource m => (Int -> ResponseHeaders -> ResponseBody -> m (Either String (Rs a))) -> Service -> Proxy a -> ClientResponse -> m (Response a)
+ Network.AWS.Types: [Meta] :: ToLog a => a -> Meta
+ Network.AWS.Types: [_serializeBody] :: SerializeError -> Maybe LazyByteString
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.Abbrev
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.AuthEnv
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.ErrorCode
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.ErrorMessage
+ Network.AWS.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.AWS.Types.RequestId
+ Network.AWS.Types: type family Rs a :: *;
+ Network.AWS.Types: }
- Network.AWS.Data.Body: toBody :: ToBody a => a -> RqBody
+ Network.AWS.Data.Body: toBody :: (ToBody a, ToHashedBody a) => a -> RqBody
- Network.AWS.Data.ByteString: toBS :: ToByteString a => a -> ByteString
+ Network.AWS.Data.ByteString: toBS :: (ToByteString a, ToText a) => a -> ByteString
- Network.AWS.Data.Headers: toHeader :: ToHeader a => HeaderName -> a -> [Header]
+ Network.AWS.Data.Headers: toHeader :: (ToHeader a, ToText a) => HeaderName -> a -> [Header]
- Network.AWS.Data.JSON: Object :: SrictNotUnpackedObject -> Value
+ Network.AWS.Data.JSON: Object :: ~Object -> Value
- Network.AWS.Data.Query: toQuery :: ToQuery a => a -> QueryString
+ Network.AWS.Data.Query: toQuery :: (ToQuery a, ToText a) => a -> QueryString
- Network.AWS.Types: SerializeError' :: !Abbrev -> !Status -> String -> SerializeError
+ Network.AWS.Types: SerializeError' :: !Abbrev -> !Status -> Maybe LazyByteString -> String -> SerializeError
- Network.AWS.Types: Service :: !Abbrev -> !Signer -> !ByteString -> !ByteString -> !(Region -> Endpoint) -> !(Maybe Seconds) -> !(Status -> Bool) -> !(Abbrev -> Status -> [Header] -> LazyByteString -> Error) -> !Retry -> Service
+ Network.AWS.Types: Service :: !Abbrev -> !Signer -> !ByteString -> !ByteString -> !(Region -> Endpoint) -> !(Maybe Seconds) -> !(Status -> Bool) -> !(Status -> [Header] -> LazyByteString -> Error) -> !Retry -> Service
- Network.AWS.Types: [_svcError] :: Service -> !(Abbrev -> Status -> [Header] -> LazyByteString -> Error)
+ Network.AWS.Types: [_svcError] :: Service -> !(Status -> [Header] -> LazyByteString -> Error)
- Network.AWS.Types: class AWSRequest a where type family Rs a :: *
+ Network.AWS.Types: class AWSRequest a where type Rs a :: * where {

Files

amazonka-core.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-core-version:               1.4.1+version:               1.4.2 synopsis:              Core data types and functionality for Amazonka libraries. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues@@ -109,7 +109,7 @@             , time       >= 1.2 && < 1.5     else         build-depends:-              time       >= 1.5 && < 1.6+              time       >= 1.5  test-suite tests     type:              exitcode-stdio-1.0
src/Network/AWS/Error.hs view
@@ -40,8 +40,8 @@             -> TransportError <$> (StatusCodeException <$> g s <*> pure h <*> pure c)         TransportError e             -> pure (TransportError e)-        SerializeError (SerializeError' a s e)-            -> g s <&> \x -> SerializeError (SerializeError' a x e)+        SerializeError (SerializeError' a s b e)+            -> g s <&> \x -> SerializeError (SerializeError' a x b e)         ServiceError e             -> g (_serviceStatus e) <&> \x -> ServiceError (e { _serviceStatus = x }) @@ -132,6 +132,6 @@ decodeError a s h bs e     | LBS.null bs = parseRESTError a s h bs     | otherwise   =-        either (SerializeError . SerializeError' a s)+        either (SerializeError . SerializeError' a s (Just bs))                ServiceError                e
src/Network/AWS/Response.hs view
@@ -14,6 +14,7 @@ -- module Network.AWS.Response where +import           Control.Applicative          (pure) import           Control.Monad.Catch import           Control.Monad.IO.Class import           Control.Monad.Trans.Resource@@ -39,8 +40,8 @@             -> Proxy a             -> ClientResponse             -> m (Response a)-receiveNull rs _ = receive $ \_ _ x ->-    liftResourceT (x $$+- return (Right rs))+receiveNull rs _ = stream $ \_ _ x ->+    liftResourceT (x $$+- pure (Right rs))  receiveEmpty :: MonadResource m              => (Int -> ResponseHeaders -> () -> Either String (Rs a))@@ -49,8 +50,8 @@              -> Proxy a              -> ClientResponse              -> m (Response a)-receiveEmpty f _ = receive $ \s h x ->-    liftResourceT (x $$+- return (f s h ()))+receiveEmpty f _ = stream $ \s h x ->+    liftResourceT (x $$+- pure (f s h ()))  receiveXMLWrapper :: MonadResource m                   => Text@@ -87,8 +88,9 @@             -> Proxy a             -> ClientResponse             -> m (Response a)-receiveBody f _ = receive $ \s h x -> return (f s h (RsBody x))+receiveBody f _ = stream $ \s h x -> pure (f s h (RsBody x)) +-- | Deserialise an entire response body, such as an XML or JSON payload. deserialise :: MonadResource m             => (LazyByteString -> Either String b)             -> (Int -> ResponseHeaders -> b -> Either String (Rs a))@@ -97,34 +99,38 @@             -> Proxy a             -> ClientResponse             -> m (Response a)-deserialise g f l = receive $ \s h x -> do-    lbs <- sinkLBS x-    liftIO . l Debug . build $ "[Raw Response Body] {\n" <> lbs <> "\n}"-    return $! g lbs >>= f s h--receive :: MonadResource m-        => (Int -> ResponseHeaders -> ResponseBody -> m (Either String (Rs a)))-        -> Service-        -> Proxy a-        -> ClientResponse-        -> m (Response a)-receive f Service{..} _ rs-    | not (_svcCheck s) = sinkLBS x >>= serviceErr-    | otherwise          = do-        p <- f (fromEnum s) h x-        either serializeErr-               (return . (s,))-               p-  where-    s = responseStatus  rs-    h = responseHeaders rs-    x = responseBody    rs--    serviceErr :: MonadThrow m => LazyByteString -> m a-    serviceErr = throwM . _svcError _svcAbbrev s h+deserialise g f l Service{..} _ rs = do+    let s = responseStatus  rs+        h = responseHeaders rs+        x = responseBody    rs+    b <- sinkLBS x+    if not (_svcCheck s)+        then throwM (_svcError s h b)+        else do+            liftIO . l Debug . build $ "[Raw Response Body] {\n" <> b <> "\n}"+            case g b >>= f (fromEnum s) h of+                Right r -> pure (s, r)+                Left  e -> throwM . SerializeError $+                    SerializeError' _svcAbbrev s (Just b) e -    serializeErr :: MonadThrow m => String -> m a-    serializeErr e = throwM (SerializeError (SerializeError' _svcAbbrev s e))+-- | Stream a raw response body, such as an S3 object payload.+stream :: MonadResource m+       => (Int -> ResponseHeaders -> ResponseBody -> m (Either String (Rs a)))+       -> Service+       -> Proxy a+       -> ClientResponse+       -> m (Response a)+stream f Service{..} _ rs = do+    let s = responseStatus  rs+        h = responseHeaders rs+        x = responseBody    rs+    if not (_svcCheck s)+        then sinkLBS x >>= throwM . _svcError s h+        else do+            e <- f (fromEnum s) h x+            either (throwM . SerializeError . SerializeError' _svcAbbrev s Nothing)+                   (pure . (s,))+                   e  sinkLBS :: MonadResource m => ResponseBody -> m LazyByteString sinkLBS bdy = liftResourceT (bdy $$+- Conduit.sinkLbs)
src/Network/AWS/Types.hs view
@@ -223,6 +223,8 @@ data SerializeError = SerializeError'     { _serializeAbbrev  :: !Abbrev     , _serializeStatus  :: !Status+    , _serializeBody    :: Maybe LazyByteString+      -- ^ The response body, if the response was not streaming.     , _serializeMessage :: String     } deriving (Eq, Show, Typeable) @@ -232,6 +234,7 @@         , "  service = " <> build _serializeAbbrev         , "  status  = " <> build _serializeStatus         , "  message = " <> build _serializeMessage+        , "  body    = " <> build _serializeBody         , "}"         ] @@ -418,7 +421,7 @@     , _svcEndpoint :: !(Region -> Endpoint)     , _svcTimeout  :: !(Maybe Seconds)     , _svcCheck    :: !(Status -> Bool)-    , _svcError    :: !(Abbrev -> Status -> [Header] -> LazyByteString -> Error)+    , _svcError    :: !(Status -> [Header] -> LazyByteString -> Error)     , _svcRetry    :: !Retry     }