Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- type VersionAPI = Named "get-version" ("api-version" :> Get '[JSON] VersionInfo)
- data VersionAPITag
- data VersionInfo = VersionInfo {}
- versionHeader :: CI ByteString
- type VersionHeader = "X-Wire-API-Version"
- data Version
- versionInt :: Integral i => Version -> i
- versionText :: Version -> Text
- newtype VersionNumber = VersionNumber {}
- data VersionExp
- supportedVersions :: [Version]
- isDevelopmentVersion :: Version -> Bool
- developmentVersions :: [Version]
- expandVersionExp :: VersionExp -> Set Version
- maxAvailableVersion :: Set Version -> Maybe Version
- data Until v
- data From v
- type family SpecialiseToVersion (v :: Version) api
API version endpoint
type VersionAPI = Named "get-version" ("api-version" :> Get '[JSON] VersionInfo) Source #
data VersionAPITag Source #
Instances
ServiceAPI VersionAPITag v Source # | |
Defined in Wire.API.Routes.API | |
type ServiceAPIRoutes VersionAPITag Source # | |
Defined in Wire.API.Routes.API | |
type SpecialisedAPIRoutes v VersionAPITag Source # | |
Defined in Wire.API.Routes.API |
data VersionInfo Source #
Information related to the public API version.
This record also contains whether federation is enabled and the federation domain. Clients should fetch this information early when connecting to a backend, in order to decide how to form request paths, and how to deal with federated backends and qualified user IDs.
VersionInfo | |
|
Instances
FromJSON VersionInfo Source # | |
Defined in Wire.API.Routes.Version parseJSON :: Value -> Parser VersionInfo Source # parseJSONList :: Value -> Parser [VersionInfo] Source # | |
ToJSON VersionInfo Source # | |
Defined in Wire.API.Routes.Version toJSON :: VersionInfo -> Value Source # toEncoding :: VersionInfo -> Encoding Source # toJSONList :: [VersionInfo] -> Value Source # toEncodingList :: [VersionInfo] -> Encoding Source # | |
ToSchema VersionInfo Source # | |
Defined in Wire.API.Routes.Version | |
ToSchema VersionInfo Source # | |
Defined in Wire.API.Routes.Version |
type VersionHeader = "X-Wire-API-Version" Source #
Version
Version of the public API. Serializes to `"vn"`. See VersionNumber
below for one
that serializes to `n`. See `libswire-apitestunitTestWireAPIRoutes/Version.hs`
for serialization rules.
If you add or remove versions from this type, make sure versionInt
, supportedVersions
,
and developmentVersions
stay in sync; everything else here should keep working without
change. See also documentation in the *docs* directory.
https://docs.wire.com/developer/developer/api-versioning.html#version-bump-checklist
Instances
versionInt :: Integral i => Version -> i Source #
Manual enumeration of version integrals (the `n` in the constructor `Vn`).
This is not the same as fromEnum
: we will remove unsupported versions in the future,
which will cause `n` and `fromEnum Vn` to diverge. Enum
should not be understood as
a bijection between meaningful integers and versions, but merely as a convenient way to say
`allVersions = [minBound..]`.
versionText :: Version -> Text Source #
newtype VersionNumber Source #
Wrapper around Version
that serializes to integers `n`, as needed in
eg. VersionInfo
. See `libswire-apitestunitTestWireAPIRoutes/Version.hs` for
serialization rules.
Instances
data VersionExp Source #
A version "expression" which can be used when disabling versions in a configuration file.
VersionExpConst Version | A fixed version. |
VersionExpDevelopment | All development versions. |
Instances
supportedVersions :: [Version] Source #
isDevelopmentVersion :: Version -> Bool Source #
expandVersionExp :: VersionExp -> Set Version Source #
Expand a version expression into a set of versions.
Servant combinators
Instances
RoutesToPaths api => RoutesToPaths (Until v :> api :: Type) Source # | |
Defined in Wire.API.VersionInfo | |
(VersionedMonad (Demote v) m, SingI n, Ord (Demote v), SingKind v, HasClientAlgebra m api) => HasClient m (Until n :> api) Source # | |
Defined in Wire.API.VersionInfo | |
(SingI n, Ord (Demote v), Enum (Demote v), SingKind v, HasServer api ctx) => HasServer (Until n :> api :: Type) ctx Source # | |
Defined in Wire.API.VersionInfo | |
type SpecialiseToVersion (v :: k) (Until w :> api) Source # | |
Defined in Wire.API.Routes.SpecialiseToVersion type SpecialiseToVersion (v :: k) (Until w :> api) = If (v < w) (SpecialiseToVersion v api) EmptyAPI | |
type Client m (Until n :> api) Source # | |
Defined in Wire.API.VersionInfo | |
type SpecialiseToVersion v (Until w :> api) Source # | |
Defined in Wire.API.Routes.Version | |
type ServerT (Until n :> api :: Type) m Source # | |
Instances
RoutesToPaths api => RoutesToPaths (From v :> api :: Type) Source # | |
Defined in Wire.API.VersionInfo | |
(VersionedMonad (Demote v) m, SingI n, Ord (Demote v), SingKind v, HasClientAlgebra m api) => HasClient m (From n :> api) Source # | |
Defined in Wire.API.VersionInfo | |
(SingI n, Ord (Demote v), Enum (Demote v), SingKind v, HasServer api ctx) => HasServer (From n :> api :: Type) ctx Source # | |
Defined in Wire.API.VersionInfo | |
type SpecialiseToVersion (v :: k) (From w :> api) Source # | |
Defined in Wire.API.Routes.SpecialiseToVersion | |
type Client m (From n :> api) Source # | |
Defined in Wire.API.VersionInfo | |
type SpecialiseToVersion v (From w :> api) Source # | |
Defined in Wire.API.Routes.Version | |
type ServerT (From n :> api :: Type) m Source # | |
Swagger instances
type family SpecialiseToVersion (v :: Version) api Source #