packages feed

gogol-core 0.5.0 → 1.0.0.0

raw patch · 14 files changed

+1062/−1127 lines, 14 filesdep +base64dep −bifunctorsdep −natsdep −old-localedep ~aesondep ~attoparsecdep ~basesetup-changedPVP ok

version bump matches the API change (PVP)

Dependencies added: base64

Dependencies removed: bifunctors, nats, old-locale

Dependency ranges changed: aeson, attoparsec, base, bytestring, case-insensitive, conduit, dlist, exceptions, hashable, http-api-data, http-media, http-types, lens, resourcet, scientific, servant, text, time, unordered-containers

API changes (from Hackage documentation)

- Network.Google.Data.Bytes: Bytes :: ByteString -> Bytes
- Network.Google.Data.Bytes: [unBytes] :: Bytes -> ByteString
- Network.Google.Data.Bytes: _Bytes :: Iso' Bytes ByteString
- Network.Google.Data.Bytes: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance Data.Data.Data Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance Data.Hashable.Class.Hashable Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance GHC.Classes.Eq Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance GHC.Classes.Ord Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance GHC.Generics.Generic Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance GHC.Read.Read Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance GHC.Show.Show Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Bytes.Bytes
- Network.Google.Data.Bytes: newtype Bytes
- Network.Google.Data.JSON: (.!=) :: () => Parser (Maybe a) -> a -> Parser a
- Network.Google.Data.JSON: (.:) :: FromJSON a => Object -> Text -> Parser a
- Network.Google.Data.JSON: (.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a)
- Network.Google.Data.JSON: (.=) :: (KeyValue kv, ToJSON v) => Text -> v -> kv
- Network.Google.Data.JSON: Textual :: a -> Textual a
- Network.Google.Data.JSON: class FromJSON a
- Network.Google.Data.JSON: class ToJSON a
- Network.Google.Data.JSON: emptyObject :: Value
- Network.Google.Data.JSON: infixr 8 .=
- Network.Google.Data.JSON: instance (Data.Aeson.Types.FromJSON.FromJSON a, Web.Internal.HttpApiData.FromHttpApiData a) => Data.Aeson.Types.FromJSON.FromJSON (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance Data.Data.Data a => Data.Data.Data (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Classes.Eq a => GHC.Classes.Eq (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Classes.Ord a => GHC.Classes.Ord (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Num.Num a => GHC.Num.Num (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Read.Read a => GHC.Read.Read (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Real.Fractional a => GHC.Real.Fractional (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance GHC.Show.Show a => GHC.Show.Show (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance Web.Internal.HttpApiData.FromHttpApiData a => Web.Internal.HttpApiData.FromHttpApiData (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance Web.Internal.HttpApiData.ToHttpApiData a => Data.Aeson.Types.ToJSON.ToJSON (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: instance Web.Internal.HttpApiData.ToHttpApiData a => Web.Internal.HttpApiData.ToHttpApiData (Network.Google.Data.JSON.Textual a)
- Network.Google.Data.JSON: newtype Textual a
- Network.Google.Data.JSON: object :: [Pair] -> Value
- Network.Google.Data.JSON: parseJSON :: FromJSON a => Value -> Parser a
- Network.Google.Data.JSON: parseJSONList :: FromJSON a => Value -> Parser [a]
- Network.Google.Data.JSON: parseJSONObject :: FromJSON a => HashMap Text Value -> Parser a
- Network.Google.Data.JSON: parseJSONText :: FromHttpApiData a => String -> Value -> Parser a
- Network.Google.Data.JSON: toEncoding :: ToJSON a => a -> Encoding
- Network.Google.Data.JSON: toEncodingList :: ToJSON a => [a] -> Encoding
- Network.Google.Data.JSON: toJSON :: ToJSON a => a -> Value
- Network.Google.Data.JSON: toJSONList :: ToJSON a => [a] -> Value
- Network.Google.Data.JSON: toJSONText :: ToHttpApiData a => a -> Value
- Network.Google.Data.JSON: type JSONValue = Value
- Network.Google.Data.JSON: withObject :: () => String -> (Object -> Parser a) -> Value -> Parser a
- Network.Google.Data.Numeric: Nat :: Natural -> Nat
- Network.Google.Data.Numeric: [unNat] :: Nat -> Natural
- Network.Google.Data.Numeric: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance Data.Data.Data Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Classes.Eq Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Classes.Ord Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Enum.Enum Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Num.Num Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Read.Read Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Real.Integral Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Real.Real Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance GHC.Show.Show Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Numeric.Nat
- Network.Google.Data.Numeric: newtype Nat
- Network.Google.Data.Time: DateTime' :: UTCTime -> DateTime'
- Network.Google.Data.Time: [unDateTime] :: DateTime' -> UTCTime
- Network.Google.Data.Time: _Date :: Iso' Date' Day
- Network.Google.Data.Time: _DateTime :: Iso' DateTime' UTCTime
- Network.Google.Data.Time: _GDuration :: Iso' GDuration Scientific
- Network.Google.Data.Time: _Time :: Iso' Time' TimeOfDay
- Network.Google.Data.Time: data Date'
- Network.Google.Data.Time: data GDuration
- Network.Google.Data.Time: data Time'
- Network.Google.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance Data.Data.Data Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance Data.Data.Data Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance Data.Data.Data Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance Data.Data.Data Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance GHC.Classes.Eq Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance GHC.Classes.Eq Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance GHC.Classes.Eq Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance GHC.Classes.Eq Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance GHC.Classes.Ord Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance GHC.Classes.Ord Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance GHC.Classes.Ord Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance GHC.Classes.Ord Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance GHC.Generics.Generic Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance GHC.Generics.Generic Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance GHC.Generics.Generic Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance GHC.Generics.Generic Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance GHC.Read.Read Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance GHC.Read.Read Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance GHC.Read.Read Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance GHC.Read.Read Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance GHC.Show.Show Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance GHC.Show.Show Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance GHC.Show.Show Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance GHC.Show.Show Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Data.Time.Time'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Time.Date'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Time.DateTime'
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Time.GDuration
- Network.Google.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Data.Time.Time'
- Network.Google.Data.Time: newtype DateTime'
- Network.Google.Prelude: (!!) :: () => [a] -> Int -> a
- Network.Google.Prelude: (#) :: () => AReview t b -> b -> t
- Network.Google.Prelude: ($!) :: () => (a -> b) -> a -> b
- Network.Google.Prelude: ($) :: () => (a -> b) -> a -> b
- Network.Google.Prelude: (&&) :: Bool -> Bool -> Bool
- Network.Google.Prelude: (*) :: Num a => a -> a -> a
- Network.Google.Prelude: (**) :: Floating a => a -> a -> a
- Network.Google.Prelude: (*>) :: Applicative f => f a -> f b -> f b
- Network.Google.Prelude: (+) :: Num a => a -> a -> a
- Network.Google.Prelude: (++) :: () => [a] -> [a] -> [a]
- Network.Google.Prelude: (-) :: Num a => a -> a -> a
- Network.Google.Prelude: (.!=) :: () => Parser (Maybe a) -> a -> Parser a
- Network.Google.Prelude: (.) :: () => (b -> c) -> (a -> b) -> a -> c
- Network.Google.Prelude: (.:) :: FromJSON a => Object -> Text -> Parser a
- Network.Google.Prelude: (.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a)
- Network.Google.Prelude: (.=) :: (KeyValue kv, ToJSON v) => Text -> v -> kv
- Network.Google.Prelude: (/) :: Fractional a => a -> a -> a
- Network.Google.Prelude: (/=) :: Eq a => a -> a -> Bool
- Network.Google.Prelude: (:<|>) :: a -> b -> (:<|>) a b
- Network.Google.Prelude: (<$) :: Functor f => a -> f b -> f a
- Network.Google.Prelude: (<$>) :: Functor f => (a -> b) -> f a -> f b
- Network.Google.Prelude: (<) :: Ord a => a -> a -> Bool
- Network.Google.Prelude: (<*) :: Applicative f => f a -> f b -> f a
- Network.Google.Prelude: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
- Network.Google.Prelude: (<=) :: Ord a => a -> a -> Bool
- Network.Google.Prelude: (<>) :: Semigroup a => a -> a -> a
- Network.Google.Prelude: (=<<) :: Monad m => (a -> m b) -> m a -> m b
- Network.Google.Prelude: (==) :: Eq a => a -> a -> Bool
- Network.Google.Prelude: (>) :: Ord a => a -> a -> Bool
- Network.Google.Prelude: (>=) :: Ord a => a -> a -> Bool
- Network.Google.Prelude: (>>) :: Monad m => m a -> m b -> m b
- Network.Google.Prelude: (>>=) :: Monad m => m a -> (a -> m b) -> m b
- Network.Google.Prelude: (^) :: (Num a, Integral b) => a -> b -> a
- Network.Google.Prelude: (^.) :: () => s -> Getting a s a -> a
- Network.Google.Prelude: (^^) :: (Fractional a, Integral b) => a -> b -> a
- Network.Google.Prelude: (||) :: Bool -> Bool -> Bool
- Network.Google.Prelude: AccessToken :: Text -> AccessToken
- Network.Google.Prelude: AltJSON :: AltJSON
- Network.Google.Prelude: AltMedia :: AltMedia
- Network.Google.Prelude: ArrayElemParam :: String -> Text -> Param
- Network.Google.Prelude: BasicAuthData :: !ByteString -> !ByteString -> BasicAuthData
- Network.Google.Prelude: Bytes :: ByteString -> Bytes
- Network.Google.Prelude: CONNECT :: StdMethod
- Network.Google.Prelude: ClientId :: Text -> ClientId
- Network.Google.Prelude: DELETE :: StdMethod
- Network.Google.Prelude: DateTime' :: UTCTime -> DateTime'
- Network.Google.Prelude: EQ :: Ordering
- Network.Google.Prelude: EmptyAPI :: EmptyAPI
- Network.Google.Prelude: False :: Bool
- Network.Google.Prelude: FlagParam :: String -> Param
- Network.Google.Prelude: GBody :: !MediaType -> !RequestBody -> GBody
- Network.Google.Prelude: GClient :: !Maybe MediaType -> !Method -> !Status -> Bool -> !ServiceConfig -> !Request -> !Stream -> ResourceT IO (Either (String, ByteString) a) -> GClient a
- Network.Google.Prelude: GET :: StdMethod
- Network.Google.Prelude: GFieldMask :: Text -> GFieldMask
- Network.Google.Prelude: GSecret :: Text -> GSecret
- Network.Google.Prelude: GT :: Ordering
- Network.Google.Prelude: HEAD :: StdMethod
- Network.Google.Prelude: HttpVersion :: !Int -> !Int -> HttpVersion
- Network.Google.Prelude: Just :: a -> Maybe a
- Network.Google.Prelude: KProxy :: KProxy t
- Network.Google.Prelude: LT :: Ordering
- Network.Google.Prelude: Left :: a -> Either a b
- Network.Google.Prelude: LinkArrayElementBracket :: LinkArrayElementStyle
- Network.Google.Prelude: LinkArrayElementPlain :: LinkArrayElementStyle
- Network.Google.Prelude: MediaDownload :: a -> MediaDownload a
- Network.Google.Prelude: MediaUpload :: a -> GBody -> MediaUpload a
- Network.Google.Prelude: Multipart :: Multipart
- Network.Google.Prelude: Nat :: Natural -> Nat
- Network.Google.Prelude: NoContent :: NoContent
- Network.Google.Prelude: NotSecure :: IsSecure
- Network.Google.Prelude: Nothing :: Maybe a
- Network.Google.Prelude: OAuthScope :: Text -> OAuthScope
- Network.Google.Prelude: OPTIONS :: StdMethod
- Network.Google.Prelude: PATCH :: StdMethod
- Network.Google.Prelude: POST :: StdMethod
- Network.Google.Prelude: PUT :: StdMethod
- Network.Google.Prelude: Proxy :: Proxy
- Network.Google.Prelude: RefreshToken :: Text -> RefreshToken
- Network.Google.Prelude: Request :: !Builder -> !DList (ByteString, Maybe ByteString) -> !DList (HeaderName, ByteString) -> ![GBody] -> Request
- Network.Google.Prelude: Right :: b -> Either a b
- Network.Google.Prelude: Seconds :: Int -> Seconds
- Network.Google.Prelude: Secure :: IsSecure
- Network.Google.Prelude: SerializeError :: SerializeError -> Error
- Network.Google.Prelude: SerializeError' :: !ServiceId -> [Header] -> !Status -> !String -> !Maybe ByteString -> SerializeError
- Network.Google.Prelude: ServiceConfig :: !ServiceId -> !ByteString -> !Builder -> !Int -> !Bool -> !Maybe Seconds -> ServiceConfig
- Network.Google.Prelude: ServiceError :: ServiceError -> Error
- Network.Google.Prelude: ServiceError' :: !ServiceId -> !Status -> ![Header] -> !Maybe ByteString -> ServiceError
- Network.Google.Prelude: ServiceId :: Text -> ServiceId
- Network.Google.Prelude: SingleParam :: String -> Text -> Param
- Network.Google.Prelude: TRACE :: StdMethod
- Network.Google.Prelude: Textual :: a -> Textual a
- Network.Google.Prelude: TransportError :: HttpException -> Error
- Network.Google.Prelude: True :: Bool
- Network.Google.Prelude: URI :: String -> Maybe URIAuth -> String -> String -> String -> URI
- Network.Google.Prelude: [HCons] :: forall (a :: [Type]) (h :: Symbol) x (xs :: [Type]). () => ResponseHeader h x -> HList xs -> HList (Header h x : xs)
- Network.Google.Prelude: [HNil] :: forall (a :: [Type]). () => HList ([] :: [Type])
- Network.Google.Prelude: [SFalse] :: forall (b :: Bool). () => SBool False
- Network.Google.Prelude: [STrue] :: forall (b :: Bool). () => SBool True
- Network.Google.Prelude: [_cliAccept] :: GClient a -> !Maybe MediaType
- Network.Google.Prelude: [_cliCheck] :: GClient a -> !Status -> Bool
- Network.Google.Prelude: [_cliMethod] :: GClient a -> !Method
- Network.Google.Prelude: [_cliRequest] :: GClient a -> !Request
- Network.Google.Prelude: [_cliResponse] :: GClient a -> !Stream -> ResourceT IO (Either (String, ByteString) a)
- Network.Google.Prelude: [_cliService] :: GClient a -> !ServiceConfig
- Network.Google.Prelude: [_rqBody] :: Request -> ![GBody]
- Network.Google.Prelude: [_rqHeaders] :: Request -> !DList (HeaderName, ByteString)
- Network.Google.Prelude: [_rqPath] :: Request -> !Builder
- Network.Google.Prelude: [_rqQuery] :: Request -> !DList (ByteString, Maybe ByteString)
- Network.Google.Prelude: [_serializeBody] :: SerializeError -> !Maybe ByteString
- Network.Google.Prelude: [_serializeHeaders] :: SerializeError -> [Header]
- Network.Google.Prelude: [_serializeId] :: SerializeError -> !ServiceId
- Network.Google.Prelude: [_serializeMessage] :: SerializeError -> !String
- Network.Google.Prelude: [_serializeStatus] :: SerializeError -> !Status
- Network.Google.Prelude: [_serviceBody] :: ServiceError -> !Maybe ByteString
- Network.Google.Prelude: [_serviceHeaders] :: ServiceError -> ![Header]
- Network.Google.Prelude: [_serviceId] :: ServiceError -> !ServiceId
- Network.Google.Prelude: [_serviceStatus] :: ServiceError -> !Status
- Network.Google.Prelude: [_svcHost] :: ServiceConfig -> !ByteString
- Network.Google.Prelude: [_svcId] :: ServiceConfig -> !ServiceId
- Network.Google.Prelude: [_svcPath] :: ServiceConfig -> !Builder
- Network.Google.Prelude: [_svcPort] :: ServiceConfig -> !Int
- Network.Google.Prelude: [_svcSecure] :: ServiceConfig -> !Bool
- Network.Google.Prelude: [_svcTimeout] :: ServiceConfig -> !Maybe Seconds
- Network.Google.Prelude: [basicAuthPassword] :: BasicAuthData -> !ByteString
- Network.Google.Prelude: [basicAuthUsername] :: BasicAuthData -> !ByteString
- Network.Google.Prelude: [httpMajor] :: HttpVersion -> !Int
- Network.Google.Prelude: [httpMinor] :: HttpVersion -> !Int
- Network.Google.Prelude: [unBytes] :: Bytes -> ByteString
- Network.Google.Prelude: [unDateTime] :: DateTime' -> UTCTime
- Network.Google.Prelude: [unNat] :: Nat -> Natural
- Network.Google.Prelude: [uriAuthority] :: URI -> Maybe URIAuth
- Network.Google.Prelude: [uriFragment] :: URI -> String
- Network.Google.Prelude: [uriPath] :: URI -> String
- Network.Google.Prelude: [uriQuery] :: URI -> String
- Network.Google.Prelude: [uriScheme] :: URI -> String
- Network.Google.Prelude: _Bytes :: Iso' Bytes ByteString
- Network.Google.Prelude: _Coerce :: (Coercible a b, Coercible b a) => Iso' a b
- Network.Google.Prelude: _Date :: Iso' Date' Day
- Network.Google.Prelude: _DateTime :: Iso' DateTime' UTCTime
- Network.Google.Prelude: _Default :: Monoid a => Iso' (Maybe a) a
- Network.Google.Prelude: _Error :: AsError a => Prism' a Error
- Network.Google.Prelude: _GDuration :: Iso' GDuration Scientific
- Network.Google.Prelude: _Just :: () => Prism (Maybe a) (Maybe b) a b
- Network.Google.Prelude: _SerializeError :: AsError a => Prism' a SerializeError
- Network.Google.Prelude: _ServiceError :: AsError a => Prism' a ServiceError
- Network.Google.Prelude: _Time :: Iso' Time' TimeOfDay
- Network.Google.Prelude: _TransportError :: AsError a => Prism' a HttpException
- Network.Google.Prelude: abs :: Num a => a -> a
- Network.Google.Prelude: acos :: Floating a => a -> a
- Network.Google.Prelude: acosh :: Floating a => a -> a
- Network.Google.Prelude: addHeader :: AddHeader h v orig new => v -> orig -> new
- Network.Google.Prelude: all :: Foldable t => (a -> Bool) -> t a -> Bool
- Network.Google.Prelude: allFieldLinks :: (HasLink (ToServantApi routes), GenericServant routes (AsLink Link), ToServant routes (AsLink Link) ~ MkLink (ToServantApi routes) Link) => routes (AsLink Link)
- Network.Google.Prelude: allFieldLinks' :: (HasLink (ToServantApi routes), GenericServant routes (AsLink a), ToServant routes (AsLink a) ~ MkLink (ToServantApi routes) a) => (Link -> a) -> routes (AsLink a)
- Network.Google.Prelude: allLinks :: HasLink api => Proxy api -> MkLink api Link
- Network.Google.Prelude: allLinks' :: HasLink api => (Link -> a) -> Proxy api -> MkLink api a
- Network.Google.Prelude: and :: Foldable t => t Bool -> Bool
- Network.Google.Prelude: appendFile :: FilePath -> String -> IO ()
- Network.Google.Prelude: appendHeader :: Request -> HeaderName -> Maybe Text -> Request
- Network.Google.Prelude: appendPath :: Request -> Builder -> Request
- Network.Google.Prelude: appendPaths :: ToHttpApiData a => Request -> [a] -> Request
- Network.Google.Prelude: appendQuery :: Request -> ByteString -> Maybe Text -> Request
- Network.Google.Prelude: asProxyTypeOf :: () => a -> proxy a -> a
- Network.Google.Prelude: asTypeOf :: () => a -> a -> a
- Network.Google.Prelude: asin :: Floating a => a -> a
- Network.Google.Prelude: asinh :: Floating a => a -> a
- Network.Google.Prelude: atan :: Floating a => a -> a
- Network.Google.Prelude: atan2 :: RealFloat a => a -> a -> a
- Network.Google.Prelude: atanh :: Floating a => a -> a
- Network.Google.Prelude: bodyContentType :: Lens' GBody MediaType
- Network.Google.Prelude: break :: () => (a -> Bool) -> [a] -> ([a], [a])
- Network.Google.Prelude: buildClient :: GoogleClient fn => Proxy fn -> Request -> Fn fn
- Network.Google.Prelude: buildHeadersTo :: BuildHeadersTo hs => [Header] -> HList hs
- Network.Google.Prelude: buildSymbol :: forall n proxy. KnownSymbol n => proxy n -> Builder
- Network.Google.Prelude: buildText :: ToHttpApiData a => a -> Builder
- Network.Google.Prelude: byteSymbol :: forall n proxy. KnownSymbol n => proxy n -> ByteString
- Network.Google.Prelude: catMaybes :: () => [Maybe a] -> [a]
- Network.Google.Prelude: ceiling :: (RealFrac a, Integral b) => a -> b
- Network.Google.Prelude: class Accept (ctype :: k)
- Network.Google.Prelude: class AddHeader (h :: Symbol) v orig new | h v orig -> new, new -> h, new -> v, new -> orig
- Network.Google.Prelude: class Functor f => Applicative (f :: Type -> Type)
- Network.Google.Prelude: class AsError a
- Network.Google.Prelude: class Bounded a
- Network.Google.Prelude: class BuildHeadersTo (hs :: [Type])
- Network.Google.Prelude: class Typeable a => Data a
- Network.Google.Prelude: class Enum a
- Network.Google.Prelude: class Eq a
- Network.Google.Prelude: class Fractional a => Floating a
- Network.Google.Prelude: class Foldable (t :: Type -> Type)
- Network.Google.Prelude: class Num a => Fractional a
- Network.Google.Prelude: class FramingRender (strategy :: k)
- Network.Google.Prelude: class FramingUnrender (strategy :: k)
- Network.Google.Prelude: class FromHttpApiData a
- Network.Google.Prelude: class FromJSON a
- Network.Google.Prelude: class FromSourceIO chunk a | a -> chunk
- Network.Google.Prelude: class Accept c => FromStream c a
- Network.Google.Prelude: class Functor (f :: Type -> Type)
- Network.Google.Prelude: class Generic a
- Network.Google.Prelude: class GetHeaders ls
- Network.Google.Prelude: class GoogleClient fn where {
- Network.Google.Prelude: class GoogleRequest a where {
- Network.Google.Prelude: class HasLink (endpoint :: k) where {
- Network.Google.Prelude: class HasResponseHeader (h :: Symbol) a (headers :: [Type])
- Network.Google.Prelude: class Hashable a
- Network.Google.Prelude: class (Real a, Enum a) => Integral a
- Network.Google.Prelude: class Accept ctype => MimeRender (ctype :: k) a
- Network.Google.Prelude: class Accept ctype => MimeUnrender (ctype :: k) a
- Network.Google.Prelude: class Applicative m => Monad (m :: Type -> Type)
- Network.Google.Prelude: class Semigroup a => Monoid a
- Network.Google.Prelude: class Num a
- Network.Google.Prelude: class Eq a => Ord a
- Network.Google.Prelude: class Read a
- Network.Google.Prelude: class (Num a, Ord a) => Real a
- Network.Google.Prelude: class (RealFrac a, Floating a) => RealFloat a
- Network.Google.Prelude: class (Real a, Fractional a) => RealFrac a
- Network.Google.Prelude: class ReflectMethod (a :: k)
- Network.Google.Prelude: class SBoolI (b :: Bool)
- Network.Google.Prelude: class Semigroup a
- Network.Google.Prelude: class Show a
- Network.Google.Prelude: class Accept c => ToBody c a
- Network.Google.Prelude: class ToHttpApiData a
- Network.Google.Prelude: class ToJSON a
- Network.Google.Prelude: class ToSourceIO chunk a | a -> chunk
- Network.Google.Prelude: class (Functor t, Foldable t) => Traversable (t :: Type -> Type)
- Network.Google.Prelude: class Typeable (a :: k)
- Network.Google.Prelude: clientService :: Lens' (GClient a) ServiceConfig
- Network.Google.Prelude: compare :: Ord a => a -> a -> Ordering
- Network.Google.Prelude: concat :: Foldable t => t [a] -> [a]
- Network.Google.Prelude: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
- Network.Google.Prelude: const :: () => a -> b -> a
- Network.Google.Prelude: contentType :: Accept ctype => Proxy ctype -> MediaType
- Network.Google.Prelude: contentTypes :: Accept ctype => Proxy ctype -> NonEmpty MediaType
- Network.Google.Prelude: cos :: Floating a => a -> a
- Network.Google.Prelude: cosh :: Floating a => a -> a
- Network.Google.Prelude: curry :: () => ((a, b) -> c) -> a -> b -> c
- Network.Google.Prelude: cycle :: () => [a] -> [a]
- Network.Google.Prelude: data (:<|>) a b
- Network.Google.Prelude: data AltJSON
- Network.Google.Prelude: data AltMedia
- Network.Google.Prelude: data AsLink a
- Network.Google.Prelude: data BasicAuth (realm :: Symbol) userData
- Network.Google.Prelude: data BasicAuthData
- Network.Google.Prelude: data Bool
- Network.Google.Prelude: data ByteString
- Network.Google.Prelude: data Capture' (mods :: [Type]) (sym :: Symbol) a
- Network.Google.Prelude: data CaptureAll (sym :: Symbol) a
- Network.Google.Prelude: data CaptureMode (s :: Symbol) (m :: Symbol) a
- Network.Google.Prelude: data Captures (s :: Symbol) a
- Network.Google.Prelude: data Char
- Network.Google.Prelude: data Date'
- Network.Google.Prelude: data Day
- Network.Google.Prelude: data Description (sym :: Symbol)
- Network.Google.Prelude: data Double
- Network.Google.Prelude: data Either a b
- Network.Google.Prelude: data EmptyAPI
- Network.Google.Prelude: data Error
- Network.Google.Prelude: data Float
- Network.Google.Prelude: data FormUrlEncoded
- Network.Google.Prelude: data GBody
- Network.Google.Prelude: data GClient a
- Network.Google.Prelude: data GDuration
- Network.Google.Prelude: data HList (a :: [Type])
- Network.Google.Prelude: data HashMap k v
- Network.Google.Prelude: data HttpVersion
- Network.Google.Prelude: data IO a
- Network.Google.Prelude: data Int
- Network.Google.Prelude: data Int32
- Network.Google.Prelude: data Int64
- Network.Google.Prelude: data Integer
- Network.Google.Prelude: data IsSecure
- Network.Google.Prelude: data JSON
- Network.Google.Prelude: data KProxy t
- Network.Google.Prelude: data Lenient
- Network.Google.Prelude: data LinkArrayElementStyle
- Network.Google.Prelude: data Maybe a
- Network.Google.Prelude: data MediaUpload a
- Network.Google.Prelude: data Multipart
- Network.Google.Prelude: data MultipartRelated (cs :: [*]) m
- Network.Google.Prelude: data Natural
- Network.Google.Prelude: data NetstringFraming
- Network.Google.Prelude: data NewlineFraming
- Network.Google.Prelude: data NoContent
- Network.Google.Prelude: data NoFraming
- Network.Google.Prelude: data OctetStream
- Network.Google.Prelude: data Optional
- Network.Google.Prelude: data Ordering
- Network.Google.Prelude: data Param
- Network.Google.Prelude: data PlainText
- Network.Google.Prelude: data QueryFlag (sym :: Symbol)
- Network.Google.Prelude: data QueryParam' (mods :: [Type]) (sym :: Symbol) a
- Network.Google.Prelude: data QueryParams (sym :: Symbol) a
- Network.Google.Prelude: data Raw
- Network.Google.Prelude: data RemoteHost
- Network.Google.Prelude: data ReqBody' (mods :: [Type]) (contentTypes :: [Type]) a
- Network.Google.Prelude: data Request
- Network.Google.Prelude: data RequestBody
- Network.Google.Prelude: data Required
- Network.Google.Prelude: data SBool (b :: Bool)
- Network.Google.Prelude: data Scientific
- Network.Google.Prelude: data SerializeError
- Network.Google.Prelude: data ServiceConfig
- Network.Google.Prelude: data ServiceError
- Network.Google.Prelude: data StdMethod
- Network.Google.Prelude: data StreamBody' (mods :: [Type]) framing contentType a
- Network.Google.Prelude: data Strict
- Network.Google.Prelude: data Summary (sym :: Symbol)
- Network.Google.Prelude: data Text
- Network.Google.Prelude: data Time'
- Network.Google.Prelude: data TimeOfDay
- Network.Google.Prelude: data URI
- Network.Google.Prelude: data UTCTime
- Network.Google.Prelude: data WithNamedContext (name :: Symbol) (subContext :: [Type]) subApi
- Network.Google.Prelude: data Word32
- Network.Google.Prelude: data Word64
- Network.Google.Prelude: data Word8
- Network.Google.Prelude: data Header' (mods :: [Type]) (sym :: Symbol) (a :: k) :: forall k. () => [Type] -> Symbol -> k -> Type
- Network.Google.Prelude: data AuthProtect (tag :: k) :: forall k. () => k -> Type
- Network.Google.Prelude: data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [Type]) a :: forall k1. () => k1 -> Nat -> [Type] -> Type -> Type
- Network.Google.Prelude: decodeFloat :: RealFloat a => a -> (Integer, Int)
- Network.Google.Prelude: defaultService :: ServiceId -> ByteString -> ServiceConfig
- Network.Google.Prelude: discard :: Method -> [Int] -> Request -> ServiceConfig -> GClient ()
- Network.Google.Prelude: div :: Integral a => a -> a -> a
- Network.Google.Prelude: divMod :: Integral a => a -> a -> (a, a)
- Network.Google.Prelude: drop :: () => Int -> [a] -> [a]
- Network.Google.Prelude: dropWhile :: () => (a -> Bool) -> [a] -> [a]
- Network.Google.Prelude: either :: () => (a -> c) -> (b -> c) -> Either a b -> c
- Network.Google.Prelude: elem :: (Foldable t, Eq a) => a -> t a -> Bool
- Network.Google.Prelude: emptyObject :: Value
- Network.Google.Prelude: encodeFloat :: RealFloat a => Integer -> Int -> a
- Network.Google.Prelude: enumFrom :: Enum a => a -> [a]
- Network.Google.Prelude: enumFromThen :: Enum a => a -> a -> [a]
- Network.Google.Prelude: enumFromThenTo :: Enum a => a -> a -> a -> [a]
- Network.Google.Prelude: enumFromTo :: Enum a => a -> a -> [a]
- Network.Google.Prelude: error :: HasCallStack => [Char] -> a
- Network.Google.Prelude: errorWithoutStackTrace :: () => [Char] -> a
- Network.Google.Prelude: even :: Integral a => a -> Bool
- Network.Google.Prelude: exp :: Floating a => a -> a
- Network.Google.Prelude: exponent :: RealFloat a => a -> Int
- Network.Google.Prelude: fail :: Monad m => String -> m a
- Network.Google.Prelude: fieldLink :: (IsElem endpoint (ToServantApi routes), HasLink endpoint, GenericServant routes AsApi) => (routes AsApi -> endpoint) -> MkLink endpoint Link
- Network.Google.Prelude: fieldLink' :: (IsElem endpoint (ToServantApi routes), HasLink endpoint, GenericServant routes AsApi) => (Link -> a) -> (routes AsApi -> endpoint) -> MkLink endpoint a
- Network.Google.Prelude: filter :: () => (a -> Bool) -> [a] -> [a]
- Network.Google.Prelude: flip :: () => (a -> b -> c) -> b -> a -> c
- Network.Google.Prelude: floatDigits :: RealFloat a => a -> Int
- Network.Google.Prelude: floatRadix :: RealFloat a => a -> Integer
- Network.Google.Prelude: floatRange :: RealFloat a => a -> (Int, Int)
- Network.Google.Prelude: floor :: (RealFrac a, Integral b) => a -> b
- Network.Google.Prelude: fmap :: Functor f => (a -> b) -> f a -> f b
- Network.Google.Prelude: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
- Network.Google.Prelude: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
- Network.Google.Prelude: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
- Network.Google.Prelude: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
- Network.Google.Prelude: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
- Network.Google.Prelude: framingRender :: (FramingRender strategy, Monad m) => Proxy strategy -> (a -> ByteString) -> SourceT m a -> SourceT m ByteString
- Network.Google.Prelude: framingUnrender :: (FramingUnrender strategy, Monad m) => Proxy strategy -> (ByteString -> Either String a) -> SourceT m ByteString -> SourceT m a
- Network.Google.Prelude: fromEnum :: Enum a => a -> Int
- Network.Google.Prelude: fromInteger :: Num a => Integer -> a
- Network.Google.Prelude: fromIntegral :: (Integral a, Num b) => a -> b
- Network.Google.Prelude: fromJust :: () => Maybe a -> a
- Network.Google.Prelude: fromMaybe :: () => a -> Maybe a -> a
- Network.Google.Prelude: fromRational :: Fractional a => Rational -> a
- Network.Google.Prelude: fromSourceIO :: FromSourceIO chunk a => SourceIO chunk -> a
- Network.Google.Prelude: fromStream :: FromStream c a => Proxy c -> Stream -> ResourceT IO (Either (String, ByteString) a)
- Network.Google.Prelude: fst :: () => (a, b) -> a
- Network.Google.Prelude: gClient :: (Stream -> ResourceT IO (Either (String, ByteString) a)) -> Maybe MediaType -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
- Network.Google.Prelude: gcd :: Integral a => a -> a -> a
- Network.Google.Prelude: getChar :: IO Char
- Network.Google.Prelude: getContents :: IO String
- Network.Google.Prelude: getHeaders :: GetHeaders ls => ls -> [Header]
- Network.Google.Prelude: getHeadersHList :: Headers ls a -> HList ls
- Network.Google.Prelude: getLine :: IO String
- Network.Google.Prelude: hashWithSalt :: Hashable a => Int -> a -> Int
- Network.Google.Prelude: head :: () => [a] -> a
- Network.Google.Prelude: id :: () => a -> a
- Network.Google.Prelude: infix 4 `notElem`
- Network.Google.Prelude: infixl 0 `hashWithSalt`
- Network.Google.Prelude: infixl 1 >>
- Network.Google.Prelude: infixl 4 <$>
- Network.Google.Prelude: infixl 6 -
- Network.Google.Prelude: infixl 7 *
- Network.Google.Prelude: infixl 8 ^.
- Network.Google.Prelude: infixl 9 !!
- Network.Google.Prelude: infixr 0 $!
- Network.Google.Prelude: infixr 1 =<<
- Network.Google.Prelude: infixr 2 ||
- Network.Google.Prelude: infixr 3 :<|>
- Network.Google.Prelude: infixr 4 :>
- Network.Google.Prelude: infixr 5 ++
- Network.Google.Prelude: infixr 6 <>
- Network.Google.Prelude: infixr 8 #
- Network.Google.Prelude: infixr 9 .
- Network.Google.Prelude: init :: () => [a] -> [a]
- Network.Google.Prelude: interact :: (String -> String) -> IO ()
- Network.Google.Prelude: ioError :: () => IOError -> IO a
- Network.Google.Prelude: isDenormalized :: RealFloat a => a -> Bool
- Network.Google.Prelude: isIEEE :: RealFloat a => a -> Bool
- Network.Google.Prelude: isInfinite :: RealFloat a => a -> Bool
- Network.Google.Prelude: isJust :: () => Maybe a -> Bool
- Network.Google.Prelude: isNaN :: RealFloat a => a -> Bool
- Network.Google.Prelude: isNegativeZero :: RealFloat a => a -> Bool
- Network.Google.Prelude: isNothing :: () => Maybe a -> Bool
- Network.Google.Prelude: iterate :: () => (a -> a) -> a -> [a]
- Network.Google.Prelude: last :: () => [a] -> a
- Network.Google.Prelude: lcm :: Integral a => a -> a -> a
- Network.Google.Prelude: length :: Foldable t => t a -> Int
- Network.Google.Prelude: lens :: () => (s -> a) -> (s -> b -> t) -> Lens s t a b
- Network.Google.Prelude: lex :: ReadS String
- Network.Google.Prelude: lines :: String -> [String]
- Network.Google.Prelude: linkQueryParams :: Link -> [Param]
- Network.Google.Prelude: linkSegments :: Link -> [String]
- Network.Google.Prelude: linkURI :: Link -> URI
- Network.Google.Prelude: linkURI' :: LinkArrayElementStyle -> Link -> URI
- Network.Google.Prelude: listToMaybe :: () => [a] -> Maybe a
- Network.Google.Prelude: log :: Floating a => a -> a
- Network.Google.Prelude: logBase :: Floating a => a -> a -> a
- Network.Google.Prelude: lookup :: Eq a => a -> [(a, b)] -> Maybe b
- Network.Google.Prelude: lookupResponseHeader :: HasResponseHeader h a headers => Headers headers r -> ResponseHeader h a
- Network.Google.Prelude: map :: () => (a -> b) -> [a] -> [b]
- Network.Google.Prelude: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
- Network.Google.Prelude: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
- Network.Google.Prelude: mapMaybe :: () => (a -> Maybe b) -> [a] -> [b]
- Network.Google.Prelude: mappend :: Monoid a => a -> a -> a
- Network.Google.Prelude: mapping :: (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
- Network.Google.Prelude: max :: Ord a => a -> a -> a
- Network.Google.Prelude: maxBound :: Bounded a => a
- Network.Google.Prelude: maximum :: (Foldable t, Ord a) => t a -> a
- Network.Google.Prelude: maybe :: () => b -> (a -> b) -> Maybe a -> b
- Network.Google.Prelude: maybeToList :: () => Maybe a -> [a]
- Network.Google.Prelude: mconcat :: Monoid a => [a] -> a
- Network.Google.Prelude: mempty :: Monoid a => a
- Network.Google.Prelude: microseconds :: Seconds -> Int
- Network.Google.Prelude: mime :: FromStream c a => Proxy c -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
- Network.Google.Prelude: mimeRender :: MimeRender ctype a => Proxy ctype -> a -> ByteString
- Network.Google.Prelude: mimeUnrender :: MimeUnrender ctype a => Proxy ctype -> ByteString -> Either String a
- Network.Google.Prelude: mimeUnrenderWithType :: MimeUnrender ctype a => Proxy ctype -> MediaType -> ByteString -> Either String a
- Network.Google.Prelude: min :: Ord a => a -> a -> a
- Network.Google.Prelude: minBound :: Bounded a => a
- Network.Google.Prelude: minimum :: (Foldable t, Ord a) => t a -> a
- Network.Google.Prelude: mod :: Integral a => a -> a -> a
- Network.Google.Prelude: negate :: Num a => a -> a
- Network.Google.Prelude: newtype AccessToken
- Network.Google.Prelude: newtype Bytes
- Network.Google.Prelude: newtype ClientId
- Network.Google.Prelude: newtype DateTime'
- Network.Google.Prelude: newtype GFieldMask
- Network.Google.Prelude: newtype GSecret
- Network.Google.Prelude: newtype MediaDownload a
- Network.Google.Prelude: newtype Nat
- Network.Google.Prelude: newtype OAuthScope
- Network.Google.Prelude: newtype RefreshToken
- Network.Google.Prelude: newtype Seconds
- Network.Google.Prelude: newtype ServiceId
- Network.Google.Prelude: newtype Textual a
- Network.Google.Prelude: noHeader :: AddHeader h v orig new => orig -> new
- Network.Google.Prelude: not :: Bool -> Bool
- Network.Google.Prelude: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
- Network.Google.Prelude: null :: Foldable t => t a -> Bool
- Network.Google.Prelude: object :: [Pair] -> Value
- Network.Google.Prelude: odd :: Integral a => a -> Bool
- Network.Google.Prelude: or :: Foldable t => t Bool -> Bool
- Network.Google.Prelude: otherwise :: Bool
- Network.Google.Prelude: parseHeader :: FromHttpApiData a => ByteString -> Either Text a
- Network.Google.Prelude: parseJSON :: FromJSON a => Value -> Parser a
- Network.Google.Prelude: parseJSONList :: FromJSON a => Value -> Parser [a]
- Network.Google.Prelude: parseJSONObject :: FromJSON a => HashMap Text Value -> Parser a
- Network.Google.Prelude: parseJSONText :: FromHttpApiData a => String -> Value -> Parser a
- Network.Google.Prelude: parseQueryParam :: FromHttpApiData a => Text -> Either Text a
- Network.Google.Prelude: parseUrlPiece :: FromHttpApiData a => Text -> Either Text a
- Network.Google.Prelude: pattern UndecodableHeader :: () => () => ByteString -> ResponseHeader sym a
- Network.Google.Prelude: pattern MissingHeader :: () => () => ResponseHeader sym a
- Network.Google.Prelude: pi :: Floating a => a
- Network.Google.Prelude: pred :: Enum a => a -> a
- Network.Google.Prelude: print :: Show a => a -> IO ()
- Network.Google.Prelude: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
- Network.Google.Prelude: pure :: Applicative f => a -> f a
- Network.Google.Prelude: putChar :: Char -> IO ()
- Network.Google.Prelude: putStr :: String -> IO ()
- Network.Google.Prelude: putStrLn :: String -> IO ()
- Network.Google.Prelude: quot :: Integral a => a -> a -> a
- Network.Google.Prelude: quotRem :: Integral a => a -> a -> (a, a)
- Network.Google.Prelude: read :: Read a => String -> a
- Network.Google.Prelude: readFile :: FilePath -> IO String
- Network.Google.Prelude: readIO :: Read a => String -> IO a
- Network.Google.Prelude: readList :: Read a => ReadS [a]
- Network.Google.Prelude: readLn :: Read a => IO a
- Network.Google.Prelude: readParen :: () => Bool -> ReadS a -> ReadS a
- Network.Google.Prelude: reads :: Read a => ReadS a
- Network.Google.Prelude: readsPrec :: Read a => Int -> ReadS a
- Network.Google.Prelude: realToFrac :: (Real a, Fractional b) => a -> b
- Network.Google.Prelude: recip :: Fractional a => a -> a
- Network.Google.Prelude: reflectMethod :: ReflectMethod a => Proxy a -> Method
- Network.Google.Prelude: rem :: Integral a => a -> a -> a
- Network.Google.Prelude: repeat :: () => a -> [a]
- Network.Google.Prelude: replicate :: () => Int -> a -> [a]
- Network.Google.Prelude: requestClient :: GoogleRequest a => a -> GClient (Rs a)
- Network.Google.Prelude: return :: Monad m => a -> m a
- Network.Google.Prelude: reverse :: () => [a] -> [a]
- Network.Google.Prelude: round :: (RealFrac a, Integral b) => a -> b
- Network.Google.Prelude: safeLink :: (IsElem endpoint api, HasLink endpoint) => Proxy api -> Proxy endpoint -> MkLink endpoint Link
- Network.Google.Prelude: safeLink' :: (IsElem endpoint api, HasLink endpoint) => (Link -> a) -> Proxy api -> Proxy endpoint -> MkLink endpoint a
- Network.Google.Prelude: sbool :: SBoolI b => SBool b
- Network.Google.Prelude: scaleFloat :: RealFloat a => Int -> a -> a
- Network.Google.Prelude: scanl :: () => (b -> a -> b) -> b -> [a] -> [b]
- Network.Google.Prelude: scanl1 :: () => (a -> a -> a) -> [a] -> [a]
- Network.Google.Prelude: scanr :: () => (a -> b -> b) -> b -> [a] -> [b]
- Network.Google.Prelude: scanr1 :: () => (a -> a -> a) -> [a] -> [a]
- Network.Google.Prelude: seconds :: Seconds -> Int
- Network.Google.Prelude: seq :: () => a -> b -> b
- Network.Google.Prelude: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
- Network.Google.Prelude: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
- Network.Google.Prelude: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
- Network.Google.Prelude: serviceHost :: Lens' ServiceConfig ByteString
- Network.Google.Prelude: servicePath :: Lens' ServiceConfig Builder
- Network.Google.Prelude: servicePort :: Lens' ServiceConfig Int
- Network.Google.Prelude: serviceSecure :: Lens' ServiceConfig Bool
- Network.Google.Prelude: serviceTimeout :: Lens' ServiceConfig (Maybe Seconds)
- Network.Google.Prelude: setBody :: Request -> [GBody] -> Request
- Network.Google.Prelude: show :: Show a => a -> String
- Network.Google.Prelude: showChar :: Char -> ShowS
- Network.Google.Prelude: showList :: Show a => [a] -> ShowS
- Network.Google.Prelude: showParen :: Bool -> ShowS -> ShowS
- Network.Google.Prelude: showString :: String -> ShowS
- Network.Google.Prelude: shows :: Show a => a -> ShowS
- Network.Google.Prelude: showsPrec :: Show a => Int -> a -> ShowS
- Network.Google.Prelude: significand :: RealFloat a => a -> a
- Network.Google.Prelude: signum :: Num a => a -> a
- Network.Google.Prelude: sin :: Floating a => a -> a
- Network.Google.Prelude: sinh :: Floating a => a -> a
- Network.Google.Prelude: sinkLBS :: Stream -> ResourceT IO ByteString
- Network.Google.Prelude: snd :: () => (a, b) -> b
- Network.Google.Prelude: splitAt :: () => Int -> [a] -> ([a], [a])
- Network.Google.Prelude: sqrt :: Floating a => a -> a
- Network.Google.Prelude: subtract :: Num a => a -> a -> a
- Network.Google.Prelude: succ :: Enum a => a -> a
- Network.Google.Prelude: sum :: (Foldable t, Num a) => t a -> a
- Network.Google.Prelude: tail :: () => [a] -> [a]
- Network.Google.Prelude: take :: () => Int -> [a] -> [a]
- Network.Google.Prelude: takeWhile :: () => (a -> Bool) -> [a] -> [a]
- Network.Google.Prelude: tan :: Floating a => a -> a
- Network.Google.Prelude: tanh :: Floating a => a -> a
- Network.Google.Prelude: toBody :: ToBody c a => Proxy c -> a -> GBody
- Network.Google.Prelude: toEncodedUrlPiece :: ToHttpApiData a => a -> Builder
- Network.Google.Prelude: toEncoding :: ToJSON a => a -> Encoding
- Network.Google.Prelude: toEncodingList :: ToJSON a => [a] -> Encoding
- Network.Google.Prelude: toEnum :: Enum a => Int -> a
- Network.Google.Prelude: toHeader :: ToHttpApiData a => a -> ByteString
- Network.Google.Prelude: toInteger :: Integral a => a -> Integer
- Network.Google.Prelude: toJSON :: ToJSON a => a -> Value
- Network.Google.Prelude: toJSONList :: ToJSON a => [a] -> Value
- Network.Google.Prelude: toJSONText :: ToHttpApiData a => a -> Value
- Network.Google.Prelude: toLink :: HasLink endpoint => (Link -> a) -> Proxy endpoint -> Link -> MkLink endpoint a
- Network.Google.Prelude: toQueryParam :: ToHttpApiData a => a -> Text
- Network.Google.Prelude: toRational :: Real a => a -> Rational
- Network.Google.Prelude: toSourceIO :: ToSourceIO chunk a => a -> SourceIO chunk
- Network.Google.Prelude: toUrlPiece :: ToHttpApiData a => a -> Text
- Network.Google.Prelude: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
- Network.Google.Prelude: truncate :: (RealFrac a, Integral b) => a -> b
- Network.Google.Prelude: type Capture = Capture' ([] :: [Type])
- Network.Google.Prelude: type Delete = Verb DELETE 200
- Network.Google.Prelude: type DeleteAccepted = Verb DELETE 202
- Network.Google.Prelude: type DeleteNoContent = Verb DELETE 204
- Network.Google.Prelude: type DeleteNonAuthoritative = Verb DELETE 203
- Network.Google.Prelude: type Elem (e :: t) (es :: [t]) = ElemGo e es es
- Network.Google.Prelude: type FilePath = String
- Network.Google.Prelude: type Get = Verb GET 200
- Network.Google.Prelude: type GetAccepted = Verb GET 202
- Network.Google.Prelude: type GetNoContent = Verb GET 204
- Network.Google.Prelude: type GetNonAuthoritative = Verb GET 203
- Network.Google.Prelude: type GetPartialContent = Verb GET 206
- Network.Google.Prelude: type GetResetContent = Verb GET 205
- Network.Google.Prelude: type IOError = IOException
- Network.Google.Prelude: type JSONValue = Value
- Network.Google.Prelude: type Lens' s a = Lens s s a a
- Network.Google.Prelude: type Patch = Verb PATCH 200
- Network.Google.Prelude: type PatchAccepted = Verb PATCH 202
- Network.Google.Prelude: type PatchNoContent = Verb PATCH 204
- Network.Google.Prelude: type PatchNonAuthoritative = Verb PATCH 203
- Network.Google.Prelude: type Post = Verb POST 200
- Network.Google.Prelude: type PostAccepted = Verb POST 202
- Network.Google.Prelude: type PostCreated = Verb POST 201
- Network.Google.Prelude: type PostNoContent = Verb POST 204
- Network.Google.Prelude: type PostNonAuthoritative = Verb POST 203
- Network.Google.Prelude: type PostResetContent = Verb POST 205
- Network.Google.Prelude: type Put = Verb PUT 200
- Network.Google.Prelude: type PutAccepted = Verb PUT 202
- Network.Google.Prelude: type PutCreated = Verb PUT 201
- Network.Google.Prelude: type PutNoContent = Verb PUT 204
- Network.Google.Prelude: type PutNonAuthoritative = Verb PUT 203
- Network.Google.Prelude: type QueryParam = QueryParam' Optional : Strict : ([] :: [Type])
- Network.Google.Prelude: type Rational = Ratio Integer
- Network.Google.Prelude: type ReadS a = String -> [(a, String)]
- Network.Google.Prelude: type ReqBody = ReqBody' Required : Strict : ([] :: [Type])
- Network.Google.Prelude: type ShowS = String -> String
- Network.Google.Prelude: type SourceIO = SourceT IO
- Network.Google.Prelude: type Stream = ConduitM () ByteString (ResourceT IO) ()
- Network.Google.Prelude: type StreamBody = StreamBody' ([] :: [Type])
- Network.Google.Prelude: type StreamGet = Stream GET 200
- Network.Google.Prelude: type StreamPost = Stream POST 200
- Network.Google.Prelude: type String = [Char]
- Network.Google.Prelude: type Vault = Vault RealWorld
- Network.Google.Prelude: type family Scopes a :: [Symbol];
- Network.Google.Prelude: uncurry :: () => (a -> b -> c) -> (a, b) -> c
- Network.Google.Prelude: undefined :: HasCallStack => a
- Network.Google.Prelude: unlines :: [String] -> String
- Network.Google.Prelude: until :: () => (a -> Bool) -> (a -> a) -> a -> a
- Network.Google.Prelude: unwords :: [String] -> String
- Network.Google.Prelude: unzip :: () => [(a, b)] -> ([a], [b])
- Network.Google.Prelude: unzip3 :: () => [(a, b, c)] -> ([a], [b], [c])
- Network.Google.Prelude: userError :: String -> IOError
- Network.Google.Prelude: withObject :: () => String -> (Object -> Parser a) -> Value -> Parser a
- Network.Google.Prelude: words :: String -> [String]
- Network.Google.Prelude: writeFile :: FilePath -> String -> IO ()
- Network.Google.Prelude: zip :: () => [a] -> [b] -> [(a, b)]
- Network.Google.Prelude: zip3 :: () => [a] -> [b] -> [c] -> [(a, b, c)]
- Network.Google.Prelude: zipWith :: () => (a -> b -> c) -> [a] -> [b] -> [c]
- Network.Google.Prelude: zipWith3 :: () => (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
- Network.Google.Prelude: }
- Network.Google.Types: AccessToken :: Text -> AccessToken
- Network.Google.Types: AltJSON :: AltJSON
- Network.Google.Types: AltMedia :: AltMedia
- Network.Google.Types: ClientId :: Text -> ClientId
- Network.Google.Types: GBody :: !MediaType -> !RequestBody -> GBody
- Network.Google.Types: GClient :: !Maybe MediaType -> !Method -> !Status -> Bool -> !ServiceConfig -> !Request -> !Stream -> ResourceT IO (Either (String, ByteString) a) -> GClient a
- Network.Google.Types: GFieldMask :: Text -> GFieldMask
- Network.Google.Types: GSecret :: Text -> GSecret
- Network.Google.Types: MediaDownload :: a -> MediaDownload a
- Network.Google.Types: MediaUpload :: a -> GBody -> MediaUpload a
- Network.Google.Types: Multipart :: Multipart
- Network.Google.Types: OAuthScope :: Text -> OAuthScope
- Network.Google.Types: RefreshToken :: Text -> RefreshToken
- Network.Google.Types: Request :: !Builder -> !DList (ByteString, Maybe ByteString) -> !DList (HeaderName, ByteString) -> ![GBody] -> Request
- Network.Google.Types: Seconds :: Int -> Seconds
- Network.Google.Types: SerializeError :: SerializeError -> Error
- Network.Google.Types: SerializeError' :: !ServiceId -> [Header] -> !Status -> !String -> !Maybe ByteString -> SerializeError
- Network.Google.Types: ServiceConfig :: !ServiceId -> !ByteString -> !Builder -> !Int -> !Bool -> !Maybe Seconds -> ServiceConfig
- Network.Google.Types: ServiceError :: ServiceError -> Error
- Network.Google.Types: ServiceError' :: !ServiceId -> !Status -> ![Header] -> !Maybe ByteString -> ServiceError
- Network.Google.Types: ServiceId :: Text -> ServiceId
- Network.Google.Types: TransportError :: HttpException -> Error
- Network.Google.Types: [_cliAccept] :: GClient a -> !Maybe MediaType
- Network.Google.Types: [_cliCheck] :: GClient a -> !Status -> Bool
- Network.Google.Types: [_cliMethod] :: GClient a -> !Method
- Network.Google.Types: [_cliRequest] :: GClient a -> !Request
- Network.Google.Types: [_cliResponse] :: GClient a -> !Stream -> ResourceT IO (Either (String, ByteString) a)
- Network.Google.Types: [_cliService] :: GClient a -> !ServiceConfig
- Network.Google.Types: [_rqBody] :: Request -> ![GBody]
- Network.Google.Types: [_rqHeaders] :: Request -> !DList (HeaderName, ByteString)
- Network.Google.Types: [_rqPath] :: Request -> !Builder
- Network.Google.Types: [_rqQuery] :: Request -> !DList (ByteString, Maybe ByteString)
- Network.Google.Types: [_serializeBody] :: SerializeError -> !Maybe ByteString
- Network.Google.Types: [_serializeHeaders] :: SerializeError -> [Header]
- Network.Google.Types: [_serializeId] :: SerializeError -> !ServiceId
- Network.Google.Types: [_serializeMessage] :: SerializeError -> !String
- Network.Google.Types: [_serializeStatus] :: SerializeError -> !Status
- Network.Google.Types: [_serviceBody] :: ServiceError -> !Maybe ByteString
- Network.Google.Types: [_serviceHeaders] :: ServiceError -> ![Header]
- Network.Google.Types: [_serviceId] :: ServiceError -> !ServiceId
- Network.Google.Types: [_serviceStatus] :: ServiceError -> !Status
- Network.Google.Types: [_svcHost] :: ServiceConfig -> !ByteString
- Network.Google.Types: [_svcId] :: ServiceConfig -> !ServiceId
- Network.Google.Types: [_svcPath] :: ServiceConfig -> !Builder
- Network.Google.Types: [_svcPort] :: ServiceConfig -> !Int
- Network.Google.Types: [_svcSecure] :: ServiceConfig -> !Bool
- Network.Google.Types: [_svcTimeout] :: ServiceConfig -> !Maybe Seconds
- Network.Google.Types: _Coerce :: (Coercible a b, Coercible b a) => Iso' a b
- Network.Google.Types: _Default :: Monoid a => Iso' (Maybe a) a
- Network.Google.Types: _Error :: AsError a => Prism' a Error
- Network.Google.Types: _SerializeError :: AsError a => Prism' a SerializeError
- Network.Google.Types: _ServiceError :: AsError a => Prism' a ServiceError
- Network.Google.Types: _TransportError :: AsError a => Prism' a HttpException
- Network.Google.Types: appendHeader :: Request -> HeaderName -> Maybe Text -> Request
- Network.Google.Types: appendPath :: Request -> Builder -> Request
- Network.Google.Types: appendPaths :: ToHttpApiData a => Request -> [a] -> Request
- Network.Google.Types: appendQuery :: Request -> ByteString -> Maybe Text -> Request
- Network.Google.Types: bodyContentType :: Lens' GBody MediaType
- Network.Google.Types: buildClient :: GoogleClient fn => Proxy fn -> Request -> Fn fn
- Network.Google.Types: buildSymbol :: forall n proxy. KnownSymbol n => proxy n -> Builder
- Network.Google.Types: buildText :: ToHttpApiData a => a -> Builder
- Network.Google.Types: byteSymbol :: forall n proxy. KnownSymbol n => proxy n -> ByteString
- Network.Google.Types: class AsError a
- Network.Google.Types: class Accept c => FromStream c a
- Network.Google.Types: class GoogleClient fn where {
- Network.Google.Types: class GoogleRequest a where {
- Network.Google.Types: class Accept c => ToBody c a
- Network.Google.Types: clientService :: Lens' (GClient a) ServiceConfig
- Network.Google.Types: data AltJSON
- Network.Google.Types: data AltMedia
- Network.Google.Types: data CaptureMode (s :: Symbol) (m :: Symbol) a
- Network.Google.Types: data Captures (s :: Symbol) a
- Network.Google.Types: data Error
- Network.Google.Types: data GBody
- Network.Google.Types: data GClient a
- Network.Google.Types: data MediaUpload a
- Network.Google.Types: data Multipart
- Network.Google.Types: data MultipartRelated (cs :: [*]) m
- Network.Google.Types: data Request
- Network.Google.Types: data SerializeError
- Network.Google.Types: data ServiceConfig
- Network.Google.Types: data ServiceError
- Network.Google.Types: defaultService :: ServiceId -> ByteString -> ServiceConfig
- Network.Google.Types: discard :: Method -> [Int] -> Request -> ServiceConfig -> GClient ()
- Network.Google.Types: fromStream :: FromStream c a => Proxy c -> Stream -> ResourceT IO (Either (String, ByteString) a)
- Network.Google.Types: gClient :: (Stream -> ResourceT IO (Either (String, ByteString) a)) -> Maybe MediaType -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, GHC.TypeLits.KnownSymbol m, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Network.Google.Types.CaptureMode s m a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (s Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Network.Google.Types.Captures s a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Servant.API.Capture.Capture s a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Servant.API.Header.Header s a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Servant.API.QueryParam.QueryParam s a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Servant.API.QueryParam.QueryParams s a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (Network.Google.Types.FromStream c a, cs' Data.Type.Equality.~ (c : cs)) => Network.Google.Types.GoogleClient (Servant.API.Verbs.Post cs' a)
- Network.Google.Types: instance (Network.Google.Types.GoogleClient a, Network.Google.Types.GoogleClient b) => Network.Google.Types.GoogleClient (a Servant.API.Alternative.:<|> b)
- Network.Google.Types: instance (Network.Google.Types.ToBody c a, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Servant.API.ReqBody.ReqBody (c : cs) a Servant.API.Sub.:> fn)
- Network.Google.Types: instance (Network.Google.Types.ToBody c m, Network.Google.Types.GoogleClient fn) => Network.Google.Types.GoogleClient (Network.Google.Types.MultipartRelated (c : cs) m Servant.API.Sub.:> fn)
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.AccessToken
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.ClientId
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.GFieldMask
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.GSecret
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.OAuthScope
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.RefreshToken
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON Network.Google.Types.ServiceId
- Network.Google.Types: instance Data.Aeson.Types.FromJSON.FromJSON a => Network.Google.Types.FromStream Servant.API.ContentTypes.JSON a
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.AccessToken
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.ClientId
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.GFieldMask
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.GSecret
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.OAuthScope
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.RefreshToken
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON Network.Google.Types.ServiceId
- Network.Google.Types: instance Data.Aeson.Types.ToJSON.ToJSON a => Network.Google.Types.ToBody Servant.API.ContentTypes.JSON a
- Network.Google.Types: instance Data.Data.Data Network.Google.Types.GFieldMask
- Network.Google.Types: instance Data.Data.Data Network.Google.Types.Seconds
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.AccessToken
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.ClientId
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.GBody
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.GFieldMask
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.GSecret
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.OAuthScope
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.RefreshToken
- Network.Google.Types: instance Data.String.IsString Network.Google.Types.ServiceId
- Network.Google.Types: instance GHC.Base.Monoid Network.Google.Types.Request
- Network.Google.Types: instance GHC.Base.Semigroup Network.Google.Types.Request
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.AccessToken
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.AltJSON
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.AltMedia
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.ClientId
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.GFieldMask
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.GSecret
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.Multipart
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.OAuthScope
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.RefreshToken
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.SerializeError
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.ServiceError
- Network.Google.Types: instance GHC.Classes.Eq Network.Google.Types.ServiceId
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.AccessToken
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.AltJSON
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.AltMedia
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.ClientId
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.GFieldMask
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.GSecret
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.Multipart
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.OAuthScope
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.RefreshToken
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Classes.Ord Network.Google.Types.ServiceId
- Network.Google.Types: instance GHC.Enum.Bounded Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Enum.Enum Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Exception.Type.Exception Network.Google.Types.Error
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.AccessToken
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.AltJSON
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.AltMedia
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.ClientId
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.GFieldMask
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.GSecret
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.Multipart
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.OAuthScope
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.RefreshToken
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Generics.Generic Network.Google.Types.ServiceId
- Network.Google.Types: instance GHC.Num.Num Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.AccessToken
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.AltJSON
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.AltMedia
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.ClientId
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.GFieldMask
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.GSecret
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.Multipart
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.OAuthScope
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.RefreshToken
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Read.Read Network.Google.Types.ServiceId
- Network.Google.Types: instance GHC.Real.Integral Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Real.Real Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.AccessToken
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.AltJSON
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.AltMedia
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.ClientId
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.Error
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.GFieldMask
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.GSecret
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.Multipart
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.OAuthScope
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.RefreshToken
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.Seconds
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.SerializeError
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.ServiceError
- Network.Google.Types: instance GHC.Show.Show Network.Google.Types.ServiceId
- Network.Google.Types: instance Network.Google.Types.AsError GHC.Exception.Type.SomeException
- Network.Google.Types: instance Network.Google.Types.AsError Network.Google.Types.Error
- Network.Google.Types: instance Network.Google.Types.FromStream Servant.API.ContentTypes.OctetStream Network.Google.Types.Stream
- Network.Google.Types: instance Network.Google.Types.FromStream c a => Network.Google.Types.GoogleClient (Servant.API.Verbs.Delete (c : cs) a)
- Network.Google.Types: instance Network.Google.Types.FromStream c a => Network.Google.Types.GoogleClient (Servant.API.Verbs.Get (c : cs) a)
- Network.Google.Types: instance Network.Google.Types.FromStream c a => Network.Google.Types.GoogleClient (Servant.API.Verbs.Patch (c : cs) a)
- Network.Google.Types: instance Network.Google.Types.FromStream c a => Network.Google.Types.GoogleClient (Servant.API.Verbs.Put (c : cs) a)
- Network.Google.Types: instance Network.Google.Types.GoogleClient (Servant.API.Verbs.Delete (c : cs) ())
- Network.Google.Types: instance Network.Google.Types.GoogleClient (Servant.API.Verbs.Get (c : cs) ())
- Network.Google.Types: instance Network.Google.Types.GoogleClient (Servant.API.Verbs.Patch (c : cs) ())
- Network.Google.Types: instance Network.Google.Types.GoogleClient (Servant.API.Verbs.Post cs ())
- Network.Google.Types: instance Network.Google.Types.GoogleClient (Servant.API.Verbs.Put (c : cs) ())
- Network.Google.Types: instance Network.Google.Types.GoogleClient fn => Network.Google.Types.GoogleClient (Network.Google.Types.AltMedia Servant.API.Sub.:> fn)
- Network.Google.Types: instance Network.Google.Types.ToBody Servant.API.ContentTypes.OctetStream Data.ByteString.Internal.ByteString
- Network.Google.Types: instance Network.Google.Types.ToBody Servant.API.ContentTypes.OctetStream Data.ByteString.Lazy.Internal.ByteString
- Network.Google.Types: instance Network.Google.Types.ToBody Servant.API.ContentTypes.PlainText Data.ByteString.Internal.ByteString
- Network.Google.Types: instance Network.Google.Types.ToBody Servant.API.ContentTypes.PlainText Data.ByteString.Lazy.Internal.ByteString
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.AccessToken
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.ClientId
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.GFieldMask
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.GSecret
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.OAuthScope
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.RefreshToken
- Network.Google.Types: instance Web.Internal.HttpApiData.FromHttpApiData Network.Google.Types.ServiceId
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.AccessToken
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.AltJSON
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.AltMedia
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.ClientId
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.GFieldMask
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.GSecret
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.Multipart
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.OAuthScope
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.RefreshToken
- Network.Google.Types: instance Web.Internal.HttpApiData.ToHttpApiData Network.Google.Types.ServiceId
- Network.Google.Types: microseconds :: Seconds -> Int
- Network.Google.Types: mime :: FromStream c a => Proxy c -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
- Network.Google.Types: newtype AccessToken
- Network.Google.Types: newtype ClientId
- Network.Google.Types: newtype GFieldMask
- Network.Google.Types: newtype GSecret
- Network.Google.Types: newtype MediaDownload a
- Network.Google.Types: newtype OAuthScope
- Network.Google.Types: newtype RefreshToken
- Network.Google.Types: newtype Seconds
- Network.Google.Types: newtype ServiceId
- Network.Google.Types: requestClient :: GoogleRequest a => a -> GClient (Rs a)
- Network.Google.Types: seconds :: Seconds -> Int
- Network.Google.Types: serviceHost :: Lens' ServiceConfig ByteString
- Network.Google.Types: servicePath :: Lens' ServiceConfig Builder
- Network.Google.Types: servicePort :: Lens' ServiceConfig Int
- Network.Google.Types: serviceSecure :: Lens' ServiceConfig Bool
- Network.Google.Types: serviceTimeout :: Lens' ServiceConfig (Maybe Seconds)
- Network.Google.Types: setBody :: Request -> [GBody] -> Request
- Network.Google.Types: sinkLBS :: Stream -> ResourceT IO ByteString
- Network.Google.Types: toBody :: ToBody c a => Proxy c -> a -> GBody
- Network.Google.Types: type Stream = ConduitM () ByteString (ResourceT IO) ()
- Network.Google.Types: type family Fn fn :: *;
- Network.Google.Types: }
+ Gogol.Data.Base64: Base64 :: ByteString -> Base64
+ Gogol.Data.Base64: [fromBase64] :: Base64 -> ByteString
+ Gogol.Data.Base64: _Base64 :: Iso' Base64 ByteString
+ Gogol.Data.Base64: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance Data.Hashable.Class.Hashable Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance GHC.Classes.Eq Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance GHC.Classes.Ord Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance GHC.Generics.Generic Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance GHC.Read.Read Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance GHC.Show.Show Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Data.Base64.Base64
+ Gogol.Data.Base64: newtype Base64
+ Gogol.Data.JSON: ($dmfromJSONKey) :: (FromJSONKey a, FromJSON a) => FromJSONKeyFunction a
+ Gogol.Data.JSON: ($dmfromJSONKeyList) :: (FromJSONKey a, FromJSON a) => FromJSONKeyFunction [a]
+ Gogol.Data.JSON: ($dmparseJSON) :: (FromJSON a, Generic a, GFromJSON Zero (Rep a)) => Value -> Parser a
+ Gogol.Data.JSON: ($dmtoJSON) :: (ToJSON a, Generic a, GToJSON' Value Zero (Rep a)) => a -> Value
+ Gogol.Data.JSON: ($dmtoJSONKey) :: (ToJSONKey a, ToJSON a) => ToJSONKeyFunction a
+ Gogol.Data.JSON: ($dmtoJSONKeyList) :: (ToJSONKey a, ToJSON a) => ToJSONKeyFunction [a]
+ Gogol.Data.JSON: (.!=) :: Parser (Maybe a) -> a -> Parser a
+ Gogol.Data.JSON: (.:) :: FromJSON a => Object -> Key -> Parser a
+ Gogol.Data.JSON: (.:?) :: FromJSON a => Object -> Key -> Parser (Maybe a)
+ Gogol.Data.JSON: (.=) :: (KeyValue e kv, ToJSON v) => Key -> v -> kv
+ Gogol.Data.JSON: AsText :: a -> AsText a
+ Gogol.Data.JSON: [fromAsText] :: AsText a -> a
+ Gogol.Data.JSON: class FromJSON a
+ Gogol.Data.JSON: class FromJSONKey a
+ Gogol.Data.JSON: class ToJSON a
+ Gogol.Data.JSON: class ToJSONKey a
+ Gogol.Data.JSON: data Value
+ Gogol.Data.JSON: emptyObject :: Value
+ Gogol.Data.JSON: fromJSONKey :: FromJSONKey a => FromJSONKeyFunction a
+ Gogol.Data.JSON: fromJSONKeyList :: FromJSONKey a => FromJSONKeyFunction [a]
+ Gogol.Data.JSON: infixr 8 .=
+ Gogol.Data.JSON: instance (Data.Aeson.Types.FromJSON.FromJSON a, Web.Internal.HttpApiData.FromHttpApiData a) => Data.Aeson.Types.FromJSON.FromJSON (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Classes.Eq a => GHC.Classes.Eq (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Classes.Ord a => GHC.Classes.Ord (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Num.Num a => GHC.Num.Num (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Read.Read a => GHC.Read.Read (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Real.Fractional a => GHC.Real.Fractional (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance GHC.Show.Show a => GHC.Show.Show (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance Web.Internal.HttpApiData.FromHttpApiData a => Web.Internal.HttpApiData.FromHttpApiData (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance Web.Internal.HttpApiData.ToHttpApiData a => Data.Aeson.Types.ToJSON.ToJSON (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: instance Web.Internal.HttpApiData.ToHttpApiData a => Web.Internal.HttpApiData.ToHttpApiData (Gogol.Data.JSON.AsText a)
+ Gogol.Data.JSON: newtype AsText a
+ Gogol.Data.JSON: object :: [Pair] -> Value
+ Gogol.Data.JSON: omitField :: ToJSON a => a -> Bool
+ Gogol.Data.JSON: omittedField :: FromJSON a => Maybe a
+ Gogol.Data.JSON: parseJSON :: FromJSON a => Value -> Parser a
+ Gogol.Data.JSON: parseJSONList :: FromJSON a => Value -> Parser [a]
+ Gogol.Data.JSON: parseJSONObject :: FromJSON a => KeyMap Value -> Parser a
+ Gogol.Data.JSON: parseJSONText :: FromHttpApiData a => String -> Value -> Parser a
+ Gogol.Data.JSON: toEncoding :: ToJSON a => a -> Encoding
+ Gogol.Data.JSON: toEncodingList :: ToJSON a => [a] -> Encoding
+ Gogol.Data.JSON: toJSON :: ToJSON a => a -> Value
+ Gogol.Data.JSON: toJSONKey :: ToJSONKey a => ToJSONKeyFunction a
+ Gogol.Data.JSON: toJSONKeyList :: ToJSONKey a => ToJSONKeyFunction [a]
+ Gogol.Data.JSON: toJSONList :: ToJSON a => [a] -> Value
+ Gogol.Data.JSON: toJSONText :: ToHttpApiData a => a -> Value
+ Gogol.Data.JSON: withObject :: String -> (Object -> Parser a) -> Value -> Parser a
+ Gogol.Data.Time: Date :: Day -> Date
+ Gogol.Data.Time: DateTime :: UTCTime -> DateTime
+ Gogol.Data.Time: Duration :: Scientific -> Duration
+ Gogol.Data.Time: Time :: TimeOfDay -> Time
+ Gogol.Data.Time: [fromTime] :: Time -> TimeOfDay
+ Gogol.Data.Time: [unDateTime] :: DateTime -> UTCTime
+ Gogol.Data.Time: [unDate] :: Date -> Day
+ Gogol.Data.Time: [unDuration] :: Duration -> Scientific
+ Gogol.Data.Time: _Date :: Iso' Date Day
+ Gogol.Data.Time: _DateTime :: Iso' DateTime UTCTime
+ Gogol.Data.Time: _Duration :: Iso' Duration Scientific
+ Gogol.Data.Time: _Time :: Iso' Time TimeOfDay
+ Gogol.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Data.Time.Date
+ Gogol.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Data.Time.Time
+ Gogol.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Data.Time.Date
+ Gogol.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Data.Time.Time
+ Gogol.Data.Time: instance GHC.Classes.Eq Gogol.Data.Time.Date
+ Gogol.Data.Time: instance GHC.Classes.Eq Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance GHC.Classes.Eq Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance GHC.Classes.Eq Gogol.Data.Time.Time
+ Gogol.Data.Time: instance GHC.Classes.Ord Gogol.Data.Time.Date
+ Gogol.Data.Time: instance GHC.Classes.Ord Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance GHC.Classes.Ord Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance GHC.Classes.Ord Gogol.Data.Time.Time
+ Gogol.Data.Time: instance GHC.Generics.Generic Gogol.Data.Time.Date
+ Gogol.Data.Time: instance GHC.Generics.Generic Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance GHC.Generics.Generic Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance GHC.Generics.Generic Gogol.Data.Time.Time
+ Gogol.Data.Time: instance GHC.Read.Read Gogol.Data.Time.Date
+ Gogol.Data.Time: instance GHC.Read.Read Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance GHC.Read.Read Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance GHC.Read.Read Gogol.Data.Time.Time
+ Gogol.Data.Time: instance GHC.Show.Show Gogol.Data.Time.Date
+ Gogol.Data.Time: instance GHC.Show.Show Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance GHC.Show.Show Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance GHC.Show.Show Gogol.Data.Time.Time
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Data.Time.Date
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Data.Time.Time
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Data.Time.Date
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Data.Time.DateTime
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Data.Time.Duration
+ Gogol.Data.Time: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Data.Time.Time
+ Gogol.Data.Time: newtype Date
+ Gogol.Data.Time: newtype DateTime
+ Gogol.Data.Time: newtype Duration
+ Gogol.Data.Time: newtype Time
+ Gogol.Prelude: (#) :: AReview t b -> b -> t
+ Gogol.Prelude: ($dmhashWithSalt) :: (Hashable a, Generic a, GHashable Zero (Rep a)) => Int -> a -> Int
+ Gogol.Prelude: (:<|>) :: a -> b -> (:<|>) a b
+ Gogol.Prelude: (<&>) :: Functor f => f a -> (a -> b) -> f b
+ Gogol.Prelude: (^.) :: s -> Getting a s a -> a
+ Gogol.Prelude: ArrayElemParam :: String -> Text -> Param
+ Gogol.Prelude: BasicAuthData :: !ByteString -> !ByteString -> BasicAuthData
+ Gogol.Prelude: CONNECT :: StdMethod
+ Gogol.Prelude: DELETE :: StdMethod
+ Gogol.Prelude: EmptyAPI :: EmptyAPI
+ Gogol.Prelude: FlagParam :: String -> Param
+ Gogol.Prelude: GET :: StdMethod
+ Gogol.Prelude: HEAD :: StdMethod
+ Gogol.Prelude: HttpVersion :: !Int -> !Int -> HttpVersion
+ Gogol.Prelude: LinkArrayElementBracket :: LinkArrayElementStyle
+ Gogol.Prelude: LinkArrayElementPlain :: LinkArrayElementStyle
+ Gogol.Prelude: NoContent :: NoContent
+ Gogol.Prelude: NotSecure :: IsSecure
+ Gogol.Prelude: OPTIONS :: StdMethod
+ Gogol.Prelude: PATCH :: StdMethod
+ Gogol.Prelude: POST :: StdMethod
+ Gogol.Prelude: PUT :: StdMethod
+ Gogol.Prelude: Secure :: IsSecure
+ Gogol.Prelude: SingleParam :: String -> Text -> Param
+ Gogol.Prelude: TRACE :: StdMethod
+ Gogol.Prelude: URI :: String -> Maybe URIAuth -> String -> String -> String -> URI
+ Gogol.Prelude: WithStatus :: a -> WithStatus (k :: Nat) a
+ Gogol.Prelude: [HCons] :: forall (h :: Symbol) x (xs :: [Type]) (mods :: [Type]). ResponseHeader h x -> HList xs -> HList (Header' mods h x ': xs)
+ Gogol.Prelude: [HNil] :: HList ('[] :: [Type])
+ Gogol.Prelude: [SFalse] :: SBool 'False
+ Gogol.Prelude: [STrue] :: SBool 'True
+ Gogol.Prelude: [basicAuthPassword] :: BasicAuthData -> !ByteString
+ Gogol.Prelude: [basicAuthUsername] :: BasicAuthData -> !ByteString
+ Gogol.Prelude: [httpMajor] :: HttpVersion -> !Int
+ Gogol.Prelude: [httpMinor] :: HttpVersion -> !Int
+ Gogol.Prelude: [uriAuthority] :: URI -> Maybe URIAuth
+ Gogol.Prelude: [uriFragment] :: URI -> String
+ Gogol.Prelude: [uriPath] :: URI -> String
+ Gogol.Prelude: [uriQuery] :: URI -> String
+ Gogol.Prelude: [uriScheme] :: URI -> String
+ Gogol.Prelude: _Just :: forall a b p f. (Choice p, Applicative f) => p a (f b) -> p (Maybe a) (f (Maybe b))
+ Gogol.Prelude: addHeader :: forall (h :: Symbol) v orig new. AddHeader '[Optional, Strict] h v orig new => v -> orig -> new
+ Gogol.Prelude: addHeader' :: forall (mods :: [Type]) (h :: Symbol) v orig new. AddHeader mods h v orig new => v -> orig -> new
+ Gogol.Prelude: allFieldLinks :: (HasLink (ToServantApi routes), GenericServant routes (AsLink Link), ToServant routes (AsLink Link) ~ MkLink (ToServantApi routes) Link) => routes (AsLink Link)
+ Gogol.Prelude: allFieldLinks' :: (HasLink (ToServantApi routes), GenericServant routes (AsLink a), ToServant routes (AsLink a) ~ MkLink (ToServantApi routes) a) => (Link -> a) -> routes (AsLink a)
+ Gogol.Prelude: allLinks :: forall {k} (api :: k). HasLink api => Proxy api -> MkLink api Link
+ Gogol.Prelude: allLinks' :: forall {k} (api :: k) a. HasLink api => (Link -> a) -> Proxy api -> MkLink api a
+ Gogol.Prelude: buildHeadersTo :: BuildHeadersTo hs => [Header] -> HList hs
+ Gogol.Prelude: class Accept (ctype :: k)
+ Gogol.Prelude: class AddHeader (mods :: [Type]) (h :: Symbol) v orig new | mods h v orig -> new, new -> mods, new -> h, new -> v, new -> orig
+ Gogol.Prelude: class FragmentUnique api => AtMostOneFragment api
+ Gogol.Prelude: class BuildHeadersTo (hs :: [Type])
+ Gogol.Prelude: class Typeable a => Data a
+ Gogol.Prelude: class FramingRender (strategy :: k)
+ Gogol.Prelude: class FramingUnrender (strategy :: k)
+ Gogol.Prelude: class FromHttpApiData a
+ Gogol.Prelude: class FromSourceIO chunk a | a -> chunk
+ Gogol.Prelude: class GServantProduct (f :: k -> Type)
+ Gogol.Prelude: class Generic a
+ Gogol.Prelude: class GenericMode (mode :: k) where {
+ Gogol.Prelude: class GetHeaders ls
+ Gogol.Prelude: class HasLink (endpoint :: k) where {
+ Gogol.Prelude: class HasResponseHeader (h :: Symbol) a (headers :: [Type])
+ Gogol.Prelude: class KnownStatus StatusOf a => HasStatus a where {
+ Gogol.Prelude: class Eq a => Hashable a
+ Gogol.Prelude: class Accept ctype => MimeRender (ctype :: k) a
+ Gogol.Prelude: class Accept ctype => MimeUnrender (ctype :: k) a
+ Gogol.Prelude: class ReflectMethod (a :: k)
+ Gogol.Prelude: class SBoolI (b :: Bool)
+ Gogol.Prelude: class ToHttpApiData a
+ Gogol.Prelude: class ToSourceIO chunk a | a -> chunk
+ Gogol.Prelude: class Typeable (a :: k)
+ Gogol.Prelude: contentType :: Accept ctype => Proxy ctype -> MediaType
+ Gogol.Prelude: contentTypes :: Accept ctype => Proxy ctype -> NonEmpty MediaType
+ Gogol.Prelude: data (path :: k) :> a
+ Gogol.Prelude: data AsApi
+ Gogol.Prelude: data AsLink a
+ Gogol.Prelude: data AuthProtect (tag :: k)
+ Gogol.Prelude: data BasicAuth (realm :: Symbol) userData
+ Gogol.Prelude: data BasicAuthData
+ Gogol.Prelude: data ByteString
+ Gogol.Prelude: data Capture' (mods :: [Type]) (sym :: Symbol) a
+ Gogol.Prelude: data CaptureAll (sym :: Symbol) a
+ Gogol.Prelude: data Day
+ Gogol.Prelude: data DeepQuery (sym :: Symbol) a
+ Gogol.Prelude: data Description (sym :: Symbol)
+ Gogol.Prelude: data EmptyAPI
+ Gogol.Prelude: data FormUrlEncoded
+ Gogol.Prelude: data Fragment a
+ Gogol.Prelude: data HList (a :: [Type])
+ Gogol.Prelude: data HashMap k v
+ Gogol.Prelude: data Header' (mods :: [Type]) (sym :: Symbol) a
+ Gogol.Prelude: data HttpVersion
+ Gogol.Prelude: data Int32
+ Gogol.Prelude: data Int64
+ Gogol.Prelude: data IsSecure
+ Gogol.Prelude: data JSON
+ Gogol.Prelude: data Lenient
+ Gogol.Prelude: data LinkArrayElementStyle
+ Gogol.Prelude: data NamedRoutes (api :: Type -> Type)
+ Gogol.Prelude: data Natural
+ Gogol.Prelude: data NetstringFraming
+ Gogol.Prelude: data NewlineFraming
+ Gogol.Prelude: data NoContent
+ Gogol.Prelude: data NoContentVerb (method :: k1)
+ Gogol.Prelude: data NoFraming
+ Gogol.Prelude: data OctetStream
+ Gogol.Prelude: data Optional
+ Gogol.Prelude: data Param
+ Gogol.Prelude: data PlainText
+ Gogol.Prelude: data QueryFlag (sym :: Symbol)
+ Gogol.Prelude: data QueryParam' (mods :: [Type]) (sym :: Symbol) a
+ Gogol.Prelude: data QueryParams (sym :: Symbol) a
+ Gogol.Prelude: data QueryString
+ Gogol.Prelude: data Raw
+ Gogol.Prelude: data RawM
+ Gogol.Prelude: data RemoteHost
+ Gogol.Prelude: data ReqBody' (mods :: [Type]) (contentTypes :: [Type]) a
+ Gogol.Prelude: data RequestBody
+ Gogol.Prelude: data Required
+ Gogol.Prelude: data SBool (b :: Bool)
+ Gogol.Prelude: data Scientific
+ Gogol.Prelude: data StdMethod
+ Gogol.Prelude: data StreamBody' (mods :: [Type]) framing contentType a
+ Gogol.Prelude: data Strict
+ Gogol.Prelude: data Summary (sym :: Symbol)
+ Gogol.Prelude: data Text
+ Gogol.Prelude: data TimeOfDay
+ Gogol.Prelude: data URI
+ Gogol.Prelude: data UTCTime
+ Gogol.Prelude: data UVerb (method :: StdMethod) (contentTypes :: [Type]) (as :: [Type])
+ Gogol.Prelude: data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [Type]) a
+ Gogol.Prelude: data WithNamedContext (name :: Symbol) (subContext :: [Type]) (subApi :: k)
+ Gogol.Prelude: data WithResource (res :: k)
+ Gogol.Prelude: data Word32
+ Gogol.Prelude: data Word64
+ Gogol.Prelude: data Word8
+ Gogol.Prelude: data a :<|> b
+ Gogol.Prelude: fieldLink :: (IsElem endpoint (ToServantApi routes), HasLink endpoint, GenericServant routes AsApi) => (routes AsApi -> endpoint) -> MkLink endpoint Link
+ Gogol.Prelude: fieldLink' :: forall routes endpoint a. (IsElem endpoint (ToServantApi routes), HasLink endpoint, GenericServant routes AsApi) => (Link -> a) -> (routes AsApi -> endpoint) -> MkLink endpoint a
+ Gogol.Prelude: framingRender :: forall (m :: Type -> Type) a. (FramingRender strategy, Monad m) => Proxy strategy -> (a -> ByteString) -> SourceT m a -> SourceT m ByteString
+ Gogol.Prelude: framingUnrender :: forall (m :: Type -> Type) a. (FramingUnrender strategy, Monad m) => Proxy strategy -> (ByteString -> Either String a) -> SourceT m ByteString -> SourceT m a
+ Gogol.Prelude: fromServant :: forall {k} routes (mode :: k). GenericServant routes mode => ToServant routes mode -> routes mode
+ Gogol.Prelude: fromSourceIO :: FromSourceIO chunk a => SourceIO chunk -> IO a
+ Gogol.Prelude: genericApi :: forall (routes :: Type -> Type). GenericServant routes AsApi => Proxy routes -> Proxy (ToServantApi routes)
+ Gogol.Prelude: getHeaders :: GetHeaders ls => ls -> [Header]
+ Gogol.Prelude: getHeadersHList :: Headers ls a -> HList ls
+ Gogol.Prelude: hashWithSalt :: Hashable a => Int -> a -> Int
+ Gogol.Prelude: infixl 0 :-
+ Gogol.Prelude: infixl 1 <&>
+ Gogol.Prelude: infixl 8 ^.
+ Gogol.Prelude: infixr 3 :<|>
+ Gogol.Prelude: infixr 4 :>
+ Gogol.Prelude: infixr 8 #
+ Gogol.Prelude: inject :: UElem x xs => f x -> NS f xs
+ Gogol.Prelude: lens :: (s -> a) -> (s -> b -> t) -> Lens s t a b
+ Gogol.Prelude: linkFragment :: Link -> Fragment'
+ Gogol.Prelude: linkQueryParams :: Link -> [Param]
+ Gogol.Prelude: linkSegments :: Link -> [String]
+ Gogol.Prelude: linkURI :: Link -> URI
+ Gogol.Prelude: linkURI' :: LinkArrayElementStyle -> Link -> URI
+ Gogol.Prelude: lookupResponseHeader :: forall (h :: Symbol) a (headers :: [Type]) r. HasResponseHeader h a headers => Headers headers r -> ResponseHeader h a
+ Gogol.Prelude: mapping :: forall (f :: Type -> Type) (g :: Type -> Type) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
+ Gogol.Prelude: mimeRender :: MimeRender ctype a => Proxy ctype -> a -> ByteString
+ Gogol.Prelude: mimeUnrender :: MimeUnrender ctype a => Proxy ctype -> ByteString -> Either String a
+ Gogol.Prelude: mimeUnrenderWithType :: MimeUnrender ctype a => Proxy ctype -> MediaType -> ByteString -> Either String a
+ Gogol.Prelude: newtype WithStatus (k :: Nat) a
+ Gogol.Prelude: noHeader :: forall (h :: Symbol) v orig new. AddHeader '[Optional, Strict] h v orig new => orig -> new
+ Gogol.Prelude: noHeader' :: forall (mods :: [Type]) (h :: Symbol) v orig new. AddHeader mods h v orig new => orig -> new
+ Gogol.Prelude: parseHeader :: FromHttpApiData a => ByteString -> Either Text a
+ Gogol.Prelude: parseQueryParam :: FromHttpApiData a => Text -> Either Text a
+ Gogol.Prelude: parseUrlPiece :: FromHttpApiData a => Text -> Either Text a
+ Gogol.Prelude: pattern UndecodableHeader :: () => ByteString -> ResponseHeader sym a
+ Gogol.Prelude: pattern MissingHeader :: () => ResponseHeader sym a
+ Gogol.Prelude: reflectMethod :: ReflectMethod a => Proxy a -> Method
+ Gogol.Prelude: safeLink :: (IsElem endpoint api, HasLink endpoint) => Proxy api -> Proxy endpoint -> MkLink endpoint Link
+ Gogol.Prelude: safeLink' :: (IsElem endpoint api, HasLink endpoint) => (Link -> a) -> Proxy api -> Proxy endpoint -> MkLink endpoint a
+ Gogol.Prelude: sbool :: SBoolI b => SBool b
+ Gogol.Prelude: statusOf :: HasStatus a => proxy a -> Status
+ Gogol.Prelude: toEncodedQueryParam :: ToHttpApiData a => a -> Builder
+ Gogol.Prelude: toEncodedUrlPiece :: ToHttpApiData a => a -> Builder
+ Gogol.Prelude: toHeader :: ToHttpApiData a => a -> ByteString
+ Gogol.Prelude: toLink :: HasLink endpoint => (Link -> a) -> Proxy endpoint -> Link -> MkLink endpoint a
+ Gogol.Prelude: toQueryParam :: ToHttpApiData a => a -> Text
+ Gogol.Prelude: toServant :: forall {k} routes (mode :: k). GenericServant routes mode => routes mode -> ToServant routes mode
+ Gogol.Prelude: toSourceIO :: ToSourceIO chunk a => a -> SourceIO chunk
+ Gogol.Prelude: toUrlPiece :: ToHttpApiData a => a -> Text
+ Gogol.Prelude: type (mode :: k) :- api;
+ Gogol.Prelude: type Capture = Capture' '[] :: [Type]
+ Gogol.Prelude: type Delete = Verb 'DELETE 200
+ Gogol.Prelude: type DeleteAccepted = Verb 'DELETE 202
+ Gogol.Prelude: type DeleteNoContent = NoContentVerb 'DELETE
+ Gogol.Prelude: type DeleteNonAuthoritative = Verb 'DELETE 203
+ Gogol.Prelude: type Elem (e :: t) (es :: [t]) = ElemGo e es es
+ Gogol.Prelude: type GenericServant (routes :: k -> Type) (mode :: k) = (GenericMode mode, Generic routes mode, GServantProduct Rep routes mode)
+ Gogol.Prelude: type Get = Verb 'GET 200
+ Gogol.Prelude: type GetAccepted = Verb 'GET 202
+ Gogol.Prelude: type GetNoContent = NoContentVerb 'GET
+ Gogol.Prelude: type GetNonAuthoritative = Verb 'GET 203
+ Gogol.Prelude: type GetPartialContent = Verb 'GET 206
+ Gogol.Prelude: type GetResetContent = Verb 'GET 205
+ Gogol.Prelude: type Lens' s a = Lens s s a a
+ Gogol.Prelude: type MkLink (endpoint :: k) a;
+ Gogol.Prelude: type Patch = Verb 'PATCH 200
+ Gogol.Prelude: type PatchAccepted = Verb 'PATCH 202
+ Gogol.Prelude: type PatchNoContent = NoContentVerb 'PATCH
+ Gogol.Prelude: type PatchNonAuthoritative = Verb 'PATCH 203
+ Gogol.Prelude: type Post = Verb 'POST 200
+ Gogol.Prelude: type PostAccepted = Verb 'POST 202
+ Gogol.Prelude: type PostCreated = Verb 'POST 201
+ Gogol.Prelude: type PostNoContent = NoContentVerb 'POST
+ Gogol.Prelude: type PostNonAuthoritative = Verb 'POST 203
+ Gogol.Prelude: type PostResetContent = Verb 'POST 205
+ Gogol.Prelude: type Put = Verb 'PUT 200
+ Gogol.Prelude: type PutAccepted = Verb 'PUT 202
+ Gogol.Prelude: type PutCreated = Verb 'PUT 201
+ Gogol.Prelude: type PutNoContent = NoContentVerb 'PUT
+ Gogol.Prelude: type PutNonAuthoritative = Verb 'PUT 203
+ Gogol.Prelude: type QueryParam = QueryParam' '[Optional, Strict]
+ Gogol.Prelude: type ReqBody = ReqBody' '[Required, Strict]
+ Gogol.Prelude: type SourceIO = SourceT IO
+ Gogol.Prelude: type StatusOf a :: Nat;
+ Gogol.Prelude: type StreamBody = StreamBody' '[] :: [Type]
+ Gogol.Prelude: type StreamGet = Stream 'GET 200
+ Gogol.Prelude: type StreamPost = Stream 'POST 200
+ Gogol.Prelude: type ToServant (routes :: k -> Type) (mode :: k) = GToServant Rep routes mode
+ Gogol.Prelude: type ToServantApi (routes :: Type -> Type) = ToServant routes AsApi
+ Gogol.Prelude: type Vault = Vault RealWorld
+ Gogol.Prelude: type family MkLink (endpoint :: k) a
+ Gogol.Prelude: }
+ Gogol.Types: AccessToken :: Text -> AccessToken
+ Gogol.Types: AltJSON :: AltJSON
+ Gogol.Types: AltMedia :: AltMedia
+ Gogol.Types: ClientId :: Text -> ClientId
+ Gogol.Types: FieldMask :: Text -> FieldMask
+ Gogol.Types: GBody :: !MediaType -> !RequestBody -> GBody
+ Gogol.Types: GClient :: !Maybe MediaType -> !Method -> !Status -> Bool -> !ServiceConfig -> !Request -> !Stream -> ResourceT IO (Either (String, ByteString) a) -> GClient a
+ Gogol.Types: GSecret :: Text -> GSecret
+ Gogol.Types: MediaDownload :: a -> MediaDownload a
+ Gogol.Types: MediaUpload :: a -> GBody -> MediaUpload a
+ Gogol.Types: Multipart :: Multipart
+ Gogol.Types: OAuthScope :: Text -> OAuthScope
+ Gogol.Types: RefreshToken :: Text -> RefreshToken
+ Gogol.Types: Request :: !Builder -> !DList (ByteString, Maybe ByteString) -> !DList (HeaderName, ByteString) -> ![GBody] -> Request
+ Gogol.Types: Seconds :: Int -> Seconds
+ Gogol.Types: SerializeError :: SerializeError -> Error
+ Gogol.Types: SerializeError' :: !ServiceId -> [Header] -> !Status -> !String -> !Maybe ByteString -> SerializeError
+ Gogol.Types: ServiceConfig :: !ServiceId -> !ByteString -> !Builder -> !Int -> !Bool -> !Maybe Seconds -> ServiceConfig
+ Gogol.Types: ServiceError :: ServiceError -> Error
+ Gogol.Types: ServiceError' :: !ServiceId -> !Status -> ![Header] -> !Maybe ByteString -> ServiceError
+ Gogol.Types: ServiceId :: Text -> ServiceId
+ Gogol.Types: TransportError :: HttpException -> Error
+ Gogol.Types: [_cliAccept] :: GClient a -> !Maybe MediaType
+ Gogol.Types: [_cliCheck] :: GClient a -> !Status -> Bool
+ Gogol.Types: [_cliMethod] :: GClient a -> !Method
+ Gogol.Types: [_cliRequest] :: GClient a -> !Request
+ Gogol.Types: [_cliResponse] :: GClient a -> !Stream -> ResourceT IO (Either (String, ByteString) a)
+ Gogol.Types: [_cliService] :: GClient a -> !ServiceConfig
+ Gogol.Types: [_rqBody] :: Request -> ![GBody]
+ Gogol.Types: [_rqHeaders] :: Request -> !DList (HeaderName, ByteString)
+ Gogol.Types: [_rqPath] :: Request -> !Builder
+ Gogol.Types: [_rqQuery] :: Request -> !DList (ByteString, Maybe ByteString)
+ Gogol.Types: [_serializeBody] :: SerializeError -> !Maybe ByteString
+ Gogol.Types: [_serializeHeaders] :: SerializeError -> [Header]
+ Gogol.Types: [_serializeId] :: SerializeError -> !ServiceId
+ Gogol.Types: [_serializeMessage] :: SerializeError -> !String
+ Gogol.Types: [_serializeStatus] :: SerializeError -> !Status
+ Gogol.Types: [_serviceBody] :: ServiceError -> !Maybe ByteString
+ Gogol.Types: [_serviceHeaders] :: ServiceError -> ![Header]
+ Gogol.Types: [_serviceId] :: ServiceError -> !ServiceId
+ Gogol.Types: [_serviceStatus] :: ServiceError -> !Status
+ Gogol.Types: [_svcHost] :: ServiceConfig -> !ByteString
+ Gogol.Types: [_svcId] :: ServiceConfig -> !ServiceId
+ Gogol.Types: [_svcPath] :: ServiceConfig -> !Builder
+ Gogol.Types: [_svcPort] :: ServiceConfig -> !Int
+ Gogol.Types: [_svcSecure] :: ServiceConfig -> !Bool
+ Gogol.Types: [_svcTimeout] :: ServiceConfig -> !Maybe Seconds
+ Gogol.Types: [fromFieldMask] :: FieldMask -> Text
+ Gogol.Types: _Coerce :: (Coercible a b, Coercible b a) => Iso' a b
+ Gogol.Types: _Default :: Monoid a => Iso' (Maybe a) a
+ Gogol.Types: _Error :: AsError a => Prism' a Error
+ Gogol.Types: _SerializeError :: AsError a => Prism' a SerializeError
+ Gogol.Types: _ServiceError :: AsError a => Prism' a ServiceError
+ Gogol.Types: _TransportError :: AsError a => Prism' a HttpException
+ Gogol.Types: appendHeader :: Request -> HeaderName -> Maybe Text -> Request
+ Gogol.Types: appendPath :: Request -> Builder -> Request
+ Gogol.Types: appendPaths :: ToHttpApiData a => Request -> [a] -> Request
+ Gogol.Types: appendQuery :: Request -> ByteString -> Maybe Text -> Request
+ Gogol.Types: bodyContentType :: Lens' GBody MediaType
+ Gogol.Types: buildClient :: GoogleClient fn => Proxy fn -> Request -> Fn fn
+ Gogol.Types: buildSymbol :: forall (n :: Symbol) proxy. KnownSymbol n => proxy n -> Builder
+ Gogol.Types: buildText :: ToHttpApiData a => a -> Builder
+ Gogol.Types: byteSymbol :: forall (n :: Symbol) proxy. KnownSymbol n => proxy n -> ByteString
+ Gogol.Types: class AsError a
+ Gogol.Types: class Accept c => FromStream (c :: k) a
+ Gogol.Types: class GoogleClient (fn :: k) where {
+ Gogol.Types: class GoogleRequest a where {
+ Gogol.Types: class Accept c => ToBody (c :: k) a
+ Gogol.Types: clientService :: forall a f. Functor f => (ServiceConfig -> f ServiceConfig) -> GClient a -> f (GClient a)
+ Gogol.Types: data AltJSON
+ Gogol.Types: data AltMedia
+ Gogol.Types: data CaptureMode (s :: Symbol) (m :: Symbol) (a :: k)
+ Gogol.Types: data Captures (s :: Symbol) (a :: k)
+ Gogol.Types: data Error
+ Gogol.Types: data GBody
+ Gogol.Types: data GClient a
+ Gogol.Types: data MediaUpload a
+ Gogol.Types: data Multipart
+ Gogol.Types: data MultipartRelated (cs :: [Type]) (m :: k)
+ Gogol.Types: data Request
+ Gogol.Types: data SerializeError
+ Gogol.Types: data ServiceConfig
+ Gogol.Types: data ServiceError
+ Gogol.Types: defaultService :: ServiceId -> ByteString -> ServiceConfig
+ Gogol.Types: discard :: Method -> [Int] -> Request -> ServiceConfig -> GClient ()
+ Gogol.Types: fromStream :: FromStream c a => Proxy c -> Stream -> ResourceT IO (Either (String, ByteString) a)
+ Gogol.Types: gClient :: (Stream -> ResourceT IO (Either (String, ByteString) a)) -> Maybe MediaType -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, GHC.TypeLits.KnownSymbol m, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Gogol.Types.CaptureMode s m a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (s Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Gogol.Types.Captures s a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Servant.API.Capture.Capture s a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Servant.API.Header.Header s a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Servant.API.QueryParam.QueryParam s a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (GHC.TypeLits.KnownSymbol s, Web.Internal.HttpApiData.ToHttpApiData a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Servant.API.QueryParam.QueryParams s a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (Gogol.Types.FromStream c a, cs' GHC.Types.~ (c : cs)) => Gogol.Types.GoogleClient (Servant.API.Verbs.Post cs' a)
+ Gogol.Types: instance (Gogol.Types.GoogleClient a, Gogol.Types.GoogleClient b) => Gogol.Types.GoogleClient (a Servant.API.Alternative.:<|> b)
+ Gogol.Types: instance (Gogol.Types.ToBody c a, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Servant.API.ReqBody.ReqBody (c : cs) a Servant.API.Sub.:> fn)
+ Gogol.Types: instance (Gogol.Types.ToBody c m, Gogol.Types.GoogleClient fn) => Gogol.Types.GoogleClient (Gogol.Types.MultipartRelated (c : cs) m Servant.API.Sub.:> fn)
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.AccessToken
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.ClientId
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.FieldMask
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.GSecret
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.OAuthScope
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.RefreshToken
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON Gogol.Types.ServiceId
+ Gogol.Types: instance Data.Aeson.Types.FromJSON.FromJSON a => Gogol.Types.FromStream Servant.API.ContentTypes.JSON a
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.AccessToken
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.ClientId
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.FieldMask
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.GSecret
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.OAuthScope
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.RefreshToken
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON Gogol.Types.ServiceId
+ Gogol.Types: instance Data.Aeson.Types.ToJSON.ToJSON a => Gogol.Types.ToBody Servant.API.ContentTypes.JSON a
+ Gogol.Types: instance Data.String.IsString Gogol.Types.AccessToken
+ Gogol.Types: instance Data.String.IsString Gogol.Types.ClientId
+ Gogol.Types: instance Data.String.IsString Gogol.Types.FieldMask
+ Gogol.Types: instance Data.String.IsString Gogol.Types.GBody
+ Gogol.Types: instance Data.String.IsString Gogol.Types.GSecret
+ Gogol.Types: instance Data.String.IsString Gogol.Types.OAuthScope
+ Gogol.Types: instance Data.String.IsString Gogol.Types.RefreshToken
+ Gogol.Types: instance Data.String.IsString Gogol.Types.ServiceId
+ Gogol.Types: instance GHC.Base.Monoid Gogol.Types.Request
+ Gogol.Types: instance GHC.Base.Semigroup Gogol.Types.Request
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.AccessToken
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.AltJSON
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.AltMedia
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.ClientId
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.FieldMask
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.GSecret
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.Multipart
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.OAuthScope
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.RefreshToken
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.SerializeError
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.ServiceError
+ Gogol.Types: instance GHC.Classes.Eq Gogol.Types.ServiceId
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.AccessToken
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.AltJSON
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.AltMedia
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.ClientId
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.FieldMask
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.GSecret
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.Multipart
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.OAuthScope
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.RefreshToken
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Classes.Ord Gogol.Types.ServiceId
+ Gogol.Types: instance GHC.Enum.Bounded Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Enum.Enum Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Exception.Type.Exception Gogol.Types.Error
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.AccessToken
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.AltJSON
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.AltMedia
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.ClientId
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.FieldMask
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.GSecret
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.Multipart
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.OAuthScope
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.RefreshToken
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Generics.Generic Gogol.Types.ServiceId
+ Gogol.Types: instance GHC.Num.Num Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.AccessToken
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.AltJSON
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.AltMedia
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.ClientId
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.FieldMask
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.GSecret
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.Multipart
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.OAuthScope
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.RefreshToken
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Read.Read Gogol.Types.ServiceId
+ Gogol.Types: instance GHC.Real.Integral Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Real.Real Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.AccessToken
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.AltJSON
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.AltMedia
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.ClientId
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.Error
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.FieldMask
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.GSecret
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.Multipart
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.OAuthScope
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.RefreshToken
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.Seconds
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.SerializeError
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.ServiceError
+ Gogol.Types: instance GHC.Show.Show Gogol.Types.ServiceId
+ Gogol.Types: instance Gogol.Types.AsError GHC.Exception.Type.SomeException
+ Gogol.Types: instance Gogol.Types.AsError Gogol.Types.Error
+ Gogol.Types: instance Gogol.Types.FromStream Servant.API.ContentTypes.OctetStream Gogol.Types.Stream
+ Gogol.Types: instance Gogol.Types.FromStream c a => Gogol.Types.GoogleClient (Servant.API.Verbs.Delete (c : cs) a)
+ Gogol.Types: instance Gogol.Types.FromStream c a => Gogol.Types.GoogleClient (Servant.API.Verbs.Get (c : cs) a)
+ Gogol.Types: instance Gogol.Types.FromStream c a => Gogol.Types.GoogleClient (Servant.API.Verbs.Patch (c : cs) a)
+ Gogol.Types: instance Gogol.Types.FromStream c a => Gogol.Types.GoogleClient (Servant.API.Verbs.Put (c : cs) a)
+ Gogol.Types: instance Gogol.Types.GoogleClient (Servant.API.Verbs.Delete (c : cs) ())
+ Gogol.Types: instance Gogol.Types.GoogleClient (Servant.API.Verbs.Get (c : cs) ())
+ Gogol.Types: instance Gogol.Types.GoogleClient (Servant.API.Verbs.Patch (c : cs) ())
+ Gogol.Types: instance Gogol.Types.GoogleClient (Servant.API.Verbs.Post cs ())
+ Gogol.Types: instance Gogol.Types.GoogleClient (Servant.API.Verbs.Put (c : cs) ())
+ Gogol.Types: instance Gogol.Types.GoogleClient fn => Gogol.Types.GoogleClient (Gogol.Types.AltMedia Servant.API.Sub.:> fn)
+ Gogol.Types: instance Gogol.Types.ToBody Servant.API.ContentTypes.OctetStream Data.ByteString.Internal.Type.ByteString
+ Gogol.Types: instance Gogol.Types.ToBody Servant.API.ContentTypes.OctetStream Data.ByteString.Lazy.Internal.ByteString
+ Gogol.Types: instance Gogol.Types.ToBody Servant.API.ContentTypes.PlainText Data.ByteString.Internal.Type.ByteString
+ Gogol.Types: instance Gogol.Types.ToBody Servant.API.ContentTypes.PlainText Data.ByteString.Lazy.Internal.ByteString
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.AccessToken
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.ClientId
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.FieldMask
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.GSecret
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.OAuthScope
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.RefreshToken
+ Gogol.Types: instance Web.Internal.HttpApiData.FromHttpApiData Gogol.Types.ServiceId
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.AccessToken
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.AltJSON
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.AltMedia
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.ClientId
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.FieldMask
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.GSecret
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.Multipart
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.OAuthScope
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.RefreshToken
+ Gogol.Types: instance Web.Internal.HttpApiData.ToHttpApiData Gogol.Types.ServiceId
+ Gogol.Types: microseconds :: Seconds -> Int
+ Gogol.Types: mime :: forall {k} (c :: k) a. FromStream c a => Proxy c -> Method -> [Int] -> Request -> ServiceConfig -> GClient a
+ Gogol.Types: newtype AccessToken
+ Gogol.Types: newtype ClientId
+ Gogol.Types: newtype FieldMask
+ Gogol.Types: newtype GSecret
+ Gogol.Types: newtype MediaDownload a
+ Gogol.Types: newtype OAuthScope
+ Gogol.Types: newtype RefreshToken
+ Gogol.Types: newtype Seconds
+ Gogol.Types: newtype ServiceId
+ Gogol.Types: requestClient :: GoogleRequest a => a -> GClient (Rs a)
+ Gogol.Types: seconds :: Seconds -> Int
+ Gogol.Types: serviceHost :: Lens' ServiceConfig ByteString
+ Gogol.Types: servicePath :: Lens' ServiceConfig Builder
+ Gogol.Types: servicePort :: Lens' ServiceConfig Int
+ Gogol.Types: serviceSecure :: Lens' ServiceConfig Bool
+ Gogol.Types: serviceTimeout :: Lens' ServiceConfig (Maybe Seconds)
+ Gogol.Types: setBody :: Request -> [GBody] -> Request
+ Gogol.Types: sinkLBS :: Stream -> ResourceT IO ByteString
+ Gogol.Types: toBody :: ToBody c a => Proxy c -> a -> GBody
+ Gogol.Types: type Fn (fn :: k);
+ Gogol.Types: type Rs a;
+ Gogol.Types: type Scopes a :: [Symbol];
+ Gogol.Types: type Stream = ConduitM () ByteString ResourceT IO ()
+ Gogol.Types: }

Files

− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
gogol-core.cabal view
@@ -1,93 +1,77 @@-name:                  gogol-core-version:               0.5.0-synopsis:              Core data types and functionality for Gogol libraries.-homepage:              https://github.com/brendanhay/gogol-bug-reports:           https://github.com/brendanhay/gogol/issues-license:               OtherLicense-license-file:          LICENSE-author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2015-2016 Brendan Hay-category:              Network, Google, Cloud-build-type:            Simple-extra-source-files:    README.md-cabal-version:         >= 1.10+cabal-version:      2.2+name:               gogol-core+version:            1.0.0.0+synopsis:           Core data types and functionality for Gogol libraries.+homepage:           https://github.com/brendanhay/gogol+bug-reports:        https://github.com/brendanhay/gogol/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com> +copyright:          Copyright (c) 2015-2025 Brendan Hay+category:           Google+build-type:         Simple+extra-source-files: README.md description:-    Core data types, functionality and serialisation primitives for-    Gogol related Google Services SDKs.-    .-    The external interface of this library is stable with respect to the-    downstream Gogol libraries, only, and as such is not suitable-    for use in non-Gogol projects.+  Core data types, functionality and serialisation primitives for+  Gogol related Google Services SDKs.+  .+  The external interface of this library is stable with respect to the+  downstream Gogol libraries, only, and as such is not suitable+  for use in non-Gogol projects.  source-repository head-    type:              git-    location:          git://github.com/brendanhay/gogol.git--flag old-locale-    description:       Use old-locale and time < 1.5-    default:           False+  type:     git+  location: git://github.com/brendanhay/gogol.git  library-    default-language:  Haskell2010-    hs-source-dirs:    src--    ghc-options:       -Wall--    exposed-modules:-          Network.Google.Data.Bytes-        , Network.Google.Data.JSON-        , Network.Google.Data.Numeric-        , Network.Google.Data.Time-        , Network.Google.Prelude-        , Network.Google.Types--    build-depends:-          aeson                >= 0.8-        , attoparsec           >= 0.11.3-        , base                 >= 4.7 && < 5-        , bifunctors           >= 0.1-        , bytestring           >= 0.9-        , case-insensitive     >= 1.2-        , conduit              >= 1.3-        , dlist                >= 0.7-        , exceptions           >= 0.6-        , hashable             >= 1.2-        , http-api-data        >= 0.2-        , http-client          >= 0.5 && < 1-        , http-media           >= 0.6-        , http-types           >= 0.8.6-        , lens                 >= 4.4-        , resourcet            >= 1.1-        , scientific           >= 0.3-        , servant              >= 0.4.4-        , text                 >= 1.1-        , unordered-containers >= 0.2.5+  default-language: GHC2021+  hs-source-dirs:   src+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields+    -fwarn-unused-packages -    if !impl(ghc>=7.9)-        build-depends:-              nats >= 0.1.3+  exposed-modules:+    Gogol.Data.Base64+    Gogol.Data.JSON+    Gogol.Data.Time+    Gogol.Prelude+    Gogol.Types -    if flag(old-locale)-        build-depends:-              old-locale == 1.*-            , time       >= 1.2 && < 1.5-    else-        build-depends:-              time       >= 1.5+  build-depends:+    , aeson                 >=0.8    && <2.3+    , attoparsec            >=0.11.3 && <0.15+    , base                  >=4.12   && <5+    , base64                >=1.0    && <1.1+    , bytestring            >=0.9    && <0.14+    , case-insensitive      >=1.2    && <1.3+    , conduit               >=1.3    && <1.4+    , dlist                 >=0.7    && <1.1+    , exceptions            >=0.6    && <0.12+    , hashable              >=1.2    && <1.6+    , http-api-data         >=0.2    && <0.7+    , http-client           >=0.5    && <1+    , http-media            >=0.6    && <0.9+    , http-types            >=0.8.6  && <0.13+    , lens                  >=4.4    && <5.4+    , resourcet             >=1.1    && <1.4+    , scientific            >=0.3    && <0.4+    , servant               >=0.20.1 && <0.21+    , text                  >=1.1    && <2.2+    , time                  >=1.2    && <2+    , unordered-containers  >=0.2.5  && <0.3  test-suite tests-    type:              exitcode-stdio-1.0-    default-language:  Haskell2010-    hs-source-dirs:    test-    main-is:           Main.hs--    ghc-options:       -Wall -threaded--    other-modules:--    build-depends:-          gogol-core-        , base-        , tasty+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded+  other-modules:+  build-depends:+    , base+    , gogol-core+    , tasty
+ src/Gogol/Data/Base64.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}++-- |+-- Module      : Gogol.Data.Base64+-- Copyright   : (c) 2013-2022 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : provisional+-- Portability : non-portable (GHC extensions)+module Gogol.Data.Base64+  ( Base64 (..),+    _Base64,+  )+where++import Control.Lens (Iso', iso)+import Data.Aeson (FromJSON (..), ToJSON (..))+import Data.Base64.Types qualified as Base64+import Data.ByteString (ByteString)+import Data.ByteString.Base64 qualified as Base64+import Data.Hashable+import Data.Text.Encoding qualified as Text+import GHC.Generics (Generic)+import Gogol.Data.JSON (parseJSONText, toJSONText)+import Web.HttpApiData (FromHttpApiData (..), ToHttpApiData (..))++-- | Raw bytes that will be transparently base64 encoded\/decoded+-- on tramission to\/from a remote API.+newtype Base64 = Base64 {fromBase64 :: ByteString}+  deriving (Eq, Show, Read, Ord, Generic, Hashable)++_Base64 :: Iso' Base64 ByteString+_Base64 = iso fromBase64 Base64++instance ToHttpApiData Base64 where+  toUrlPiece = Base64.extractBase64 . Base64.encodeBase64 . fromBase64+  toQueryParam = Base64.extractBase64 . Base64.encodeBase64 . fromBase64+  toHeader = Base64.extractBase64 . Base64.encodeBase64' . fromBase64++instance FromHttpApiData Base64 where+  parseUrlPiece = fmap Base64 . Base64.decodeBase64Untyped . Text.encodeUtf8+  parseQueryParam = fmap Base64 . Base64.decodeBase64Untyped . Text.encodeUtf8+  parseHeader = fmap Base64 . Base64.decodeBase64Untyped++instance FromJSON Base64 where+  parseJSON = parseJSONText "Base64"++instance ToJSON Base64 where+  toJSON = toJSONText
+ src/Gogol/Data/JSON.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE ScopedTypeVariables #-}++-- |+-- Module      : Gogol.Data.JSON+-- Copyright   : (c) 2015-2022 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : provisional+-- Portability : non-portable (GHC extensions)+module Gogol.Data.JSON+  ( Value,+    AsText (..),+    parseJSONObject,+    parseJSONText,+    toJSONText,++    -- * Re-exports+    FromJSON (..),+    FromJSONKey (..),+    ToJSON (..),+    ToJSONKey (..),+    withObject,+    emptyObject,+    object,+    (.=),+    (.:),+    (.:?),+    (.!=),+  )+where++import Data.Aeson+import Data.Aeson.Types+import Data.Text qualified as Text+import Web.HttpApiData (FromHttpApiData (..), ToHttpApiData (..))++#if MIN_VERSION_aeson(2,0,0)+import Data.Aeson.KeyMap (KeyMap)+#else+import Data.HashMap.Strict (HashMap)+import Data.Text (Text)+#endif++newtype AsText a = AsText {fromAsText :: a}+  deriving (Eq, Ord, Read, Show, Num, Fractional, ToHttpApiData, FromHttpApiData)++instance (FromJSON a, FromHttpApiData a) => FromJSON (AsText a) where+  parseJSON (String s) = either (fail . Text.unpack) (pure . AsText) (parseQueryParam s)+  parseJSON o = AsText <$> parseJSON o++instance (ToHttpApiData a) => ToJSON (AsText a) where+  toJSON (AsText x) = String (toQueryParam x)++#if MIN_VERSION_aeson(2,0,0)+parseJSONObject :: FromJSON a => KeyMap Value -> Parser a+#else+parseJSONObject :: FromJSON a => HashMap Text Value -> Parser a+#endif+parseJSONObject = parseJSON . toJSON++parseJSONText :: (FromHttpApiData a) => String -> Value -> Parser a+parseJSONText n = withText n (either (fail . f) pure . parseQueryParam)+  where+    f x = n ++ " - " ++ Text.unpack x++toJSONText :: (ToHttpApiData a) => a -> Value+toJSONText = String . toQueryParam
+ src/Gogol/Data/Time.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedStrings #-}++-- |+-- Module      : Gogol.Data.Time+-- Copyright   : (c) 2015-2022 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : provisional+-- Portability : non-portable (GHC extensions)+module Gogol.Data.Time+  ( Time (..),+    Date (..),+    DateTime (..),+    Duration (..),+    _Time,+    _Date,+    _DateTime,+    _Duration,+  )+where++import Control.Lens+import Data.Aeson+import Data.Aeson.Types qualified as Aeson+import Data.Attoparsec.Text+import Data.Bifunctor (first, second)+import Data.Bits ((.&.))+import Data.Char (ord)+import Data.Scientific (Scientific)+import Data.Scientific qualified as Sci+import Data.Text (Text)+import Data.Text qualified as Text+import Data.Text.Lazy qualified as LText+import Data.Text.Lazy.Builder qualified as Build+import Data.Text.Lazy.Builder.Scientific qualified as Sci+import Data.Time+import GHC.Generics+import Web.HttpApiData+  ( FromHttpApiData (..),+    ToHttpApiData (..),+  )++-- | This SHOULD be a time in the format of hh:mm:ss.  It is+-- recommended that you use the "date-time" format instead of "time"+-- unless you need to transfer only the time part.+newtype Time = Time {fromTime :: TimeOfDay}+  deriving (Eq, Ord, Show, Read, Generic)++_Time :: Iso' Time TimeOfDay+_Time = iso fromTime Time++instance ToHttpApiData Time where+  toQueryParam = Text.pack . show . fromTime++instance FromHttpApiData Time where+  parseQueryParam = second Time . parseText timeParser++-- | This SHOULD be a date in the format of YYYY-MM-DD.  It is+-- recommended that you use the "date-time" format instead of "date"+-- unless you need to transfer only the date part.+newtype Date = Date {unDate :: Day}+  deriving (Eq, Ord, Show, Read, Generic, ToHttpApiData, FromHttpApiData)++_Date :: Iso' Date Day+_Date = iso unDate Date++-- | This SHOULD be a date in ISO 8601 format of YYYY-MM-+-- DDThh:mm:ssZ in UTC time. This is the recommended form of date/timestamp.+newtype DateTime = DateTime {unDateTime :: UTCTime}+  deriving (Eq, Ord, Show, Read, Generic, ToHttpApiData, FromHttpApiData)++_DateTime :: Iso' DateTime UTCTime+_DateTime = iso unDateTime DateTime++-- | A duration in seconds with up to nine fractional digits, terminated by 's'.+--+-- /Example/: @"3.5s"@.+newtype Duration = Duration {unDuration :: Scientific}+  deriving (Eq, Ord, Show, Read, Generic)++_Duration :: Iso' Duration Scientific+_Duration = iso unDuration Duration++instance ToHttpApiData Duration where+  toQueryParam =+    LText.toStrict+      . (\seconds -> Build.toLazyText seconds <> "s")+      . Sci.formatScientificBuilder Sci.Fixed (Just 9)+      . unDuration++instance FromHttpApiData Duration where+  parseQueryParam = second Duration . parseText durationParser++instance ToJSON Time where toJSON = String . toQueryParam++instance ToJSON Date where toJSON = String . toQueryParam++instance ToJSON DateTime where toJSON = toJSON . unDateTime++instance ToJSON Duration where toJSON = String . toQueryParam++instance FromJSON Time where+  parseJSON = fmap Time . withText "Time" (run timeParser)++instance FromJSON Date where+  parseJSON = fmap Date . withText "Date" (run dayParser)++instance FromJSON DateTime where+  parseJSON = fmap DateTime . parseJSON++instance FromJSON Duration where+  parseJSON = fmap Duration . withText "Duration" (run durationParser)++parseText :: Parser a -> Text -> Either Text a+parseText p = first Text.pack . parseOnly p++-- | Parse a time of the form @HH:MM:SS@.+timeParser :: Parser TimeOfDay+timeParser = do+  h <- twoDigits <* char ':'+  m <- twoDigits <* char ':'+  s <- twoDigits <&> fromIntegral+  if h < 24 && m < 60 && s < 61+    then pure (TimeOfDay h m s)+    else fail "invalid time"++-- | Parse a date of the form @YYYY-MM-DD@.+dayParser :: Parser Day+dayParser = do+  y <- decimal <* char '-'+  m <- twoDigits <* char '-'+  d <- twoDigits+  maybe (fail "invalid date") pure (fromGregorianValid y m d)++durationParser :: Parser Scientific+durationParser = Sci.fromFloatDigits <$> (double <* char 's')++-- | Parse a two-digit integer (e.g. day of month, hour).+twoDigits :: Parser Int+twoDigits = do+  a <- digit+  b <- digit+  let c2d c = ord c .&. 15+  pure $! c2d a * 10 + c2d b++-- | Run an attoparsec parser as an aeson parser.+run :: Parser a -> Text -> Aeson.Parser a+run p t =+  case parseOnly (p <* endOfInput) t of+    Left err -> fail $ "could not parse date: " ++ err+    Right r -> pure r
+ src/Gogol/Prelude.hs view
@@ -0,0 +1,36 @@+-- |+-- Module      : Gogol.Prelude+-- Copyright   : (c) 2015-2022 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : provisional+-- Portability : non-portable (GHC extensions)+module Gogol.Prelude+  ( module Export,+  )+where++import Control.Lens as Export (Lens', lens, mapping, (#), (^.), _Just)+import Data.ByteString as Export (ByteString)+import Data.Data as Export (Data, Typeable)+import Data.Functor as Export ((<&>))+import Data.HashMap.Strict as Export (HashMap)+import Data.Hashable as Export (Hashable, hashWithSalt)+import Data.Int as Export (Int32, Int64)+import Data.Maybe as Export+import Data.Proxy as Export+import Data.Scientific as Export (Scientific)+import Data.Text as Export (Text)+import Data.Time as Export (Day, TimeOfDay, UTCTime)+import Data.Word as Export (Word32, Word64, Word8)+import GHC.Generics as Export (Generic)+import Gogol.Data.Base64 as Export+import Gogol.Data.JSON as Export+import Gogol.Data.Time as Export+import Gogol.Types as Export+import Network.HTTP.Client as Export (RequestBody)+import Numeric.Natural as Export (Natural)+import Servant.API as Export hiding (FromHttpApiData, Header, Headers, IsMember, Link, ResponseHeader, Stream, ToHttpApiData, Union, getResponse)+import Servant.Links as Export hiding (Link)+import Web.HttpApiData as Export (FromHttpApiData (..), ToHttpApiData (..))+import Prelude as Export
+ src/Gogol/Types.hs view
@@ -0,0 +1,680 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE UndecidableInstances #-}++-- |+-- Module      : Gogol.Types+-- Copyright   : (c) 2015-2022 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : provisional+-- Portability : non-portable (GHC extensions)+module Gogol.Types where++import Control.Exception.Lens (exception)+import Control.Lens+import Control.Monad.Catch+import Control.Monad.Trans.Resource+import Data.Aeson+import Data.ByteString (ByteString)+import Data.ByteString.Char8 qualified as BS8+import Data.ByteString.Lazy qualified as LBS+import Data.CaseInsensitive qualified as CI+import Data.Coerce+import Data.Conduit+import Data.Conduit.Combinators qualified as Conduit+import Data.DList (DList)+import Data.DList qualified as DList+import Data.Data+import Data.Foldable qualified as Foldable+import Data.Kind (Type)+import Data.String+import Data.Text (Text)+import Data.Text.Encoding qualified as Text+import Data.Text.Lazy.Builder (Builder)+import Data.Text.Lazy.Builder qualified as Build+import GHC.Generics+import GHC.TypeLits+import Network.HTTP.Client (HttpException, RequestBody (..))+import Network.HTTP.Media hiding (Accept)+import Network.HTTP.Types hiding (Header)+import Network.HTTP.Types qualified as HTTP+import Servant.API hiding (Stream)++data AltJSON = AltJSON+  deriving (Eq, Ord, Show, Read, Generic)++instance ToHttpApiData AltJSON where+  toQueryParam = const "json"++data AltMedia = AltMedia+  deriving (Eq, Ord, Show, Read, Generic)++instance ToHttpApiData AltMedia where+  toQueryParam = const "media"++data Multipart = Multipart+  deriving (Eq, Ord, Show, Read, Generic)++instance ToHttpApiData Multipart where+  toQueryParam = const "multipart"++-- | An OAuth2 scope.+newtype OAuthScope = OAuthScope Text+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++-- | An OAuth2 access token.+newtype AccessToken = AccessToken Text+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++-- | An OAuth2 refresh token.+newtype RefreshToken = RefreshToken Text+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++-- | A client identifier.+newtype ClientId = ClientId Text+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++-- | A service identifier.+newtype ServiceId = ServiceId Text+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++-- | An opaque client secret.+newtype GSecret = GSecret Text+  deriving+    ( Eq,+      Ord,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )++instance Show GSecret where+  show = const "*****"++newtype MediaDownload a = MediaDownload a++data MediaUpload a = MediaUpload a GBody++_Coerce :: (Coercible a b, Coercible b a) => Iso' a b+_Coerce = iso coerce coerce++-- | Invalid Iso, exists for ease of composition with the current 'Lens . Iso'+-- chaining to hide internal types from the user.+_Default :: (Monoid a) => Iso' (Maybe a) a+_Default = iso f Just+  where+    f (Just x) = x+    f Nothing = mempty++type Stream = ConduitM () ByteString (ResourceT IO) ()++data Error+  = TransportError HttpException+  | SerializeError SerializeError+  | ServiceError ServiceError+  deriving (Show)++instance Exception Error++data SerializeError = SerializeError'+  { _serializeId :: !ServiceId,+    _serializeHeaders :: [HTTP.Header],+    _serializeStatus :: !Status,+    _serializeMessage :: !String,+    _serializeBody :: !(Maybe LBS.ByteString)+  }+  deriving (Eq, Show)++data ServiceError = ServiceError'+  { _serviceId :: !ServiceId,+    _serviceStatus :: !Status,+    _serviceHeaders :: ![HTTP.Header],+    _serviceBody :: !(Maybe LBS.ByteString)+  }+  deriving (Eq, Show)++class AsError a where+  -- | A general Amazonka error.+  _Error :: Prism' a Error++  {-# MINIMAL _Error #-}++  -- | An error occured while communicating over HTTP with a remote service.+  _TransportError :: Prism' a HttpException++  -- | A serialisation error occured when attempting to deserialise a response.+  _SerializeError :: Prism' a SerializeError++  -- | A service specific error returned by the remote service.+  _ServiceError :: Prism' a ServiceError++  _TransportError = _Error . _TransportError+  _SerializeError = _Error . _SerializeError+  _ServiceError = _Error . _ServiceError++instance AsError SomeException where+  _Error = exception++instance AsError Error where+  _Error = id++  _TransportError = prism TransportError $ \case+    TransportError e -> Right e+    x -> Left x++  _SerializeError = prism SerializeError $ \case+    SerializeError e -> Right e+    x -> Left x++  _ServiceError = prism ServiceError $ \case+    ServiceError e -> Right e+    x -> Left x++data ServiceConfig = ServiceConfig+  { _svcId :: !ServiceId,+    _svcHost :: !ByteString,+    _svcPath :: !Builder,+    _svcPort :: !Int,+    _svcSecure :: !Bool,+    _svcTimeout :: !(Maybe Seconds)+  }++defaultService :: ServiceId -> ByteString -> ServiceConfig+defaultService i h =+  ServiceConfig+    { _svcId = i,+      _svcHost = h,+      _svcPath = mempty,+      _svcPort = 443,+      _svcSecure = True,+      _svcTimeout = Just 70+    }++-- | The remote host name, used for both the IP address to connect to and the+-- host request header.+serviceHost :: Lens' ServiceConfig ByteString+serviceHost = lens _svcHost (\s a -> s {_svcHost = a})++-- | The remote port to connect to.+--+-- Defaults to @443@.+servicePort :: Lens' ServiceConfig Int+servicePort = lens _svcPort (\s a -> s {_svcPort = a})++-- | A path prefix that is prepended to any sent HTTP request.+--+-- Defaults to @mempty@.+servicePath :: Lens' ServiceConfig Builder+servicePath = lens _svcPath (\s a -> s {_svcPath = a})++-- | Whether to use HTTPS/SSL.+--+-- Defaults to @True@.+serviceSecure :: Lens' ServiceConfig Bool+serviceSecure = lens _svcSecure (\s a -> s {_svcSecure = a})++-- | Number of seconds to wait for a response.+serviceTimeout :: Lens' ServiceConfig (Maybe Seconds)+serviceTimeout = lens _svcTimeout (\s a -> s {_svcTimeout = a})++-- | A single part of a (potentially multipart) request body.+--+-- /Note:/ The 'IsString' instance defaults to a @text/plain@ MIME type.+data GBody = GBody !MediaType !RequestBody++instance IsString GBody where+  fromString = GBody ("text" // "plain") . fromString++-- | A lens into the 'MediaType' of a request 'Body'.+bodyContentType :: Lens' GBody MediaType+bodyContentType = lens (\(GBody m _) -> m) (\(GBody _ b) m -> GBody m b)++-- | An intermediary request builder.+data Request = Request+  { _rqPath :: !Builder,+    _rqQuery :: !(DList (ByteString, Maybe ByteString)),+    _rqHeaders :: !(DList (HeaderName, ByteString)),+    _rqBody :: ![GBody]+  }++instance Monoid Request where+  mempty = Request mempty mempty mempty mempty+  mappend = (<>)++instance Semigroup Request where+  a <> b =+    Request+      (_rqPath a <> "/" <> _rqPath b)+      (_rqQuery a <> _rqQuery b)+      (_rqHeaders a <> _rqHeaders b)+      (_rqBody b <> _rqBody a)++appendPath :: Request -> Builder -> Request+appendPath rq x = rq {_rqPath = _rqPath rq <> "/" <> x}++appendPaths :: (ToHttpApiData a) => Request -> [a] -> Request+appendPaths rq = appendPath rq . foldMap (mappend "/" . buildText)++appendQuery :: Request -> ByteString -> Maybe Text -> Request+appendQuery rq k v =+  rq+    { _rqQuery = DList.snoc (_rqQuery rq) (k, Text.encodeUtf8 <$> v)+    }++appendHeader :: Request -> HeaderName -> Maybe Text -> Request+appendHeader rq _ Nothing = rq+appendHeader rq k (Just v) =+  rq+    { _rqHeaders = DList.snoc (_rqHeaders rq) (k, Text.encodeUtf8 v)+    }++setBody :: Request -> [GBody] -> Request+setBody rq bs = rq {_rqBody = bs}++-- | A materialised 'http-client' request and associated response parser.+data GClient a = GClient+  { _cliAccept :: !(Maybe MediaType),+    _cliMethod :: !Method,+    _cliCheck :: !(Status -> Bool),+    _cliService :: !ServiceConfig,+    _cliRequest :: !Request,+    _cliResponse :: !(Stream -> ResourceT IO (Either (String, LBS.ByteString) a))+  }++clientService :: Lens' (GClient a) ServiceConfig+clientService = lens _cliService (\s a -> s {_cliService = a})++mime ::+  (FromStream c a) =>+  Proxy c ->+  Method ->+  [Int] ->+  Request ->+  ServiceConfig ->+  GClient a+mime p = gClient (fromStream p) (Just (contentType p))++discard ::+  Method ->+  [Int] ->+  Request ->+  ServiceConfig ->+  GClient ()+discard = gClient (\b -> runConduit (b .| Conduit.sinkNull) >> pure (Right ())) Nothing++gClient ::+  (Stream -> ResourceT IO (Either (String, LBS.ByteString) a)) ->+  Maybe MediaType ->+  Method ->+  [Int] ->+  Request ->+  ServiceConfig ->+  GClient a+gClient f cs m statuses rq s =+  GClient+    { _cliAccept = cs,+      _cliMethod = m,+      _cliCheck = \status -> fromEnum status `elem` statuses,+      _cliService = s,+      _cliRequest = rq,+      _cliResponse = f+    }++class (Accept c) => ToBody c a where+  toBody :: Proxy c -> a -> GBody++instance ToBody OctetStream ByteString where+  toBody p = GBody (contentType p) . RequestBodyBS++instance ToBody OctetStream LBS.ByteString where+  toBody p = GBody (contentType p) . RequestBodyLBS++instance ToBody PlainText ByteString where+  toBody p = GBody (contentType p) . RequestBodyBS++instance ToBody PlainText LBS.ByteString where+  toBody p = GBody (contentType p) . RequestBodyLBS++instance (ToJSON a) => ToBody JSON a where+  toBody p = GBody (contentType p) . RequestBodyLBS . encode++class (Accept c) => FromStream c a where+  fromStream ::+    Proxy c ->+    Stream ->+    ResourceT IO (Either (String, LBS.ByteString) a)++instance FromStream OctetStream Stream where+  fromStream Proxy = pure . Right++instance (FromJSON a) => FromStream JSON a where+  fromStream Proxy s = do+    bs <- sinkLBS s+    case eitherDecode bs of+      Left e -> pure $! Left (e, bs)+      Right x -> pure $! Right x++class GoogleRequest a where+  type Rs a :: Type+  type Scopes a :: [Symbol]++  requestClient :: a -> GClient (Rs a)++class GoogleClient fn where+  type Fn fn :: Type++  buildClient :: Proxy fn -> Request -> Fn fn++-- | Multiple path captures, with @[xs]@ forming @/<x1>/<x2>/<x2>/...@.+data Captures (s :: Symbol) a++-- | Form a Google style sub-resource, such as @/<capture>:<mode>@.+data CaptureMode (s :: Symbol) (m :: Symbol) a++data MultipartRelated (cs :: [Type]) m++instance+  ( ToBody c m,+    GoogleClient fn+  ) =>+  GoogleClient (MultipartRelated (c ': cs) m :> fn)+  where+  type Fn (MultipartRelated (c ': cs) m :> fn) = m -> GBody -> Fn fn++  buildClient Proxy rq m b =+    buildClient (Proxy :: Proxy fn) $+      setBody rq [toBody (Proxy :: Proxy c) m, b]++instance (GoogleClient fn) => GoogleClient (AltMedia :> fn) where+  type Fn (AltMedia :> fn) = GBody -> Fn fn++  buildClient Proxy rq b =+    buildClient (Proxy :: Proxy fn) $+      setBody rq [b]++instance (KnownSymbol s, GoogleClient fn) => GoogleClient (s :> fn) where+  type Fn (s :> fn) = Fn fn++  buildClient Proxy rq =+    buildClient (Proxy :: Proxy fn) $+      appendPath rq (buildSymbol (Proxy :: Proxy s))++instance (GoogleClient a, GoogleClient b) => GoogleClient (a :<|> b) where+  type Fn (a :<|> b) = Fn a :<|> Fn b++  buildClient Proxy rq =+    buildClient (Proxy :: Proxy a) rq+      :<|> buildClient (Proxy :: Proxy b) rq++instance+  ( KnownSymbol s,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (Capture s a :> fn)+  where+  type Fn (Capture s a :> fn) = a -> Fn fn++  buildClient Proxy rq =+    buildClient (Proxy :: Proxy fn)+      . appendPath rq+      . buildText++instance+  ( KnownSymbol s,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (Captures s a :> fn)+  where+  type Fn (Captures s a :> fn) = [a] -> Fn fn++  buildClient Proxy rq =+    buildClient (Proxy :: Proxy fn)+      . appendPaths rq++instance+  ( KnownSymbol s,+    KnownSymbol m,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (CaptureMode s m a :> fn)+  where+  type Fn (CaptureMode s m a :> fn) = a -> Fn fn++  buildClient Proxy rq x =+    buildClient (Proxy :: Proxy fn)+      . appendPath rq+      $ buildText x <> ":" <> buildSymbol (Proxy :: Proxy m)++instance+  ( KnownSymbol s,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (QueryParam s a :> fn)+  where+  type Fn (QueryParam s a :> fn) = Maybe a -> Fn fn++  buildClient Proxy rq mx = buildClient (Proxy :: Proxy fn) $+    case mx of+      Nothing -> rq+      Just x -> appendQuery rq k v+        where+          k = byteSymbol (Proxy :: Proxy s)+          v = Just (toQueryParam x)++instance+  ( KnownSymbol s,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (QueryParams s a :> fn)+  where+  type Fn (QueryParams s a :> fn) = [a] -> Fn fn++  buildClient Proxy rq = buildClient (Proxy :: Proxy fn) . Foldable.foldl' go rq+    where+      go r = appendQuery r k . Just . toQueryParam++      k = byteSymbol (Proxy :: Proxy s)++instance+  ( KnownSymbol s,+    ToHttpApiData a,+    GoogleClient fn+  ) =>+  GoogleClient (Header s a :> fn)+  where+  type Fn (Header s a :> fn) = Maybe a -> Fn fn++  buildClient Proxy rq mx = buildClient (Proxy :: Proxy fn) $+    case mx of+      Nothing -> rq+      Just x -> appendHeader rq (CI.mk k) v+        where+          k = byteSymbol (Proxy :: Proxy s)+          v = Just (toQueryParam x)++instance+  ( ToBody c a,+    GoogleClient fn+  ) =>+  GoogleClient (ReqBody (c ': cs) a :> fn)+  where+  type Fn (ReqBody (c ': cs) a :> fn) = a -> Fn fn++  buildClient Proxy rq x =+    buildClient (Proxy :: Proxy fn) $+      setBody rq [toBody (Proxy :: Proxy c) x]++instance {-# OVERLAPPABLE #-} (FromStream c a) => GoogleClient (Get (c ': cs) a) where+  type Fn (Get (c ': cs) a) = ServiceConfig -> GClient a++  buildClient Proxy = mime (Proxy :: Proxy c) methodGet [200, 203]++instance {-# OVERLAPPING #-} GoogleClient (Get (c ': cs) ()) where+  type Fn (Get (c ': cs) ()) = ServiceConfig -> GClient ()++  buildClient Proxy = discard methodGet [204]++instance {-# OVERLAPPABLE #-} (FromStream c a, cs' ~ (c ': cs)) => GoogleClient (Post cs' a) where+  type Fn (Post cs' a) = ServiceConfig -> GClient a++  buildClient Proxy = mime (Proxy :: Proxy c) methodPost [200, 201]++instance {-# OVERLAPPING #-} GoogleClient (Post cs ()) where+  type Fn (Post cs ()) = ServiceConfig -> GClient ()++  buildClient Proxy = discard methodPost [204]++instance {-# OVERLAPPABLE #-} (FromStream c a) => GoogleClient (Put (c ': cs) a) where+  type Fn (Put (c ': cs) a) = ServiceConfig -> GClient a++  buildClient Proxy = mime (Proxy :: Proxy c) methodPut [200, 201]++instance {-# OVERLAPPING #-} GoogleClient (Put (c ': cs) ()) where+  type Fn (Put (c ': cs) ()) = ServiceConfig -> GClient ()++  buildClient Proxy = discard methodPut [204]++instance {-# OVERLAPPABLE #-} (FromStream c a) => GoogleClient (Patch (c ': cs) a) where+  type Fn (Patch (c ': cs) a) = ServiceConfig -> GClient a++  buildClient Proxy = mime (Proxy :: Proxy c) methodPatch [200, 201]++instance {-# OVERLAPPING #-} GoogleClient (Patch (c ': cs) ()) where+  type Fn (Patch (c ': cs) ()) = ServiceConfig -> GClient ()++  buildClient Proxy = discard methodPatch [204]++instance {-# OVERLAPPABLE #-} (FromStream c a) => GoogleClient (Delete (c ': cs) a) where+  type Fn (Delete (c ': cs) a) = ServiceConfig -> GClient a++  buildClient Proxy = mime (Proxy :: Proxy c) methodDelete [200, 202]++instance {-# OVERLAPPING #-} GoogleClient (Delete (c ': cs) ()) where+  type Fn (Delete (c ': cs) ()) = ServiceConfig -> GClient ()++  buildClient Proxy = discard methodDelete [204]++sinkLBS :: Stream -> ResourceT IO LBS.ByteString+sinkLBS = runConduit . (.| Conduit.sinkLazy)++buildText :: (ToHttpApiData a) => a -> Builder+buildText = Build.fromText . toQueryParam++buildSymbol :: forall n proxy. (KnownSymbol n) => proxy n -> Builder+buildSymbol = Build.fromString . symbolVal++byteSymbol :: forall n proxy. (KnownSymbol n) => proxy n -> ByteString+byteSymbol = BS8.pack . symbolVal++-- | An integral value representing seconds.+newtype Seconds = Seconds Int+  deriving+    ( Eq,+      Ord,+      Read,+      Show,+      Enum,+      Num,+      Bounded,+      Integral,+      Real,+      Generic+    )++seconds :: Seconds -> Int+seconds (Seconds n)+  | n < 0 = 0+  | otherwise = n++microseconds :: Seconds -> Int+microseconds = (1000000 *) . seconds++newtype FieldMask = FieldMask {fromFieldMask :: Text}+  deriving+    ( Eq,+      Ord,+      Show,+      Read,+      IsString,+      Generic,+      FromHttpApiData,+      ToHttpApiData,+      FromJSON,+      ToJSON+    )
− src/Network/Google/Data/Bytes.hs
@@ -1,49 +0,0 @@-{-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DeriveGeneric              #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}---- |--- Module      : Network.Google.Data.Bytes--- Copyright   : (c) 2013-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Data.Bytes-    ( Bytes (..)-    , _Bytes-    ) where--import           Control.Lens             (Iso', iso)-import           Data.Aeson               (FromJSON (..), ToJSON (..))-import           Data.ByteString          (ByteString)-import           Data.Data                (Data, Typeable)-import           Data.Hashable-import qualified Data.Text.Encoding       as Text-import           GHC.Generics             (Generic)-import           Network.Google.Data.JSON (parseJSONText, toJSONText)-import           Web.HttpApiData          (FromHttpApiData (..),-                                           ToHttpApiData (..))--- | Binary data.------ This data is passed to/from the serialisation routines as-is, and any--- particular encoding or decoding (say, base64) is left up to the caller.-newtype Bytes = Bytes { unBytes :: ByteString }-    deriving (Eq, Show, Read, Ord, Data, Typeable, Generic)--instance Hashable Bytes--_Bytes :: Iso' Bytes ByteString-_Bytes = iso unBytes Bytes--instance ToHttpApiData Bytes where-    toQueryParam = Text.decodeUtf8 . unBytes-    toHeader     = unBytes--instance FromHttpApiData Bytes where-    parseQueryParam = pure . Bytes . Text.encodeUtf8-    parseHeader     = pure . Bytes--instance FromJSON Bytes where parseJSON = parseJSONText "Bytes"-instance ToJSON   Bytes where toJSON    = toJSONText
− src/Network/Google/Data/JSON.hs
@@ -1,75 +0,0 @@-{-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE ScopedTypeVariables        #-}---- |--- Module      : Network.Google.Data.JSON--- Copyright   : (c) 2015-2016 Brendan Hay <brendan.g.hay@gmail.com>--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Data.JSON-    ( JSONValue-    , Textual  (..)-    , parseJSONObject-    , parseJSONText-    , toJSONText--    -- * Re-exports-    , FromJSON (..)-    , ToJSON   (..)--    , withObject-    , emptyObject-    , object--    , (.=)-    , (.:)-    , (.:?)-    , (.!=)-    ) where--import           Data.Aeson-import           Data.Aeson.Types-import           Data.Data-import           Data.HashMap.Strict (HashMap)-import           Data.Text           (Text)-import qualified Data.Text           as Text-import           Web.HttpApiData     (FromHttpApiData (..), ToHttpApiData (..))--type JSONValue = Value--newtype Textual a = Textual a-    deriving-        ( Eq-        , Ord-        , Read-        , Show-        , Num-        , Fractional-        , Data-        , Typeable-        , ToHttpApiData-        , FromHttpApiData-        )--instance (FromJSON a, FromHttpApiData a) => FromJSON (Textual a) where-    parseJSON (String s) =-        either (fail . Text.unpack) (pure . Textual) (parseQueryParam s)-    parseJSON o          = Textual <$> parseJSON o--instance ToHttpApiData a => ToJSON (Textual a) where-    toJSON (Textual x) = String (toQueryParam x)--parseJSONObject :: FromJSON a => HashMap Text Value -> Parser a-parseJSONObject = parseJSON . Object--parseJSONText :: FromHttpApiData a => String -> Value -> Parser a-parseJSONText n = withText n (either (fail . f) pure . parseQueryParam)-  where-    f x = n ++ " - " ++ Text.unpack x--toJSONText :: ToHttpApiData a => a -> Value-toJSONText = String . toQueryParam
− src/Network/Google/Data/Numeric.hs
@@ -1,62 +0,0 @@-{-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE ScopedTypeVariables        #-}---- |--- Module      : Network.Google.Data.Numeric--- Copyright   : (c) 2015-2016 Brendan Hay <brendan.g.hay@gmail.com>--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Data.Numeric-    ( Nat (..)-    ) where--import           Control.Monad-import           Data.Aeson-import           Data.Data-import           Data.Monoid                ((<>))-import           Data.Scientific-import           Data.Text                  (Text)-import qualified Data.Text                  as Text-import qualified Data.Text.Lazy             as LText-import           Data.Text.Lazy.Builder     (Builder)-import qualified Data.Text.Lazy.Builder     as Build-import qualified Data.Text.Lazy.Builder.Int as Build-import qualified Data.Text.Read             as Read-import           Numeric.Natural-import           Servant.API--newtype Nat = Nat { unNat :: Natural }-    deriving (Eq, Ord, Enum, Show, Read, Num, Real, Integral, Data, Typeable)--instance FromJSON Nat where-    parseJSON = parseJSON >=> go-      where-        go n = case floatingOrInteger n of-            Left  (_ :: Double) -> fail (floatErr n)-            Right i-                | n < 0         -> fail (negateErr n)-                | otherwise     -> return . Nat $ fromInteger i--        floatErr  = mappend "Cannot convert float to Natural: " . show-        negateErr = mappend "Cannot convert negative number to Natural: " . show--instance ToJSON Nat where-    toJSON = Number . flip scientific 0 . toInteger . unNat--instance ToHttpApiData Nat where-    toQueryParam = shortText . Build.decimal--instance FromHttpApiData Nat where-    parseQueryParam t =-        case Read.decimal t of-            Right (x, r) | Text.null r-                -> Right x-            _   -> Left ("Unable to parse natural from: " <> t)--shortText :: Builder -> Text-shortText = LText.toStrict . Build.toLazyTextWith 32
− src/Network/Google/Data/Time.hs
@@ -1,152 +0,0 @@-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DeriveGeneric              #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}---- |--- Module      : Network.Google.Data.Time--- Copyright   : (c) 2015-2016 Brendan Hay <brendan.g.hay@gmail.com>--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Data.Time-    ( Time'-    , Date'-    , DateTime' (..)-    , GDuration--    , _Time-    , _Date-    , _DateTime-    , _GDuration-    ) where--import           Data.Monoid                      ((<>))-import           Control.Lens-import           Data.Aeson-import qualified Data.Aeson.Types                  as Aeson-import           Data.Attoparsec.Text-import           Data.Bifunctor                    (first, second)-import           Data.Bits                         ((.&.))-import           Data.Char                         (ord)-import           Data.Data                         (Data, Typeable)-import           Data.Scientific                   (Scientific)-import qualified Data.Scientific                   as Sci-import           Data.Text                         (Text)-import qualified Data.Text                         as Text-import qualified Data.Text.Lazy                    as LText-import qualified Data.Text.Lazy.Builder            as Build-import qualified Data.Text.Lazy.Builder.Scientific as Sci-import           Data.Time-import           GHC.Generics-import           Web.HttpApiData                   (FromHttpApiData (..),-                                                    ToHttpApiData (..))---- | This SHOULD be a time in the format of hh:mm:ss.  It is--- recommended that you use the "date-time" format instead of "time"--- unless you need to transfer only the time part.-newtype Time' = Time' { unTime :: TimeOfDay }-    deriving (Eq, Ord, Show, Read, Generic, Data, Typeable)--_Time :: Iso' Time' TimeOfDay-_Time = iso unTime Time'--instance ToHttpApiData Time' where-    toQueryParam = Text.pack . show . unTime--instance FromHttpApiData Time' where-    parseQueryParam = second Time' . parseText timeParser---- | This SHOULD be a date in the format of YYYY-MM-DD.  It is--- recommended that you use the "date-time" format instead of "date"--- unless you need to transfer only the date part.-newtype Date' = Date' { unDate :: Day }-    deriving (Eq, Ord, Show, Read, Generic, Data, Typeable, ToHttpApiData, FromHttpApiData)--_Date :: Iso' Date' Day-_Date = iso unDate Date'---- | This SHOULD be a date in ISO 8601 format of YYYY-MM---- DDThh:mm:ssZ in UTC time. This is the recommended form of date/timestamp.-newtype DateTime' = DateTime' { unDateTime :: UTCTime }-    deriving (Eq, Ord, Show, Read, Generic, Data, Typeable, ToHttpApiData, FromHttpApiData)--_DateTime :: Iso' DateTime' UTCTime-_DateTime = iso unDateTime DateTime'---- | A duration in seconds with up to nine fractional digits, terminated by 's'.------ /Example/: @"3.5s"@.-newtype GDuration = GDuration { unGDuration :: Scientific }-    deriving (Eq, Ord, Show, Read, Generic, Data, Typeable)--_GDuration :: Iso' GDuration Scientific-_GDuration = iso unGDuration GDuration--instance ToHttpApiData GDuration where-    toQueryParam =-          LText.toStrict-        . (\seconds -> Build.toLazyText seconds <> "s")-        . Sci.formatScientificBuilder Sci.Fixed (Just 9)-        . unGDuration--instance FromHttpApiData GDuration where-    parseQueryParam = second GDuration . parseText durationParser--instance ToJSON Time'     where toJSON = String . toQueryParam-instance ToJSON Date'     where toJSON = String . toQueryParam-instance ToJSON DateTime' where toJSON = toJSON . unDateTime-instance ToJSON GDuration  where toJSON = String . toQueryParam--instance FromJSON Time' where-    parseJSON = fmap Time' . withText "time" (run timeParser)--instance FromJSON Date' where-    parseJSON = fmap Date' . withText "date" (run dayParser)--instance FromJSON DateTime' where-    parseJSON = fmap DateTime' . parseJSON--instance FromJSON GDuration where-    parseJSON = fmap GDuration . withText "duration" (run durationParser)--parseText :: Parser a -> Text -> Either Text a-parseText p = first Text.pack . parseOnly p---- | Parse a time of the form @HH:MM:SS@.-timeParser :: Parser TimeOfDay-timeParser = do-    h <- twoDigits <* char ':'-    m <- twoDigits <* char ':'-    s <- twoDigits <&> fromIntegral-    if h < 24 && m < 60 && s < 61-        then pure (TimeOfDay h m s)-        else fail "invalid time"---- | Parse a date of the form @YYYY-MM-DD@.-dayParser :: Parser Day-dayParser = do-    y <- decimal   <* char '-'-    m <- twoDigits <* char '-'-    d <- twoDigits-    maybe (fail "invalid date") pure (fromGregorianValid y m d)--durationParser :: Parser Scientific-durationParser = Sci.fromFloatDigits <$> (double <* char 's')---- | Parse a two-digit integer (e.g. day of month, hour).-twoDigits :: Parser Int-twoDigits = do-    a <- digit-    b <- digit-    let c2d c = ord c .&. 15-    pure $! c2d a * 10 + c2d b---- | Run an attoparsec parser as an aeson parser.-run :: Parser a -> Text -> Aeson.Parser a-run p t =-    case parseOnly (p <* endOfInput) t of-        Left err -> fail $ "could not parse date: " ++ err-        Right r  -> pure r
− src/Network/Google/Prelude.hs
@@ -1,38 +0,0 @@--- |--- Module      : Network.Google.Prelude--- Copyright   : (c) 2015-2016 Brendan Hay <brendan.g.hay@gmail.com>--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Prelude-    ( module Export-    ) where--import Control.Lens        as Export (Lens', lens, mapping, ( # ), (^.), _Just)-import Data.ByteString     as Export (ByteString)-import Data.Data           as Export (Data, Typeable)-import Data.Hashable       as Export (Hashable, hashWithSalt)-import Data.HashMap.Strict as Export (HashMap)-import Data.Int            as Export (Int32, Int64)-import Data.Maybe          as Export-import Data.Monoid         as Export (mempty, (<>))-import Data.Proxy          as Export-import Data.Scientific     as Export (Scientific)-import Data.Text           as Export (Text)-import Data.Time           as Export (Day, TimeOfDay, UTCTime)-import Data.Word           as Export (Word32, Word64, Word8)-import GHC.Generics        as Export (Generic)-import Network.HTTP.Client as Export (RequestBody)-import Numeric.Natural     as Export (Natural)-import Prelude             as Export hiding (product, span, any, Word)-import Servant.API         as Export hiding (Headers, Link, getResponse, Stream, ResponseHeader, Header, header)-import Servant.Utils.Links as Export hiding (Link)-import Web.HttpApiData     as Export (FromHttpApiData (..), ToHttpApiData (..))--import Network.Google.Data.Bytes   as Export-import Network.Google.Data.JSON    as Export-import Network.Google.Data.Numeric as Export-import Network.Google.Data.Time    as Export-import Network.Google.Types        as Export
− src/Network/Google/Types.hs
@@ -1,660 +0,0 @@-{-# LANGUAGE DataKinds                  #-}-{-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DeriveGeneric              #-}-{-# LANGUAGE FlexibleInstances          #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE KindSignatures             #-}-{-# LANGUAGE LambdaCase                 #-}-{-# LANGUAGE MultiParamTypeClasses      #-}-{-# LANGUAGE OverloadedStrings          #-}-{-# LANGUAGE RecordWildCards            #-}-{-# LANGUAGE ScopedTypeVariables        #-}-{-# LANGUAGE TupleSections              #-}-{-# LANGUAGE TypeFamilies               #-}-{-# LANGUAGE TypeOperators              #-}-{-# LANGUAGE UndecidableInstances       #-}---- |--- Module      : Network.Google.Types--- Copyright   : (c) 2015-2016 Brendan Hay <brendan.g.hay@gmail.com>--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : provisional--- Portability : non-portable (GHC extensions)----module Network.Google.Types where--import Control.Exception.Lens       (exception)-import Control.Lens-import Control.Monad.Catch-import Control.Monad.Trans.Resource--import Data.Aeson-import Data.ByteString        (ByteString)-import Data.Coerce-import Data.Conduit-import Data.Data-import Data.DList             (DList)-import Data.Foldable          (foldMap, foldl')-import Data.String-import Data.Semigroup-import Data.Text              (Text)-import Data.Text.Lazy.Builder (Builder)--import GHC.Generics-import GHC.TypeLits--import Network.HTTP.Client (HttpException, RequestBody (..))-import Network.HTTP.Media  hiding (Accept)-import Network.HTTP.Types  hiding (Header)--import Servant.API hiding (Stream)--import qualified Data.ByteString.Char8    as BS8-import qualified Data.ByteString.Lazy     as LBS-import qualified Data.CaseInsensitive     as CI-import qualified Data.Conduit.Combinators as Conduit-import qualified Data.DList               as DList-import qualified Data.Text.Encoding       as Text-import qualified Data.Text.Lazy.Builder   as Build-import qualified Network.HTTP.Types       as HTTP--data AltJSON   = AltJSON   deriving (Eq, Ord, Show, Read, Generic, Typeable)-data AltMedia  = AltMedia  deriving (Eq, Ord, Show, Read, Generic, Typeable)-data Multipart = Multipart deriving (Eq, Ord, Show, Read, Generic, Typeable)--instance ToHttpApiData AltJSON   where toQueryParam = const "json"-instance ToHttpApiData AltMedia  where toQueryParam = const "media"-instance ToHttpApiData Multipart where toQueryParam = const "multipart"---- | An OAuth2 scope.-newtype OAuthScope = OAuthScope Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )---- | An OAuth2 access token.-newtype AccessToken = AccessToken Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )---- | An OAuth2 refresh token.-newtype RefreshToken = RefreshToken Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )---- | A client identifier.-newtype ClientId = ClientId Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )---- | A service identifier.-newtype ServiceId = ServiceId Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )---- | An opaque client secret.-newtype GSecret = GSecret Text-    deriving-        ( Eq-        , Ord-        , Read-        , IsString-        , Generic-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )--instance Show GSecret where-    show = const "*****"--newtype MediaDownload a = MediaDownload a--data MediaUpload a = MediaUpload a GBody--_Coerce :: (Coercible a b, Coercible b a) => Iso' a b-_Coerce = iso coerce coerce---- | Invalid Iso, exists for ease of composition with the current 'Lens . Iso'--- chaining to hide internal types from the user.-_Default :: Monoid a => Iso' (Maybe a) a-_Default = iso f Just-  where-    f (Just x) = x-    f Nothing  = mempty--type Stream = ConduitM () ByteString (ResourceT IO) ()--data Error-    = TransportError HttpException-    | SerializeError SerializeError-    | ServiceError   ServiceError-      deriving (Show, Typeable)--instance Exception Error--data SerializeError = SerializeError'-    { _serializeId      :: !ServiceId-    , _serializeHeaders :: [HTTP.Header]-    , _serializeStatus  :: !Status-    , _serializeMessage :: !String-    , _serializeBody    :: !(Maybe LBS.ByteString)-    } deriving (Eq, Show, Typeable)--data ServiceError = ServiceError'-    { _serviceId      :: !ServiceId-    , _serviceStatus  :: !Status-    , _serviceHeaders :: ![HTTP.Header]-    , _serviceBody    :: !(Maybe LBS.ByteString)-    } deriving (Eq, Show, Typeable)--class AsError a where-    -- | A general Amazonka error.-    _Error          :: Prism' a Error-    {-# MINIMAL _Error #-}--    -- | An error occured while communicating over HTTP with a remote service.-    _TransportError :: Prism' a HttpException--    -- | A serialisation error occured when attempting to deserialise a response.-    _SerializeError :: Prism' a SerializeError--    -- | A service specific error returned by the remote service.-    _ServiceError   :: Prism' a ServiceError--    _TransportError = _Error . _TransportError-    _SerializeError = _Error . _SerializeError-    _ServiceError   = _Error . _ServiceError--instance AsError SomeException where-    _Error = exception--instance AsError Error where-    _Error = id--    _TransportError = prism TransportError $ \case-        TransportError e -> Right e-        x                -> Left x--    _SerializeError = prism SerializeError $ \case-        SerializeError e -> Right e-        x                -> Left  x--    _ServiceError = prism ServiceError $ \case-        ServiceError e -> Right e-        x              -> Left  x--data ServiceConfig = ServiceConfig-    { _svcId      :: !ServiceId-    , _svcHost    :: !ByteString-    , _svcPath    :: !Builder-    , _svcPort    :: !Int-    , _svcSecure  :: !Bool-    , _svcTimeout :: !(Maybe Seconds)-    }--defaultService :: ServiceId -> ByteString -> ServiceConfig-defaultService i h = ServiceConfig-    { _svcId      = i-    , _svcHost    = h-    , _svcPath    = mempty-    , _svcPort    = 443-    , _svcSecure  = True-    , _svcTimeout = Just 70-    }---- | The remote host name, used for both the IP address to connect to and the--- host request header.-serviceHost :: Lens' ServiceConfig ByteString-serviceHost = lens _svcHost (\s a -> s { _svcHost = a })---- | The remote port to connect to.------ Defaults to @443@.-servicePort :: Lens' ServiceConfig Int-servicePort = lens _svcPort (\s a -> s { _svcPort = a })---- | A path prefix that is prepended to any sent HTTP request.------ Defaults to @mempty@.-servicePath :: Lens' ServiceConfig Builder-servicePath = lens _svcPath (\s a -> s { _svcPath = a })---- | Whether to use HTTPS/SSL.------ Defaults to @True@.-serviceSecure :: Lens' ServiceConfig Bool-serviceSecure = lens _svcSecure (\s a -> s { _svcSecure = a })---- | Number of seconds to wait for a response.-serviceTimeout :: Lens' ServiceConfig (Maybe Seconds)-serviceTimeout = lens _svcTimeout (\s a -> s { _svcTimeout = a })---- | A single part of a (potentially multipart) request body.------ /Note:/ The 'IsString' instance defaults to a @text/plain@ MIME type.-data GBody = GBody !MediaType !RequestBody--instance IsString GBody where-    fromString = GBody ("text" // "plain") . fromString---- | A lens into the 'MediaType' of a request 'Body'.-bodyContentType :: Lens' GBody MediaType-bodyContentType = lens (\(GBody m _) -> m) (\(GBody _ b) m -> GBody m b)---- | An intermediary request builder.-data Request = Request-    { _rqPath    :: !Builder-    , _rqQuery   :: !(DList (ByteString, Maybe ByteString))-    , _rqHeaders :: !(DList (HeaderName, ByteString))-    , _rqBody    :: ![GBody]-    }--instance Monoid Request where-    mempty      = Request mempty mempty mempty mempty-    mappend     = (<>)--instance Semigroup Request where-    a <> b = Request-        (_rqPath    a <> "/" <> _rqPath b)-        (_rqQuery   a <> _rqQuery b)-        (_rqHeaders a <> _rqHeaders b)-        (_rqBody    b <> _rqBody a)--appendPath :: Request -> Builder -> Request-appendPath rq x = rq { _rqPath = _rqPath rq <> "/" <> x }--appendPaths :: ToHttpApiData a => Request -> [a] -> Request-appendPaths rq = appendPath rq . foldMap (mappend "/" . buildText)--appendQuery :: Request -> ByteString -> Maybe Text -> Request-appendQuery rq k v = rq-    { _rqQuery = DList.snoc (_rqQuery rq) (k, Text.encodeUtf8 <$> v)-    }--appendHeader :: Request -> HeaderName -> Maybe Text -> Request-appendHeader rq _ Nothing  = rq-appendHeader rq k (Just v) = rq-    { _rqHeaders = DList.snoc (_rqHeaders rq) (k, Text.encodeUtf8 v)-    }--setBody :: Request -> [GBody] -> Request-setBody rq bs = rq { _rqBody = bs }---- | A materialised 'http-client' request and associated response parser.-data GClient a = GClient-    { _cliAccept   :: !(Maybe MediaType)-    , _cliMethod   :: !Method-    , _cliCheck    :: !(Status -> Bool)-    , _cliService  :: !ServiceConfig-    , _cliRequest  :: !Request-    , _cliResponse :: !(Stream -> ResourceT IO (Either (String, LBS.ByteString) a))-    }--clientService :: Lens' (GClient a) ServiceConfig-clientService = lens _cliService (\s a -> s { _cliService = a })--mime :: FromStream c a-     => Proxy c-     -> Method-     -> [Int]-     -> Request-     -> ServiceConfig-     -> GClient a-mime p = gClient (fromStream p) (Just (contentType p))--discard :: Method-        -> [Int]-        -> Request-        -> ServiceConfig-        -> GClient ()-discard = gClient (\b -> runConduit (b .| Conduit.sinkNull) >> pure (Right ())) Nothing--gClient :: (Stream -> ResourceT IO (Either (String, LBS.ByteString) a))-       -> Maybe MediaType-       -> Method-       -> [Int]-       -> Request-       -> ServiceConfig-       -> GClient a-gClient f cs m statuses rq s = GClient-    { _cliAccept   = cs-    , _cliMethod   = m-    , _cliCheck    = \status -> fromEnum status `elem` statuses-    , _cliService  = s-    , _cliRequest  = rq-    , _cliResponse = f-    }--class Accept c => ToBody c a where-    toBody :: Proxy c -> a -> GBody--instance ToBody OctetStream ByteString where-    toBody p = GBody (contentType p) . RequestBodyBS--instance ToBody OctetStream LBS.ByteString where-    toBody p = GBody (contentType p) . RequestBodyLBS--instance ToBody PlainText ByteString where-    toBody p = GBody (contentType p) . RequestBodyBS--instance ToBody PlainText LBS.ByteString where-    toBody p = GBody (contentType p) . RequestBodyLBS--instance ToJSON a => ToBody JSON a where-    toBody p = GBody (contentType p) . RequestBodyLBS . encode--class Accept c => FromStream c a where-    fromStream :: Proxy c-               -> Stream-               -> ResourceT IO (Either (String, LBS.ByteString) a)--instance FromStream OctetStream Stream where-    fromStream Proxy = pure . Right--instance FromJSON a => FromStream JSON a where-    fromStream Proxy  s = do-        bs <- sinkLBS s-        case eitherDecode bs of-            Left  e -> pure $! Left (e, bs)-            Right x -> pure $! Right x--class GoogleRequest a where-    type Rs     a :: *-    type Scopes a :: [Symbol]--    requestClient :: a -> GClient (Rs a)--class GoogleClient fn where-    type Fn fn :: *--    buildClient :: Proxy fn -> Request -> Fn fn---- | Multiple path captures, with @[xs]@ forming @/<x1>/<x2>/<x2>/...@.-data Captures (s :: Symbol) a-    deriving (Typeable)---- | Form a Google style sub-resource, such as @/<capture>:<mode>@.-data CaptureMode (s :: Symbol) (m :: Symbol) a-    deriving (Typeable)--data MultipartRelated (cs :: [*]) m-    deriving (Typeable)--instance ( ToBody c m-         , GoogleClient fn-         ) => GoogleClient (MultipartRelated (c ': cs) m :> fn) where-    type Fn (MultipartRelated (c ': cs) m :> fn) = m -> GBody -> Fn fn--    buildClient Proxy rq m b =-        buildClient (Proxy :: Proxy fn) $-           setBody rq [toBody (Proxy :: Proxy c) m, b]--instance GoogleClient fn => GoogleClient (AltMedia :> fn) where-    type Fn (AltMedia :> fn) = GBody -> Fn fn--    buildClient Proxy rq b =-        buildClient (Proxy :: Proxy fn) $-           setBody rq [b]--instance (KnownSymbol s, GoogleClient fn) => GoogleClient (s :> fn) where-    type Fn (s :> fn) = Fn fn--    buildClient Proxy rq = buildClient (Proxy :: Proxy fn) $-        appendPath rq (buildSymbol (Proxy :: Proxy s))--instance (GoogleClient a, GoogleClient b) => GoogleClient (a :<|> b) where-    type Fn (a :<|> b) = Fn a :<|> Fn b--    buildClient Proxy rq =-             buildClient (Proxy :: Proxy a) rq-        :<|> buildClient (Proxy :: Proxy b) rq--instance ( KnownSymbol   s-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (Capture s a :> fn) where-    type Fn (Capture s a :> fn) = a -> Fn fn--    buildClient Proxy rq = buildClient (Proxy :: Proxy fn)-        . appendPath rq-        . buildText--instance ( KnownSymbol   s-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (Captures s a :> fn) where-    type Fn (Captures s a :> fn) = [a] -> Fn fn--    buildClient Proxy rq = buildClient (Proxy :: Proxy fn)-        . appendPaths rq--instance ( KnownSymbol   s-         , KnownSymbol   m-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (CaptureMode s m a :> fn) where-    type Fn (CaptureMode s m a :> fn) = a -> Fn fn--    buildClient Proxy rq x = buildClient (Proxy :: Proxy fn)-        . appendPath rq-        $ buildText x <> ":" <> buildSymbol (Proxy :: Proxy m)--instance ( KnownSymbol   s-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (QueryParam s a :> fn) where-    type Fn (QueryParam s a :> fn) = Maybe a -> Fn fn--    buildClient Proxy rq mx = buildClient (Proxy :: Proxy fn) $-        case mx of-            Nothing -> rq-            Just x  -> appendQuery rq k v-              where-                k = byteSymbol (Proxy :: Proxy s)-                v = Just (toQueryParam x)--instance ( KnownSymbol   s-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (QueryParams s a :> fn) where-    type Fn (QueryParams s a :> fn) = [a] -> Fn fn--    buildClient Proxy rq = buildClient (Proxy :: Proxy fn) . foldl' go rq-      where-        go r = appendQuery r k . Just . toQueryParam--        k = byteSymbol (Proxy :: Proxy s)--instance ( KnownSymbol   s-         , ToHttpApiData a-         , GoogleClient  fn-         ) => GoogleClient (Header s a :> fn) where-    type Fn (Header s a :> fn) = Maybe a -> Fn fn--    buildClient Proxy rq mx = buildClient (Proxy :: Proxy fn) $-        case mx of-            Nothing -> rq-            Just x  -> appendHeader rq (CI.mk k) v-              where-                k = byteSymbol (Proxy :: Proxy s)-                v = Just (toQueryParam x)--instance ( ToBody c a-         , GoogleClient fn-         ) => GoogleClient (ReqBody (c ': cs) a :> fn) where-    type Fn (ReqBody (c ': cs) a :> fn) = a -> Fn fn--    buildClient Proxy rq x =-        buildClient (Proxy :: Proxy fn) $-            setBody rq [toBody (Proxy :: Proxy c) x]--instance {-# OVERLAPPABLE #-}-  FromStream c a => GoogleClient (Get (c ': cs) a) where-    type Fn (Get (c ': cs) a) = ServiceConfig -> GClient a--    buildClient Proxy = mime (Proxy :: Proxy c) methodGet [200, 203]--instance {-# OVERLAPPING #-}-  GoogleClient (Get (c ': cs) ()) where-    type Fn (Get (c ': cs) ()) = ServiceConfig -> GClient ()--    buildClient Proxy = discard methodGet [204]--instance {-# OVERLAPPABLE #-}-  (FromStream c a, cs' ~ (c ': cs)) => GoogleClient (Post cs' a) where-    type Fn (Post cs' a) = ServiceConfig -> GClient a--    buildClient Proxy = mime (Proxy :: Proxy c) methodPost [200, 201]--instance {-# OVERLAPPING #-}-  GoogleClient (Post cs ()) where-    type Fn (Post cs ()) = ServiceConfig -> GClient ()--    buildClient Proxy = discard methodPost [204]--instance {-# OVERLAPPABLE #-}-  FromStream c a => GoogleClient (Put (c ': cs) a) where-    type Fn (Put (c ': cs) a) = ServiceConfig -> GClient a--    buildClient Proxy = mime (Proxy :: Proxy c) methodPut [200, 201]--instance {-# OVERLAPPING #-}-  GoogleClient (Put (c ': cs) ()) where-    type Fn (Put (c ': cs) ()) = ServiceConfig -> GClient ()--    buildClient Proxy = discard methodPut [204]--instance {-# OVERLAPPABLE #-}-  FromStream c a => GoogleClient (Patch (c ': cs) a) where-    type Fn (Patch (c ': cs) a) = ServiceConfig -> GClient a--    buildClient Proxy = mime (Proxy :: Proxy c) methodPatch [200, 201]--instance {-# OVERLAPPING #-}-  GoogleClient (Patch (c ': cs) ()) where-    type Fn (Patch (c ': cs) ()) = ServiceConfig -> GClient ()--    buildClient Proxy = discard methodPatch [204]--instance {-# OVERLAPPABLE #-}-  FromStream c a => GoogleClient (Delete (c ': cs) a) where-    type Fn (Delete (c ': cs) a) = ServiceConfig -> GClient a--    buildClient Proxy = mime (Proxy :: Proxy c) methodDelete [200, 202]--instance {-# OVERLAPPING #-}-  GoogleClient (Delete (c ': cs) ()) where-    type Fn (Delete (c ': cs) ()) = ServiceConfig -> GClient ()--    buildClient Proxy = discard methodDelete [204]--sinkLBS :: Stream -> ResourceT IO LBS.ByteString-sinkLBS = runConduit . (.| Conduit.sinkLazy)--buildText :: ToHttpApiData a => a -> Builder-buildText = Build.fromText . toQueryParam--buildSymbol :: forall n proxy. KnownSymbol n => proxy n -> Builder-buildSymbol = Build.fromString . symbolVal--byteSymbol :: forall n proxy. KnownSymbol n => proxy n -> ByteString-byteSymbol = BS8.pack . symbolVal---- | An integral value representing seconds.-newtype Seconds = Seconds Int-    deriving-        ( Eq-        , Ord-        , Read-        , Show-        , Enum-        , Num-        , Bounded-        , Integral-        , Real-        , Data-        , Typeable-        , Generic-        )--seconds :: Seconds -> Int-seconds (Seconds n)-    | n < 0     = 0-    | otherwise = n--microseconds :: Seconds -> Int-microseconds =  (1000000 *) . seconds--newtype GFieldMask = GFieldMask Text-    deriving-        ( Eq-        , Ord-        , Show-        , Read-        , IsString-        , Generic-        , Data-        , Typeable-        , FromHttpApiData-        , ToHttpApiData-        , FromJSON-        , ToJSON-        )
test/Main.hs view
@@ -1,5 +1,5 @@ -- Module      : Main--- Copyright   : (c) 2015-2016 Brendan Hay+-- Copyright   : (c) 2015-2022 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : experimental@@ -7,10 +7,11 @@  module Main (main) where -import           Test.Tasty+import Test.Tasty  main :: IO ()-main = defaultMain $-    testGroup "gogol"-        [-        ]+main =+  defaultMain $+    testGroup+      "gogol"+      []