Maintainer | Nickolay Kudasov <nickolay@getshoptv.com> |
---|---|
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Swagger™ is a project used to describe and document RESTful APIs.
The Swagger specification defines a set of files required to describe such an API. These files can then be used by the Swagger-UI project to display the API and Swagger-Codegen to generate clients in various languages. Additional utilities can also take advantage of the resulting files, such as testing tools.
Synopsis
- module Data.Swagger.Lens
- module Data.Swagger.Operation
- module Data.Swagger.ParamSchema
- module Data.Swagger.Schema
- module Data.Swagger.Schema.Validation
- data Swagger = Swagger {
- _swaggerInfo :: Info
- _swaggerHost :: Maybe Host
- _swaggerBasePath :: Maybe FilePath
- _swaggerSchemes :: Maybe [Scheme]
- _swaggerConsumes :: MimeList
- _swaggerProduces :: MimeList
- _swaggerPaths :: InsOrdHashMap FilePath PathItem
- _swaggerDefinitions :: Definitions Schema
- _swaggerParameters :: Definitions Param
- _swaggerResponses :: Definitions Response
- _swaggerSecurityDefinitions :: SecurityDefinitions
- _swaggerSecurity :: [SecurityRequirement]
- _swaggerTags :: InsOrdHashSet Tag
- _swaggerExternalDocs :: Maybe ExternalDocs
- data Host = Host {}
- data Scheme
- data Info = Info {}
- data Contact = Contact {}
- data License = License {
- _licenseName :: Text
- _licenseUrl :: Maybe URL
- data PathItem = PathItem {}
- data Operation = Operation {
- _operationTags :: InsOrdHashSet TagName
- _operationSummary :: Maybe Text
- _operationDescription :: Maybe Text
- _operationExternalDocs :: Maybe ExternalDocs
- _operationOperationId :: Maybe Text
- _operationConsumes :: Maybe MimeList
- _operationProduces :: Maybe MimeList
- _operationParameters :: [Referenced Param]
- _operationResponses :: Responses
- _operationSchemes :: Maybe [Scheme]
- _operationDeprecated :: Maybe Bool
- _operationSecurity :: [SecurityRequirement]
- data Tag = Tag {}
- type TagName = Text
- data SwaggerType t where
- type Format = Text
- type Definitions = InsOrdHashMap Text
- data CollectionFormat t where
- data Param = Param {}
- data ParamAnySchema
- data ParamOtherSchema = ParamOtherSchema {}
- data ParamLocation
- type ParamName = Text
- data Header = Header {}
- type HeaderName = Text
- data Example = Example {
- getExample :: Map MediaType Value
- data ParamSchema (t :: SwaggerKind *) = ParamSchema {
- _paramSchemaDefault :: Maybe Value
- _paramSchemaType :: Maybe (SwaggerType t)
- _paramSchemaFormat :: Maybe Format
- _paramSchemaItems :: Maybe (SwaggerItems t)
- _paramSchemaMaximum :: Maybe Scientific
- _paramSchemaExclusiveMaximum :: Maybe Bool
- _paramSchemaMinimum :: Maybe Scientific
- _paramSchemaExclusiveMinimum :: Maybe Bool
- _paramSchemaMaxLength :: Maybe Integer
- _paramSchemaMinLength :: Maybe Integer
- _paramSchemaPattern :: Maybe Pattern
- _paramSchemaMaxItems :: Maybe Integer
- _paramSchemaMinItems :: Maybe Integer
- _paramSchemaUniqueItems :: Maybe Bool
- _paramSchemaEnum :: Maybe [Value]
- _paramSchemaMultipleOf :: Maybe Scientific
- data Schema = Schema {
- _schemaTitle :: Maybe Text
- _schemaDescription :: Maybe Text
- _schemaRequired :: [ParamName]
- _schemaAllOf :: Maybe [Referenced Schema]
- _schemaProperties :: InsOrdHashMap Text (Referenced Schema)
- _schemaAdditionalProperties :: Maybe AdditionalProperties
- _schemaDiscriminator :: Maybe Text
- _schemaReadOnly :: Maybe Bool
- _schemaXml :: Maybe Xml
- _schemaExternalDocs :: Maybe ExternalDocs
- _schemaExample :: Maybe Value
- _schemaMaxProperties :: Maybe Integer
- _schemaMinProperties :: Maybe Integer
- _schemaParamSchema :: ParamSchema 'SwaggerKindSchema
- data NamedSchema = NamedSchema {}
- data SwaggerItems t where
- data Xml = Xml {
- _xmlName :: Maybe Text
- _xmlNamespace :: Maybe Text
- _xmlPrefix :: Maybe Text
- _xmlAttribute :: Maybe Bool
- _xmlWrapped :: Maybe Bool
- type Pattern = Text
- data AdditionalProperties
- data Responses = Responses {
- _responsesDefault :: Maybe (Referenced Response)
- _responsesResponses :: InsOrdHashMap HttpStatusCode (Referenced Response)
- data Response = Response {
- _responseDescription :: Text
- _responseSchema :: Maybe (Referenced Schema)
- _responseHeaders :: InsOrdHashMap HeaderName Header
- _responseExamples :: Maybe Example
- type HttpStatusCode = Int
- data SecurityScheme = SecurityScheme {}
- data SecuritySchemeType
- newtype SecurityRequirement = SecurityRequirement {
- getSecurityRequirement :: InsOrdHashMap Text [Text]
- newtype SecurityDefinitions = SecurityDefinitions (Definitions SecurityScheme)
- data ApiKeyParams = ApiKeyParams {}
- data ApiKeyLocation
- data OAuth2Params = OAuth2Params {
- _oauth2Flow :: OAuth2Flow
- _oauth2Scopes :: InsOrdHashMap Text Text
- data OAuth2Flow
- type AuthorizationURL = Text
- type TokenURL = Text
- data ExternalDocs = ExternalDocs {}
- newtype Reference = Reference {
- getReference :: Text
- data Referenced a
- newtype MimeList = MimeList {
- getMimeList :: [MediaType]
- newtype URL = URL {}
How to use this library
This section explains how to use this library to work with Swagger specification.
Monoid
instances
Monoid
Virtually all types representing Swagger specification have
instances.
The Monoid
type class provides two methods — Monoid
and mempty
.mappend
In this library you can use
for a default/empty value. For instance:mempty
>>>
encode (mempty :: Swagger)
"{\"swagger\":\"2.0\",\"info\":{\"title\":\"\",\"version\":\"\"}}"
As you can see some spec properties (e.g. "version"
) are there even when the spec is empty.
That is because these properties are actually required ones.
You should always override the default (empty) value for these properties, although it is not strictly necessary:
>>>
encode mempty { _infoTitle = "Todo API", _infoVersion = "1.0" }
"{\"title\":\"Todo API\",\"version\":\"1.0\"}"
You can merge two values using
or its infix version mappend
(
:<>
)
>>>
encode $ mempty { _infoTitle = "Todo API" } <> mempty { _infoVersion = "1.0" }
"{\"title\":\"Todo API\",\"version\":\"1.0\"}"
This can be useful for combining specifications of endpoints into a whole API specification:
-- /account subAPI specification accountAPI :: Swagger -- /task subAPI specification taskAPI :: Swagger -- while API specification is just a combination -- of subAPIs' specifications api :: Swagger api = accountAPI <> taskAPI
Lenses and prisms
Note: if you're working with the optics library, take a look at Data.Swagger.Optics.
Since
has a fairly complex structure, lenses and prisms are used
to work comfortably with it. In combination with Swagger
instances, lenses
make it fairly simple to construct/modify any part of the specification:Monoid
>>>
:{
encode $ (mempty :: Swagger) & definitions .~ [ ("User", mempty & type_ ?~ SwaggerString) ] & paths .~ [ ("/user", mempty & get ?~ (mempty & produces ?~ MimeList ["application/json"] & at 200 ?~ ("OK" & _Inline.schema ?~ Ref (Reference "User")) & at 404 ?~ "User info not found")) ] :} "{\"swagger\":\"2.0\",\"info\":{\"title\":\"\",\"version\":\"\"},\"paths\":{\"/user\":{\"get\":{\"produces\":[\"application/json\"],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/User\"}},\"404\":{\"description\":\"User info not found\"}}}}},\"definitions\":{\"User\":{\"type\":\"string\"}}}"
In the snippet above we declare an API with a single path /user
. This path provides method GET
which produces application/json
output. It should respond with code 200
and body specified
by schema User
which is defined in
property of swagger specification.
Alternatively it may respond with code definitions
404
meaning that user info is not found.
For convenience, swagger2
uses classy field lenses. It means that
field accessor names can be overloaded for different types. One such
common field is
. Many components of a Swagger specification
can have descriptions, and you can use the same name for them:description
>>>
encode $ (mempty :: Response) & description .~ "No content"
"{\"description\":\"No content\"}">>>
:{
encode $ (mempty :: Schema) & type_ ?~ SwaggerBoolean & description ?~ "To be or not to be" :} "{\"description\":\"To be or not to be\",\"type\":\"boolean\"}"
is basically the base schema specification and many types contain it (see ParamSchema
).
So for convenience, all HasParamSchema
fields are transitively made fields of the type that has it.
For example, you can use ParamSchema
to access type_
of SwaggerType
schema without having to use Header
:paramSchema
>>>
encode $ (mempty :: Header) & type_ ?~ SwaggerNumber
"{\"type\":\"number\"}"
Additionally, to simplify working with
, both Response
and Operation
have direct access to it via Responses
. Example:at
code
>>>
:{
encode $ (mempty :: Operation) & at 404 ?~ "Not found" :} "{\"responses\":{\"404\":{\"description\":\"Not found\"}}}"
You might've noticed that
has an extra underscore in its name
compared to, say, type_
field accessor.
This is because description
type
is a keyword in Haskell.
A few other field accessors are modified in this way:
Schema specification
and ParamSchema
are the two core types for data model specification.Schema
specifies all the common properties, available for every data schema.
The ParamSchema
tt
parameter imposes some restrictions on type
and items
properties (see
and SwaggerType
).SwaggerItems
is used for request and response bodies and allows specifying objects
with properties in addition to what Schema
provides.ParamSchema
In most cases you will have a Haskell data type for which you would like to
define a corresponding schema. To facilitate this use case
swagger2
provides two classes for schema encoding.
Both these classes provide means to encode types as Swagger schemas.
is intended to be used for primitive API endpoint parameters,
such as query parameters, headers and URL path pieces.
Its corresponding value-encoding class is ToParamSchema
(from ToHttpApiData
http-api-data
package).
is used for request and response bodies and mostly differ from
primitive parameters by allowing objects/mappings in addition to primitive types and arrays.
Its corresponding value-encoding class is ToSchema
(from ToJSON
aeson
package).
While lenses and prisms make it easy to define schemas, it might be that you don't need to:
and ToSchema
classes both have default ToParamSchema
-based implementations!Generic
default implementation is also aligned with ToSchema
default implementation with
the only difference being for sum encoding. ToJSON
defaults sum encoding to ToJSON
,
while defaultTaggedObject
defaults to something which corresponds to ToSchema
. This is due to
ObjectWithSingleField
behavior being hard to specify in Swagger.defaultTaggedObject
Here's an example showing
–ToJSON
correspondance:ToSchema
>>>
data Person = Person { name :: String, age :: Integer } deriving Generic
>>>
instance ToJSON Person
>>>
instance ToSchema Person
>>>
encode (Person "David" 28)
"{\"age\":28,\"name\":\"David\"}">>>
encode $ toSchema (Proxy :: Proxy Person)
"{\"required\":[\"name\",\"age\"],\"properties\":{\"name\":{\"type\":\"string\"},\"age\":{\"type\":\"integer\"}},\"type\":\"object\"}"
Please note that not all valid Haskell data types will have a proper swagger schema. For example while we can derive a schema for basic enums like
>>>
data SampleEnum = ChoiceOne | ChoiceTwo deriving Generic
>>>
instance ToSchema SampleEnum
>>>
instance ToJSON SampleEnum
and for sum types that have constructors with values
>>>
data SampleSumType = ChoiceInt Int | ChoiceString String deriving Generic
>>>
instance ToSchema SampleSumType
>>>
instance ToJSON SampleSumType
we can not derive a valid schema for a mix of the above. The following will result in a type error
>>>
data BadMixedType = ChoiceBool Bool | JustTag deriving Generic
>>>
instance ToSchema BadMixedType
... ... error: ... • Cannot derive Generic-based Swagger Schema for BadMixedType ... BadMixedType is a mixed sum type (has both unit and non-unit constructors). ... Swagger does not have a good representation for these types. ... Use genericDeclareNamedSchemaUnrestricted if you want to derive schema ... that matches aeson's Generic-based toJSON, ... but that's not supported by some Swagger tools. ... ... In the instance declaration for ‘ToSchema BadMixedType’
We can use genericDeclareNamedSchemaUnrestricted
to try our best to represent this type as a Swagger Schema and match ToJSON
:
>>>
data BadMixedType = ChoiceBool Bool | JustTag deriving Generic
>>>
instance ToSchema BadMixedType where declareNamedSchema = genericDeclareNamedSchemaUnrestricted defaultSchemaOptions
>>>
instance ToJSON BadMixedType
Manipulation
Sometimes you have to work with an imported or generated
.
For instance, http://hackage.haskell.org/package/servant-swagger generates basic Swagger
for a type-level servant API.Swagger
Lenses and prisms can be used to manipulate such specification to add additional information, tags, extra responses, etc.
To facilitate common needs, Data.Swagger.Operation
module provides useful helpers.
Validation
While
and ToParamSchema
provide means to easily obtain schemas for Haskell types,
there is no static mechanism to ensure those instances correspond to the ToSchema
or ToHttpApiData
instances.ToJSON
Data.Swagger.Schema.Validation
addresses
/ToJSON
validation.ToSchema
Re-exports
module Data.Swagger.Lens
module Data.Swagger.Operation
module Data.Swagger.ParamSchema
module Data.Swagger.Schema
Swagger specification
This is the root document object for the API specification.
Swagger | |
|
Instances
The host (name or ip) serving the API. It MAY include a port.
Instances
Eq Host Source # | |
Data Host Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Host -> c Host # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Host # dataTypeOf :: Host -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Host) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Host) # gmapT :: (forall b. Data b => b -> b) -> Host -> Host # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Host -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Host -> r # gmapQ :: (forall d. Data d => d -> u) -> Host -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Host -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Host -> m Host # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Host -> m Host # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Host -> m Host # | |
Show Host Source # | |
IsString Host Source # | |
Defined in Data.Swagger.Internal fromString :: String -> Host # | |
Generic Host Source # | |
FromJSON Host Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Host parseJSONList :: Value -> Parser [Host] | |
ToJSON Host Source # | |
Defined in Data.Swagger.Internal | |
HasName Host HostName Source # | |
Defined in Data.Swagger.Lens | |
(k ~ A_Lens, a ~ HostName, b ~ HostName) => LabelOptic "name" k Host Host a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Host Host a b | |
(k ~ A_Lens, a ~ Maybe PortNumber, b ~ Maybe PortNumber) => LabelOptic "port" k Host Host a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Host Host a b | |
HasHost Swagger (Maybe Host) Source # | |
HasPort Host (Maybe PortNumber) Source # | |
type Rep Host Source # | |
Defined in Data.Swagger.Internal type Rep Host = D1 ('MetaData "Host" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Host" 'PrefixI 'True) (S1 ('MetaSel ('Just "_hostName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HostName) :*: S1 ('MetaSel ('Just "_hostPort") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe PortNumber)))) |
The transfer protocol of the API.
Instances
Eq Scheme Source # | |
Data Scheme Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Scheme -> c Scheme # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Scheme # toConstr :: Scheme -> Constr # dataTypeOf :: Scheme -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Scheme) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Scheme) # gmapT :: (forall b. Data b => b -> b) -> Scheme -> Scheme # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Scheme -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Scheme -> r # gmapQ :: (forall d. Data d => d -> u) -> Scheme -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Scheme -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Scheme -> m Scheme # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Scheme -> m Scheme # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Scheme -> m Scheme # | |
Show Scheme Source # | |
Generic Scheme Source # | |
FromJSON Scheme Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Scheme parseJSONList :: Value -> Parser [Scheme] | |
ToJSON Scheme Source # | |
Defined in Data.Swagger.Internal toEncoding :: Scheme -> Encoding toJSONList :: [Scheme] -> Value toEncodingList :: [Scheme] -> Encoding | |
HasSchemes Operation (Maybe [Scheme]) Source # | |
HasSchemes Swagger (Maybe [Scheme]) Source # | |
type Rep Scheme Source # | |
Defined in Data.Swagger.Internal type Rep Scheme = D1 ('MetaData "Scheme" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) ((C1 ('MetaCons "Http" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Https" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Ws" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Wss" 'PrefixI 'False) (U1 :: Type -> Type))) |
Info types
The object provides metadata about the API. The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.
Info | |
|
Instances
Eq Info Source # | |
Data Info Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Info -> c Info # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Info # dataTypeOf :: Info -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Info) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Info) # gmapT :: (forall b. Data b => b -> b) -> Info -> Info # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r # gmapQ :: (forall d. Data d => d -> u) -> Info -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Info -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Info -> m Info # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info # | |
Show Info Source # | |
Generic Info Source # | |
Semigroup Info Source # | |
Monoid Info Source # | |
FromJSON Info Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Info parseJSONList :: Value -> Parser [Info] | |
ToJSON Info Source # | |
Defined in Data.Swagger.Internal | |
AesonDefaultValue Info Source # | |
Defined in Data.Swagger.Internal defaultValue :: Maybe Info Source # | |
SwaggerMonoid Info Source # | |
Defined in Data.Swagger.Internal swaggerMempty :: Info Source # | |
HasInfo Swagger Info Source # | |
HasVersion Info Text Source # | |
HasTitle Info Text Source # | |
(k ~ A_Lens, a ~ Maybe Contact, b ~ Maybe Contact) => LabelOptic "contact" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "description" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
(k ~ A_Lens, a ~ Maybe License, b ~ Maybe License) => LabelOptic "license" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "termsOfService" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "title" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "version" k Info Info a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Info Info a b | |
HasTermsOfService Info (Maybe Text) Source # | |
Defined in Data.Swagger.Lens | |
HasLicense Info (Maybe License) Source # | |
HasDescription Info (Maybe Text) Source # | |
Defined in Data.Swagger.Lens | |
HasContact Info (Maybe Contact) Source # | |
type Rep Info Source # | |
Defined in Data.Swagger.Internal type Rep Info = D1 ('MetaData "Info" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Info" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_infoTitle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "_infoDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_infoTermsOfService") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)))) :*: (S1 ('MetaSel ('Just "_infoContact") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Contact)) :*: (S1 ('MetaSel ('Just "_infoLicense") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe License)) :*: S1 ('MetaSel ('Just "_infoVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))))) |
Contact information for the exposed API.
Contact | |
|
Instances
Eq Contact Source # | |
Data Contact Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Contact -> c Contact # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Contact # toConstr :: Contact -> Constr # dataTypeOf :: Contact -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Contact) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Contact) # gmapT :: (forall b. Data b => b -> b) -> Contact -> Contact # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Contact -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Contact -> r # gmapQ :: (forall d. Data d => d -> u) -> Contact -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Contact -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Contact -> m Contact # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Contact -> m Contact # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Contact -> m Contact # | |
Show Contact Source # | |
Generic Contact Source # | |
Semigroup Contact Source # | |
Monoid Contact Source # | |
FromJSON Contact Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Contact parseJSONList :: Value -> Parser [Contact] | |
ToJSON Contact Source # | |
Defined in Data.Swagger.Internal toEncoding :: Contact -> Encoding toJSONList :: [Contact] -> Value toEncodingList :: [Contact] -> Encoding | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "email" k Contact Contact a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Contact Contact a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "name" k Contact Contact a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Contact Contact a b | |
(k ~ A_Lens, a ~ Maybe URL, b ~ Maybe URL) => LabelOptic "url" k Contact Contact a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Contact Contact a b | |
HasName Contact (Maybe Text) Source # | |
HasContact Info (Maybe Contact) Source # | |
HasUrl Contact (Maybe URL) Source # | |
HasEmail Contact (Maybe Text) Source # | |
type Rep Contact Source # | |
Defined in Data.Swagger.Internal type Rep Contact = D1 ('MetaData "Contact" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Contact" 'PrefixI 'True) (S1 ('MetaSel ('Just "_contactName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "_contactUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe URL)) :*: S1 ('MetaSel ('Just "_contactEmail") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))) |
License information for the exposed API.
License | |
|
Instances
Eq License Source # | |
Data License Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> License -> c License # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c License # toConstr :: License -> Constr # dataTypeOf :: License -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c License) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c License) # gmapT :: (forall b. Data b => b -> b) -> License -> License # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> License -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> License -> r # gmapQ :: (forall d. Data d => d -> u) -> License -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> License -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> License -> m License # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> License -> m License # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> License -> m License # | |
Show License Source # | |
IsString License Source # | |
Defined in Data.Swagger.Internal fromString :: String -> License # | |
Generic License Source # | |
FromJSON License Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser License parseJSONList :: Value -> Parser [License] | |
ToJSON License Source # | |
Defined in Data.Swagger.Internal toEncoding :: License -> Encoding toJSONList :: [License] -> Value toEncodingList :: [License] -> Encoding | |
HasName License Text Source # | |
(k ~ A_Lens, a ~ Text, b ~ Text) => LabelOptic "name" k License License a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx License License a b | |
(k ~ A_Lens, a ~ Maybe URL, b ~ Maybe URL) => LabelOptic "url" k License License a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx License License a b | |
HasLicense Info (Maybe License) Source # | |
HasUrl License (Maybe URL) Source # | |
type Rep License Source # | |
Defined in Data.Swagger.Internal type Rep License = D1 ('MetaData "License" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "License" 'PrefixI 'True) (S1 ('MetaSel ('Just "_licenseName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "_licenseUrl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe URL)))) |
PathItem
Describes the operations available on a single path.
A
may be empty, due to ACL constraints.
The path itself is still exposed to the documentation viewer
but they will not know which operations and parameters are available.PathItem
PathItem | |
|
Instances
Operations
Describes a single API operation on a path.
Operation | |
|
Instances
Allows adding meta data to a single tag that is used by Operation
.
It is not mandatory to have a Tag
per tag used there.
Tag | |
|
Instances
Eq Tag Source # | |
Data Tag Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tag -> c Tag # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Tag # dataTypeOf :: Tag -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Tag) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Tag) # gmapT :: (forall b. Data b => b -> b) -> Tag -> Tag # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tag -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tag -> r # gmapQ :: (forall d. Data d => d -> u) -> Tag -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Tag -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tag -> m Tag # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tag -> m Tag # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tag -> m Tag # | |
Ord Tag Source # | |
Show Tag Source # | |
IsString Tag Source # | |
Defined in Data.Swagger.Internal fromString :: String -> Tag # | |
Generic Tag Source # | |
FromJSON Tag Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Tag parseJSONList :: Value -> Parser [Tag] | |
ToJSON Tag Source # | |
Defined in Data.Swagger.Internal | |
Hashable Tag Source # | |
Defined in Data.Swagger.Internal | |
HasName Tag TagName Source # | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "description" k Tag Tag a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Tag Tag a b | |
(k ~ A_Lens, a ~ Maybe ExternalDocs, b ~ Maybe ExternalDocs) => LabelOptic "externalDocs" k Tag Tag a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Tag Tag a b | |
(k ~ A_Lens, a ~ TagName, b ~ TagName) => LabelOptic "name" k Tag Tag a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Tag Tag a b | |
HasTags Swagger (InsOrdHashSet Tag) Source # | |
HasExternalDocs Tag (Maybe ExternalDocs) Source # | |
Defined in Data.Swagger.Lens externalDocs :: Lens' Tag (Maybe ExternalDocs) Source # | |
HasDescription Tag (Maybe Text) Source # | |
Defined in Data.Swagger.Lens | |
type Rep Tag Source # | |
Defined in Data.Swagger.Internal type Rep Tag = D1 ('MetaData "Tag" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Tag" 'PrefixI 'True) (S1 ('MetaSel ('Just "_tagName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TagName) :*: (S1 ('MetaSel ('Just "_tagDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_tagExternalDocs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ExternalDocs))))) |
Types and formats
data SwaggerType t where Source #
Instances
type Definitions = InsOrdHashMap Text Source #
A list of definitions that can be used in references.
data CollectionFormat t where Source #
Determines the format of the array.
Instances
Parameters
Describes a single operation parameter. A unique parameter is defined by a combination of a name and location.
Param | |
|
Instances
data ParamAnySchema Source #
Instances
data ParamOtherSchema Source #
ParamOtherSchema | |
|
Instances
data ParamLocation Source #
ParamQuery | Parameters that are appended to the URL.
For example, in |
ParamHeader | Custom headers that are expected as part of the request. |
ParamPath | Used together with Path Templating, where the parameter value is actually part of the operation's URL.
This does not include the host or base path of the API.
For example, in |
ParamFormData | Used to describe the payload of an HTTP request when either |
Instances
Header | |
|
Instances
Eq Header Source # | |
Data Header Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Header -> c Header # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Header # toConstr :: Header -> Constr # dataTypeOf :: Header -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Header) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Header) # gmapT :: (forall b. Data b => b -> b) -> Header -> Header # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Header -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Header -> r # gmapQ :: (forall d. Data d => d -> u) -> Header -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Header -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Header -> m Header # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Header -> m Header # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Header -> m Header # | |
Show Header Source # | |
Generic Header Source # | |
Semigroup Header Source # | |
Monoid Header Source # | |
FromJSON Header Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Header parseJSONList :: Value -> Parser [Header] | |
ToJSON Header Source # | |
Defined in Data.Swagger.Internal toEncoding :: Header -> Encoding toJSONList :: [Header] -> Value toEncodingList :: [Header] -> Encoding | |
Generic Header Source # | |
HasDatatypeInfo Header Source # | |
Defined in Data.Swagger.Internal type DatatypeInfoOf Header :: DatatypeInfo datatypeInfo :: proxy Header -> DatatypeInfo (Code Header) | |
HasSwaggerAesonOptions Header Source # | |
Defined in Data.Swagger.Internal swaggerAesonOptions :: Proxy Header -> SwaggerAesonOptions Source # aesonDefaults :: Proxy Header -> POP Maybe (Code Header) Source # | |
(a ~ Maybe Value, b ~ Maybe Value) => LabelOptic "default" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "description" k Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Header Header a b | |
(a ~ Maybe [Value], b ~ Maybe [Value]) => LabelOptic "enum" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Bool, b ~ Maybe Bool) => LabelOptic "exclusiveMaximum" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Bool, b ~ Maybe Bool) => LabelOptic "exclusiveMinimum" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Format, b ~ Maybe Format) => LabelOptic "format" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe (SwaggerItems ('SwaggerKindNormal Header)), b ~ Maybe (SwaggerItems ('SwaggerKindNormal Header))) => LabelOptic "items" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Integer, b ~ Maybe Integer) => LabelOptic "maxItems" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Integer, b ~ Maybe Integer) => LabelOptic "maxLength" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Scientific, b ~ Maybe Scientific) => LabelOptic "maximum" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Integer, b ~ Maybe Integer) => LabelOptic "minItems" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Integer, b ~ Maybe Integer) => LabelOptic "minLength" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Scientific, b ~ Maybe Scientific) => LabelOptic "minimum" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Scientific, b ~ Maybe Scientific) => LabelOptic "multipleOf" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(k ~ A_Lens, a ~ ParamSchema ('SwaggerKindNormal Header), b ~ ParamSchema ('SwaggerKindNormal Header)) => LabelOptic "paramSchema" k Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Header Header a b | |
(a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "pattern" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe (SwaggerType ('SwaggerKindNormal Header)), b ~ Maybe (SwaggerType ('SwaggerKindNormal Header))) => LabelOptic "type" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
(a ~ Maybe Bool, b ~ Maybe Bool) => LabelOptic "uniqueItems" A_Lens Header Header a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic A_Lens NoIx Header Header a b | |
HasDescription Header (Maybe Text) Source # | |
Defined in Data.Swagger.Lens | |
HasParamSchema Header (ParamSchema ('SwaggerKindNormal Header)) Source # | |
Defined in Data.Swagger.Lens paramSchema :: Lens' Header (ParamSchema ('SwaggerKindNormal Header)) Source # | |
HasType Header (Maybe (SwaggerType ('SwaggerKindNormal Header))) Source # | |
Defined in Data.Swagger.Lens type_ :: Lens' Header (Maybe (SwaggerType ('SwaggerKindNormal Header))) Source # | |
HasDefault Header (Maybe Value) Source # | |
HasHeaders Response (InsOrdHashMap HeaderName Header) Source # | |
Defined in Data.Swagger.Lens | |
type Rep Header Source # | |
Defined in Data.Swagger.Internal type Rep Header = D1 ('MetaData "Header" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Header" 'PrefixI 'True) (S1 ('MetaSel ('Just "_headerDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_headerParamSchema") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ParamSchema ('SwaggerKindNormal Header))))) | |
type Code Header Source # | |
Defined in Data.Swagger.Internal | |
type DatatypeInfoOf Header Source # | |
Defined in Data.Swagger.Internal type DatatypeInfoOf Header = 'ADT "Data.Swagger.Internal" "Header" '['Record "Header" '['FieldInfo "_headerDescription", 'FieldInfo "_headerParamSchema"]] '['['StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy]] |
type HeaderName = Text Source #
Example | |
|
Instances
Eq Example Source # | |
Data Example Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Example -> c Example # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Example # toConstr :: Example -> Constr # dataTypeOf :: Example -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Example) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Example) # gmapT :: (forall b. Data b => b -> b) -> Example -> Example # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Example -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Example -> r # gmapQ :: (forall d. Data d => d -> u) -> Example -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Example -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Example -> m Example # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Example -> m Example # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Example -> m Example # | |
Show Example Source # | |
Generic Example Source # | |
Semigroup Example Source # | |
Monoid Example Source # | |
FromJSON Example Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Example parseJSONList :: Value -> Parser [Example] | |
ToJSON Example Source # | |
Defined in Data.Swagger.Internal toEncoding :: Example -> Encoding toJSONList :: [Example] -> Value toEncodingList :: [Example] -> Encoding | |
HasExamples Response (Maybe Example) Source # | |
type Rep Example Source # | |
Defined in Data.Swagger.Internal |
Schemas
data ParamSchema (t :: SwaggerKind *) Source #
ParamSchema | |
|
Instances
Schema | |
|
Instances
data NamedSchema Source #
A
with an optional name.
This name can be used in references.Schema
Instances
data SwaggerItems t where Source #
Items for
schemas.SwaggerArray
should be used only for query params, headers and path pieces.
The SwaggerItemsPrimitive
parameter specifies how elements of an array should be displayed.
Note that CollectionFormat
tfmt
in
specifies format for elements of type SwaggerItemsPrimitive
fmt schemaschema
.
This is different from the original Swagger's Items Object.
should be used to specify homogenous array SwaggerItemsObject
s.Schema
should be used to specify tuple SwaggerItemsArray
s.Schema
Instances
Xml | |
|
Instances
Eq Xml Source # | |
Data Xml Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Xml -> c Xml # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Xml # dataTypeOf :: Xml -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Xml) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Xml) # gmapT :: (forall b. Data b => b -> b) -> Xml -> Xml # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Xml -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Xml -> r # gmapQ :: (forall d. Data d => d -> u) -> Xml -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Xml -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Xml -> m Xml # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Xml -> m Xml # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Xml -> m Xml # | |
Show Xml Source # | |
Generic Xml Source # | |
FromJSON Xml Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Xml parseJSONList :: Value -> Parser [Xml] | |
ToJSON Xml Source # | |
Defined in Data.Swagger.Internal | |
(k ~ A_Lens, a ~ Maybe Bool, b ~ Maybe Bool) => LabelOptic "attribute" k Xml Xml a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Xml Xml a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "name" k Xml Xml a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Xml Xml a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "namespace" k Xml Xml a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Xml Xml a b | |
(k ~ A_Lens, a ~ Maybe Text, b ~ Maybe Text) => LabelOptic "prefix" k Xml Xml a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Xml Xml a b | |
(k ~ A_Lens, a ~ Maybe Bool, b ~ Maybe Bool) => LabelOptic "wrapped" k Xml Xml a b | |
Defined in Data.Swagger.Optics labelOptic :: Optic k NoIx Xml Xml a b | |
HasName Xml (Maybe Text) Source # | |
HasXml Schema (Maybe Xml) Source # | |
HasWrapped Xml (Maybe Bool) Source # | |
HasPrefix Xml (Maybe Text) Source # | |
HasNamespace Xml (Maybe Text) Source # | |
HasAttribute Xml (Maybe Bool) Source # | |
type Rep Xml Source # | |
Defined in Data.Swagger.Internal type Rep Xml = D1 ('MetaData "Xml" "Data.Swagger.Internal" "swagger2-2.7-inplace" 'False) (C1 ('MetaCons "Xml" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_xmlName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_xmlNamespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))) :*: (S1 ('MetaSel ('Just "_xmlPrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "_xmlAttribute") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool)) :*: S1 ('MetaSel ('Just "_xmlWrapped") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool)))))) |
data AdditionalProperties Source #
Instances
Responses
A container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.
Responses | |
|
Instances
Describes a single response from an API Operation.
Response | |
|
Instances
type HttpStatusCode = Int Source #
Security
data SecurityScheme Source #
SecurityScheme | |
|
Instances
data SecuritySchemeType Source #
Instances
newtype SecurityRequirement Source #
Lists the required security schemes to execute this operation. The object can have multiple security schemes declared in it which are all required (that is, there is a logical AND between the schemes).
SecurityRequirement | |
|
Instances
newtype SecurityDefinitions Source #
Instances
API key
data ApiKeyParams Source #
ApiKeyParams | |
|
Instances
data ApiKeyLocation Source #
The location of the API key.
Instances
OAuth2
data OAuth2Params Source #
OAuth2Params | |
|
Instances
data OAuth2Flow Source #
OAuth2Implicit AuthorizationURL | |
OAuth2Password TokenURL | |
OAuth2Application TokenURL | |
OAuth2AccessCode AuthorizationURL TokenURL |
Instances
type AuthorizationURL = Text Source #
The authorization URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.
The token URL to be used for OAuth2 flow. This SHOULD be in the form of a URL.
External documentation
data ExternalDocs Source #
Allows referencing an external resource for extended documentation.
ExternalDocs | |
|
Instances
References
A simple object to allow referencing other definitions in the specification. It can be used to reference parameters and responses that are defined at the top level for reuse.
Instances
Eq Reference Source # | |
Data Reference Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Reference -> c Reference # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Reference # toConstr :: Reference -> Constr # dataTypeOf :: Reference -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Reference) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Reference) # gmapT :: (forall b. Data b => b -> b) -> Reference -> Reference # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Reference -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Reference -> r # gmapQ :: (forall d. Data d => d -> u) -> Reference -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Reference -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Reference -> m Reference # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Reference -> m Reference # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Reference -> m Reference # | |
Show Reference Source # | |
FromJSON Reference Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser Reference parseJSONList :: Value -> Parser [Reference] | |
ToJSON Reference Source # | |
Defined in Data.Swagger.Internal toEncoding :: Reference -> Encoding toJSONList :: [Reference] -> Value toEncodingList :: [Reference] -> Encoding |
data Referenced a Source #
Instances
Miscellaneous
MimeList | |
|
Instances
Instances
Eq URL Source # | |
Data URL Source # | |
Defined in Data.Swagger.Internal gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> URL -> c URL # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c URL # dataTypeOf :: URL -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c URL) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c URL) # gmapT :: (forall b. Data b => b -> b) -> URL -> URL # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> URL -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> URL -> r # gmapQ :: (forall d. Data d => d -> u) -> URL -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> URL -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> URL -> m URL # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> URL -> m URL # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> URL -> m URL # | |
Ord URL Source # | |
Show URL Source # | |
FromJSON URL Source # | |
Defined in Data.Swagger.Internal parseJSON :: Value -> Parser URL parseJSONList :: Value -> Parser [URL] | |
ToJSON URL Source # | |
Defined in Data.Swagger.Internal | |
Hashable URL Source # | |
Defined in Data.Swagger.Internal | |
SwaggerMonoid URL Source # | |
Defined in Data.Swagger.Internal swaggerMempty :: URL Source # | |
HasUrl ExternalDocs URL Source # | |
Defined in Data.Swagger.Lens url :: Lens' ExternalDocs URL Source # | |
HasUrl License (Maybe URL) Source # | |
HasUrl Contact (Maybe URL) Source # | |