avers-api-0.0.18.0: Types describing the core and extended Avers APIs

Safe HaskellNone
LanguageHaskell2010

Avers.API

Synopsis

Documentation

type CreateObject = "objects" :> (Credentials :> (ReqBody '[JSON] CreateObjectBody :> Post '[JSON] CreateObjectResponse)) #

The complete Avers API

type DeleteObject = "objects" :> (Capture "objId" ObjId :> (Credentials :> Delete '[JSON] ())) #

type ObjectChanges = "objects" :> (Capture "objId" ObjId :> ("changes" :> (Credentials :> Raw))) #

type Feed = "feed" :> (Credentials :> Raw) #

type DeleteSession = "session" :> (SessionId :> Delete '[JSON] (Headers '[Header "Set-Cookie" SetCookie] ())) #

type LookupBlobContent = "blobs" :> (Capture "blobId" BlobId :> ("content" :> (Credentials :> Get '[OctetStream] (Headers '[Header "Content-Type" Text] BlobContent)))) #

type CacheValidationToken = Header "If-None-Match" Text #

The cache validator token when passed in the request. The server will use it to determine if the cached response on the client can be reused or not.

type Cacheable a = Headers '[Header "Cache-Control" Text, Header "ETag" Text] a #

Includes Cache-Control and ETag headers in the response to mark it as cacheable by the client.

data CreateObjectBody #

Constructors

CreateObjectBody 

Fields

Instances

data LookupObjectResponse #

data PatchObjectBody #

Constructors

PatchObjectBody 

Fields

  • pobRevisionId :: !RevId

    The RevId against which the client created the operations. This may be a bit behind if some other client submitted patches in parallel.

  • pobOperations :: ![Operation]

    The operations which the client wants to store in the database.

Instances

Generic PatchObjectBody # 
FromJSON PatchObjectBody # 
type Rep PatchObjectBody # 
type Rep PatchObjectBody = D1 (MetaData "PatchObjectBody" "Avers.API.Types" "avers-api-0.0.18.0-FihHMHyBGKY4ye2s6wDJnv" False) (C1 (MetaCons "PatchObjectBody" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "pobRevisionId") NoSourceUnpackedness SourceStrict DecidedUnpack) (Rec0 RevId)) (S1 (MetaSel (Just Symbol "pobOperations") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 [Operation]))))

data PatchObjectResponse #

Constructors

PatchObjectResponse 

Fields

  • porPreviousPatches :: ![Patch]

    Patches which were already in the database. The submitted ops were rebased on top of these.

  • porNumProcessedOperations :: !Int

    The number of operations which were processed. This may be smaller than the number of submitted ops if the processing failed somewhere in the middle. The client can then decide what to do with those which were not accepted.

  • porResultingPatches :: ![Patch]

    Out of the submitted operations, these are the patches which were actually applied and stored in the database. This list may be shorter if some operations were dropped (because redundant or conflicting).

data CreateReleaseBody #

Constructors

CreateReleaseBody 

Instances

Generic CreateReleaseBody # 
FromJSON CreateReleaseBody # 
type Rep CreateReleaseBody # 
type Rep CreateReleaseBody = D1 (MetaData "CreateReleaseBody" "Avers.API.Types" "avers-api-0.0.18.0-FihHMHyBGKY4ye2s6wDJnv" False) (C1 (MetaCons "CreateReleaseBody" PrefixI False) U1)

data ChangeSecretBody #

Constructors

ChangeSecretBody 

Fields

Instances

Generic ChangeSecretBody # 
FromJSON ChangeSecretBody # 
type Rep ChangeSecretBody # 
type Rep ChangeSecretBody = D1 (MetaData "ChangeSecretBody" "Avers.API.Types" "avers-api-0.0.18.0-FihHMHyBGKY4ye2s6wDJnv" False) (C1 (MetaCons "ChangeSecretBody" PrefixI True) (S1 (MetaSel (Just Symbol "csbNewSecret") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text)))

data Credentials #

Credentials are used to authenticate the client. It can be a SessionId (extracted from the session cookie).

Later we may add support for token based authentication. Then we extend this into a sumtype covering all the possible ways how credentials can be passed along with the request.