git.iko.soy/typeable/openapi3
on master help sign in
Add model for Security Requirement object
103d733Nickolay Kudasov
src/Data/Swagger/Internal.hs+15−2
@@ -1,8 +1,11 @@
1+{-# LANGUAGE DeriveGeneric #-}
1module Data.Swagger.Internal where
2module Data.Swagger.Internal where
2
3
3import qualified Data.Aeson as JSON
4import qualified Data.Aeson as JSON
4import Data.HashMap.Strict (HashMap)
5import Data.HashMap.Strict (HashMap)
5import Data.Text (Text)
6import Data.Text (Text)
7+import Data.Hashable (Hashable)
8+import GHC.Generics (Generic)
6import Network (HostName, PortNumber)
9import Network (HostName, PortNumber)
7import Network.HTTP.Media (MediaType)
10import Network.HTTP.Media (MediaType)
8import Network.URL (URL)
11import Network.URL (URL)
@@ -574,6 +577,14 @@ data SwaggerSecuritySchemeType
574 | SwaggerSecuritySchemeOAuth2 SwaggerOAuth2Params
577 | SwaggerSecuritySchemeOAuth2 SwaggerOAuth2Params
575 deriving (Show)
578 deriving (Show)
576
579
580+data SwaggerSecuritySchemeTypeName
581+ = SwaggerSecuritySchemeTypeBasic
582+ | SwaggerSecuritySchemeTypeApiKey
583+ | SwaggerSecuritySchemeTypeOAuth2
584+ deriving (Show, Generic)
585+
586+instance Hashable SwaggerSecuritySchemeTypeName
587+
577data SwaggerSecurityScheme = SwaggerSecurityScheme
588data SwaggerSecurityScheme = SwaggerSecurityScheme
578 { -- | The type of the security scheme.
589 { -- | The type of the security scheme.
579 swaggerSecuritySchemeType :: SwaggerSecuritySchemeType
590 swaggerSecuritySchemeType :: SwaggerSecuritySchemeType
@@ -582,8 +593,10 @@ data SwaggerSecurityScheme = SwaggerSecurityScheme
582 , swaggerSecuritySchemeDescription :: Maybe Text
593 , swaggerSecuritySchemeDescription :: Maybe Text
583 } deriving (Show)
594 } deriving (Show)
584
595
585−data SwaggerSecurityRequirement = SwaggerSecurityRequirement
596+-- | Lists the required security schemes to execute this operation.
586− deriving (Show)
597+-- The object can have multiple security schemes declared in it which are all required
598+-- (that is, there is a logical AND between the schemes).
599+type SwaggerSecurityRequirement = HashMap SwaggerSecuritySchemeTypeName Text
587
600
588-- | Allows adding meta data to a single tag that is used by @SwaggerOperation@.
601-- | Allows adding meta data to a single tag that is used by @SwaggerOperation@.
589-- It is not mandatory to have a @SwaggerTag@ per tag used there.
602-- It is not mandatory to have a @SwaggerTag@ per tag used there.
swagger2.cabal+1
@@ -21,6 +21,7 @@ library
21 Data.Swagger.Internal
21 Data.Swagger.Internal
22 build-depends: base >= 4.7 && < 5
22 build-depends: base >= 4.7 && < 5
23 , aeson
23 , aeson
24+ , hashable
24 , http-media
25 , http-media
25 , network
26 , network
26 , text
27 , text