@@ -15,6 +15,7 @@ import Data.Map (Map)
15import Data.Proxy
15import Data.Proxy
16import Data.Set (Set)
16import Data.Set (Set)
17import qualified Data.Text as Text
17import qualified Data.Text as Text
18import GHC.Generics
19import GHC.Generics
20import Data.Swagger
21import Data.Swagger
@@ -676,4 +677,30 @@ timeOfDayParamSchemaJSON = [aesonQQ|
676 "type": "string",
677 "type": "string",
677 "format": "hh:MM:ss"
678 "format": "hh:MM:ss"
683+-- ========================================================================
685+-- ========================================================================
686+data UnsignedInts = UnsignedInts
687+ { unsignedIntsUint32 :: Word32
688+ , unsignedIntsUint64 :: Word64
689+ } deriving (Generic)
691+instance ToSchema UnsignedInts where
692+ declareNamedSchema = genericDeclareNamedSchema defaultSchemaOptions
693+ { fieldLabelModifier = map toLower . drop (length "unsignedInts") }
695+unsignedIntsSchemaJSON :: Value
696+unsignedIntsSchemaJSON = [aesonQQ|
701+ "uint32": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4294967295 },
702+ "uint64": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 18446744073709551615 }
704+ "required": ["uint32", "uint64"]