git.iko.soy/typeable/swagger2
on master help sign in
Add model for Security Requirement object
commit103d7330122e63f97132e3a92ea4b291c2e95dab authorNickolay Kudasov <nickolay.kudasov@gmail.com> dateFri 6 Nov 2015, 20:29 (11 years ago) parent60c11bd
2 files changed+16−2
src/Data/Swagger/Internal.hs+15−2 swagger2.cabal+1
src/Data/Swagger/Internal.hs+15−2
@@ -1,8 +1,11 @@
1+{-# LANGUAGE DeriveGeneric #-}
12module Data.Swagger.Internal where
23
34import qualified Data.Aeson as JSON
45import Data.HashMap.Strict (HashMap)
56import Data.Text (Text)
7+import Data.Hashable (Hashable)
8+import GHC.Generics (Generic)
69import Network (HostName, PortNumber)
710import Network.HTTP.Media (MediaType)
811import Network.URL (URL)
@@ -574,6 +577,14 @@ data SwaggerSecuritySchemeType
574577 | SwaggerSecuritySchemeOAuth2 SwaggerOAuth2Params
575578 deriving (Show)
576579
580+data SwaggerSecuritySchemeTypeName
581+ = SwaggerSecuritySchemeTypeBasic
582+ | SwaggerSecuritySchemeTypeApiKey
583+ | SwaggerSecuritySchemeTypeOAuth2
584+ deriving (Show, Generic)
585+
586+instance Hashable SwaggerSecuritySchemeTypeName
587+
577588data SwaggerSecurityScheme = SwaggerSecurityScheme
578589 { -- | The type of the security scheme.
579590 swaggerSecuritySchemeType :: SwaggerSecuritySchemeType
@@ -582,8 +593,10 @@ data SwaggerSecurityScheme = SwaggerSecurityScheme
582593 , swaggerSecuritySchemeDescription :: Maybe Text
583594 } deriving (Show)
584595
585−data SwaggerSecurityRequirement = SwaggerSecurityRequirement
586− deriving (Show)
596+-- | Lists the required security schemes to execute this operation.
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
587600
588601-- | Allows adding meta data to a single tag that is used by @SwaggerOperation@.
589602-- It is not mandatory to have a @SwaggerTag@ per tag used there.
swagger2.cabal+1
@@ -21,6 +21,7 @@ library
2121 Data.Swagger.Internal
2222 build-depends: base >= 4.7 && < 5
2323 , aeson
24+ , hashable
2425 , http-media
2526 , network
2627 , text