@@ -15,6 +15,7 @@ import Data.Map (Map)
1515import Data.Proxy
1616import Data.Set (Set)
1717import qualified Data.Text as Text
18+import Data.Word
1819import GHC.Generics
1920
2021import Data.Swagger
@@ -676,4 +677,30 @@ timeOfDayParamSchemaJSON = [aesonQQ|
676677 "type": "string",
677678 "format": "hh:MM:ss"
678679}
679−|]
680+|]
681+
682+
683+-- ========================================================================
684+-- UnsignedInts
685+-- ========================================================================
686+data UnsignedInts = UnsignedInts
687+ { unsignedIntsUint32 :: Word32
688+ , unsignedIntsUint64 :: Word64
689+ } deriving (Generic)
690+
691+instance ToSchema UnsignedInts where
692+ declareNamedSchema = genericDeclareNamedSchema defaultSchemaOptions
693+ { fieldLabelModifier = map toLower . drop (length "unsignedInts") }
694+
695+unsignedIntsSchemaJSON :: Value
696+unsignedIntsSchemaJSON = [aesonQQ|
697+{
698+ "type": "object",
699+ "properties":
700+ {
701+ "uint32": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4294967295 },
702+ "uint64": { "type": "integer", "format": "int64", "minimum": 0, "maximum": 18446744073709551615 }
703+ },
704+ "required": ["uint32", "uint64"]
705+}
706+|]