@@ -1,8 +1,11 @@
1+{-# LANGUAGE DeriveGeneric #-}
1module Data.Swagger.Internal where
2module Data.Swagger.Internal where
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)
580+data SwaggerSecuritySchemeTypeName
581+ = SwaggerSecuritySchemeTypeBasic
582+ | SwaggerSecuritySchemeTypeApiKey
583+ | SwaggerSecuritySchemeTypeOAuth2
584+ deriving (Show, Generic)
586+instance Hashable SwaggerSecuritySchemeTypeName
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)
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
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.