packages feed

openapi-petstore 0.0.3.0 → 0.0.4.0

raw patch · 17 files changed

+1542/−557 lines, 17 filesdep +monad-loggerdep ~containersdep ~http-api-datadep ~katip

Dependencies added: monad-logger

Dependency ranges changed: containers, http-api-data, katip, network

Files

README.md view
@@ -73,7 +73,7 @@ | modelDeriving                   | Additional classes to include in the deriving() clause of Models                                                              |          |                    | | requestType                     | Set the name of the type used to generate requests                                                                            |          | OpenAPIPetstoreRequest                     | | strictFields                    | Add strictness annotations to all model fields                                                                                | true     | true                  |-| useMonadLogger                  | Use the monad-logger package to provide logging (if instead false, use the katip logging package)                             | false    | false                |+| useKatip                        | Sets the default value for the UseKatip cabal flag. If true, the katip package provides logging instead of monad-logger       | true     | true                      |  [1]: https://www.stackage.org/haddock/lts-9.0/iso8601-time-0.1.4/Data-Time-ISO8601.html#v:formatISO8601Millis 
lib/OpenAPIPetstore/API/AnotherFake.hs view
@@ -67,15 +67,15 @@ --  op123testSpecialTags    :: (Consumes Op123testSpecialTags MimeJSON, MimeRender MimeJSON Client)-  => Client -- ^ "client" -  client model+  => Client -- ^ "body" -  client model   -> OpenAPIPetstoreRequest Op123testSpecialTags MimeJSON Client MimeJSON-op123testSpecialTags client =+op123testSpecialTags body =   _mkRequest "PATCH" ["/another-fake/dummy"]-    `setBodyParam` client+    `setBodyParam` body  data Op123testSpecialTags  --- | /Body Param/ "Client" - client model+-- | /Body Param/ "body" - client model instance HasBodyParam Op123testSpecialTags Client   -- | @application/json@
lib/OpenAPIPetstore/API/Fake.hs view
@@ -57,6 +57,44 @@  -- ** Fake +-- *** createXmlItem++-- | @POST \/fake\/create_xml_item@+-- +-- creates an XmlItem+-- +-- this route creates an XmlItem+-- +createXmlItem +  :: (Consumes CreateXmlItem contentType, MimeRender contentType XmlItem)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> XmlItem -- ^ "xmlItem" -  XmlItem Body+  -> OpenAPIPetstoreRequest CreateXmlItem contentType NoContent MimeNoContent+createXmlItem _ xmlItem =+  _mkRequest "POST" ["/fake/create_xml_item"]+    `setBodyParam` xmlItem++data CreateXmlItem ++-- | /Body Param/ "XmlItem" - XmlItem Body+instance HasBodyParam CreateXmlItem XmlItem ++-- | @application/xml@+instance Consumes CreateXmlItem MimeXML+-- | @text/xml@+instance Consumes CreateXmlItem MimeTextxml+-- | @text/xml; charset=utf-8@+instance Consumes CreateXmlItem MimeTextxmlCharsetutf8+-- | @text/xml; charset=utf-16@+instance Consumes CreateXmlItem MimeTextxmlCharsetutf16+-- | @application/xml; charset=utf-8@+instance Consumes CreateXmlItem MimeXmlCharsetutf8+-- | @application/xml; charset=utf-16@+instance Consumes CreateXmlItem MimeXmlCharsetutf16++instance Produces CreateXmlItem MimeNoContent++ -- *** fakeOuterBooleanSerialize  -- | @POST \/fake\/outer\/boolean@@@ -75,6 +113,9 @@  -- | /Body Param/ "body" - Input boolean as post body instance HasBodyParam FakeOuterBooleanSerialize BodyBool +    +-- | @*/*@+instance MimeType mtype => Consumes FakeOuterBooleanSerialize mtype  -- | @*/*@ instance MimeType mtype => Produces FakeOuterBooleanSerialize mtype@@ -96,8 +137,11 @@  data FakeOuterCompositeSerialize  --- | /Body Param/ "OuterComposite" - Input composite as post body+-- | /Body Param/ "body" - Input composite as post body instance HasBodyParam FakeOuterCompositeSerialize OuterComposite +    +-- | @*/*@+instance MimeType mtype => Consumes FakeOuterCompositeSerialize mtype  -- | @*/*@ instance MimeType mtype => Produces FakeOuterCompositeSerialize mtype@@ -120,7 +164,10 @@ data FakeOuterNumberSerialize   -- | /Body Param/ "body" - Input number as post body-instance HasBodyParam FakeOuterNumberSerialize Body +instance HasBodyParam FakeOuterNumberSerialize BodyDouble +    +-- | @*/*@+instance MimeType mtype => Consumes FakeOuterNumberSerialize mtype  -- | @*/*@ instance MimeType mtype => Produces FakeOuterNumberSerialize mtype@@ -144,6 +191,9 @@  -- | /Body Param/ "body" - Input string as post body instance HasBodyParam FakeOuterStringSerialize BodyText +    +-- | @*/*@+instance MimeType mtype => Consumes FakeOuterStringSerialize mtype  -- | @*/*@ instance MimeType mtype => Produces FakeOuterStringSerialize mtype@@ -157,11 +207,11 @@ --  testBodyWithFileSchema    :: (Consumes TestBodyWithFileSchema MimeJSON, MimeRender MimeJSON FileSchemaTestClass)-  => FileSchemaTestClass -- ^ "fileSchemaTestClass"+  => FileSchemaTestClass -- ^ "body"   -> OpenAPIPetstoreRequest TestBodyWithFileSchema MimeJSON NoContent MimeNoContent-testBodyWithFileSchema fileSchemaTestClass =+testBodyWithFileSchema body =   _mkRequest "PUT" ["/fake/body-with-file-schema"]-    `setBodyParam` fileSchemaTestClass+    `setBodyParam` body  data TestBodyWithFileSchema  instance HasBodyParam TestBodyWithFileSchema FileSchemaTestClass @@ -178,12 +228,12 @@ --  testBodyWithQueryParams    :: (Consumes TestBodyWithQueryParams MimeJSON, MimeRender MimeJSON User)-  => User -- ^ "user"+  => User -- ^ "body"   -> Query -- ^ "query"   -> OpenAPIPetstoreRequest TestBodyWithQueryParams MimeJSON NoContent MimeNoContent-testBodyWithQueryParams user (Query query) =+testBodyWithQueryParams body (Query query) =   _mkRequest "PUT" ["/fake/body-with-query-params"]-    `setBodyParam` user+    `setBodyParam` body     `setQuery` toQuery ("query", Just query)  data TestBodyWithQueryParams @@ -205,15 +255,15 @@ --  testClientModel    :: (Consumes TestClientModel MimeJSON, MimeRender MimeJSON Client)-  => Client -- ^ "client" -  client model+  => Client -- ^ "body" -  client model   -> OpenAPIPetstoreRequest TestClientModel MimeJSON Client MimeJSON-testClientModel client =+testClientModel body =   _mkRequest "PATCH" ["/fake"]-    `setBodyParam` client+    `setBodyParam` body  data TestClientModel  --- | /Body Param/ "Client" - client model+-- | /Body Param/ "body" - client model instance HasBodyParam TestClientModel Client   -- | @application/json@@@ -403,7 +453,6 @@ instance HasOptionalParam TestGroupParameters Int64Group where   applyOptionalParam req (Int64Group xs) =     req `setQuery` toQuery ("int64_group", Just xs)- instance Produces TestGroupParameters MimeNoContent  @@ -414,17 +463,17 @@ -- test inline additionalProperties --  testInlineAdditionalProperties -  :: (Consumes TestInlineAdditionalProperties MimeJSON, MimeRender MimeJSON RequestBody)-  => RequestBody -- ^ "requestBody" -  request body+  :: (Consumes TestInlineAdditionalProperties MimeJSON, MimeRender MimeJSON ParamMapMapStringText)+  => ParamMapMapStringText -- ^ "param" -  request body   -> OpenAPIPetstoreRequest TestInlineAdditionalProperties MimeJSON NoContent MimeNoContent-testInlineAdditionalProperties requestBody =+testInlineAdditionalProperties param =   _mkRequest "POST" ["/fake/inline-additionalProperties"]-    `setBodyParam` requestBody+    `setBodyParam` param  data TestInlineAdditionalProperties  --- | /Body Param/ "request_body" - request body-instance HasBodyParam TestInlineAdditionalProperties RequestBody +-- | /Body Param/ "param" - request body+instance HasBodyParam TestInlineAdditionalProperties ParamMapMapStringText   -- | @application/json@ instance Consumes TestInlineAdditionalProperties MimeJSON
lib/OpenAPIPetstore/API/FakeClassnameTags123.hs view
@@ -69,16 +69,16 @@ --  testClassname    :: (Consumes TestClassname MimeJSON, MimeRender MimeJSON Client)-  => Client -- ^ "client" -  client model+  => Client -- ^ "body" -  client model   -> OpenAPIPetstoreRequest TestClassname MimeJSON Client MimeJSON-testClassname client =+testClassname body =   _mkRequest "PATCH" ["/fake_classname_test"]     `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKeyQuery)-    `setBodyParam` client+    `setBodyParam` body  data TestClassname  --- | /Body Param/ "Client" - client model+-- | /Body Param/ "body" - client model instance HasBodyParam TestClassname Client   -- | @application/json@
lib/OpenAPIPetstore/API/Pet.hs view
@@ -68,16 +68,16 @@ addPet    :: (Consumes AddPet contentType, MimeRender contentType Pet)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> Pet -- ^ "pet" -  Pet object that needs to be added to the store+  -> Pet -- ^ "body" -  Pet object that needs to be added to the store   -> OpenAPIPetstoreRequest AddPet contentType NoContent MimeNoContent-addPet _ pet =+addPet _ body =   _mkRequest "POST" ["/pet"]     `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth)-    `setBodyParam` pet+    `setBodyParam` body  data AddPet  --- | /Body Param/ "Pet" - Pet object that needs to be added to the store+-- | /Body Param/ "body" - Pet object that needs to be added to the store instance HasBodyParam AddPet Pet   -- | @application/xml@@@ -107,7 +107,6 @@ instance HasOptionalParam DeletePet ApiKey where   applyOptionalParam req (ApiKey xs) =     req `setHeader` toHeader ("api_key", xs)- instance Produces DeletePet MimeNoContent  @@ -131,7 +130,6 @@     `setQuery` toQueryColl CommaSeparated ("status", Just status)  data FindPetsByStatus  - -- | @application/xml@ instance Produces FindPetsByStatus MimeXML -- | @application/json@@@ -160,7 +158,6 @@ {-# DEPRECATED findPetsByTags "" #-}  data FindPetsByTags  - -- | @application/xml@ instance Produces FindPetsByTags MimeXML -- | @application/json@@@ -186,7 +183,6 @@     `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKey)  data GetPetById  - -- | @application/xml@ instance Produces GetPetById MimeXML -- | @application/json@@@ -204,16 +200,16 @@ updatePet    :: (Consumes UpdatePet contentType, MimeRender contentType Pet)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> Pet -- ^ "pet" -  Pet object that needs to be added to the store+  -> Pet -- ^ "body" -  Pet object that needs to be added to the store   -> OpenAPIPetstoreRequest UpdatePet contentType NoContent MimeNoContent-updatePet _ pet =+updatePet _ body =   _mkRequest "PUT" ["/pet"]     `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth)-    `setBodyParam` pet+    `setBodyParam` body  data UpdatePet  --- | /Body Param/ "Pet" - Pet object that needs to be added to the store+-- | /Body Param/ "body" - Pet object that needs to be added to the store instance HasBodyParam UpdatePet Pet   -- | @application/xml@
lib/OpenAPIPetstore/API/Store.hs view
@@ -72,7 +72,6 @@   _mkRequest "DELETE" ["/store/order/",toPath orderId]  data DeleteOrder  - instance Produces DeleteOrder MimeNoContent  @@ -93,7 +92,6 @@     `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKey)  data GetInventory  - -- | @application/json@ instance Produces GetInventory MimeJSON @@ -114,7 +112,6 @@   _mkRequest "GET" ["/store/order/",toPath orderId]  data GetOrderById  - -- | @application/xml@ instance Produces GetOrderById MimeXML -- | @application/json@@@ -131,16 +128,19 @@   :: (Consumes PlaceOrder contentType, MimeRender contentType Order)   => ContentType contentType -- ^ request content-type ('MimeType')   -> Accept accept -- ^ request accept ('MimeType')-  -> Order -- ^ "order" -  order placed for purchasing the pet+  -> Order -- ^ "body" -  order placed for purchasing the pet   -> OpenAPIPetstoreRequest PlaceOrder contentType Order accept-placeOrder _  _ order =+placeOrder _  _ body =   _mkRequest "POST" ["/store/order"]-    `setBodyParam` order+    `setBodyParam` body  data PlaceOrder  --- | /Body Param/ "Order" - order placed for purchasing the pet+-- | /Body Param/ "body" - order placed for purchasing the pet instance HasBodyParam PlaceOrder Order +    +-- | @*/*@+instance MimeType mtype => Consumes PlaceOrder mtype  -- | @application/xml@ instance Produces PlaceOrder MimeXML
lib/OpenAPIPetstore/API/User.hs view
@@ -68,16 +68,19 @@ createUser    :: (Consumes CreateUser contentType, MimeRender contentType User)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> User -- ^ "user" -  Created user object+  -> User -- ^ "body" -  Created user object   -> OpenAPIPetstoreRequest CreateUser contentType NoContent MimeNoContent-createUser _ user =+createUser _ body =   _mkRequest "POST" ["/user"]-    `setBodyParam` user+    `setBodyParam` body  data CreateUser  --- | /Body Param/ "User" - Created user object+-- | /Body Param/ "body" - Created user object instance HasBodyParam CreateUser User +    +-- | @*/*@+instance MimeType mtype => Consumes CreateUser mtype  instance Produces CreateUser MimeNoContent @@ -89,18 +92,21 @@ -- Creates list of users with given input array --  createUsersWithArrayInput -  :: (Consumes CreateUsersWithArrayInput contentType, MimeRender contentType User2)+  :: (Consumes CreateUsersWithArrayInput contentType, MimeRender contentType Body)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> User2 -- ^ "user" -  List of user object+  -> Body -- ^ "body" -  List of user object   -> OpenAPIPetstoreRequest CreateUsersWithArrayInput contentType NoContent MimeNoContent-createUsersWithArrayInput _ user =+createUsersWithArrayInput _ body =   _mkRequest "POST" ["/user/createWithArray"]-    `setBodyParam` user+    `setBodyParam` body  data CreateUsersWithArrayInput  --- | /Body Param/ "User" - List of user object-instance HasBodyParam CreateUsersWithArrayInput User2 +-- | /Body Param/ "body" - List of user object+instance HasBodyParam CreateUsersWithArrayInput Body +    +-- | @*/*@+instance MimeType mtype => Consumes CreateUsersWithArrayInput mtype  instance Produces CreateUsersWithArrayInput MimeNoContent @@ -112,18 +118,21 @@ -- Creates list of users with given input array --  createUsersWithListInput -  :: (Consumes CreateUsersWithListInput contentType, MimeRender contentType User2)+  :: (Consumes CreateUsersWithListInput contentType, MimeRender contentType Body)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> User2 -- ^ "user" -  List of user object+  -> Body -- ^ "body" -  List of user object   -> OpenAPIPetstoreRequest CreateUsersWithListInput contentType NoContent MimeNoContent-createUsersWithListInput _ user =+createUsersWithListInput _ body =   _mkRequest "POST" ["/user/createWithList"]-    `setBodyParam` user+    `setBodyParam` body  data CreateUsersWithListInput  --- | /Body Param/ "User" - List of user object-instance HasBodyParam CreateUsersWithListInput User2 +-- | /Body Param/ "body" - List of user object+instance HasBodyParam CreateUsersWithListInput Body +    +-- | @*/*@+instance MimeType mtype => Consumes CreateUsersWithListInput mtype  instance Produces CreateUsersWithListInput MimeNoContent @@ -143,7 +152,6 @@   _mkRequest "DELETE" ["/user/",toPath username]  data DeleteUser  - instance Produces DeleteUser MimeNoContent  @@ -161,7 +169,6 @@   _mkRequest "GET" ["/user/",toPath username]  data GetUserByName  - -- | @application/xml@ instance Produces GetUserByName MimeXML -- | @application/json@@@ -185,7 +192,6 @@     `setQuery` toQuery ("password", Just password)  data LoginUser  - -- | @application/xml@ instance Produces LoginUser MimeXML -- | @application/json@@@ -204,7 +210,6 @@   _mkRequest "GET" ["/user/logout"]  data LogoutUser  - instance Produces LogoutUser MimeNoContent  @@ -219,17 +224,20 @@ updateUser    :: (Consumes UpdateUser contentType, MimeRender contentType User)   => ContentType contentType -- ^ request content-type ('MimeType')-  -> User -- ^ "user" -  Updated user object+  -> User -- ^ "body" -  Updated user object   -> Username -- ^ "username" -  name that need to be deleted   -> OpenAPIPetstoreRequest UpdateUser contentType NoContent MimeNoContent-updateUser _ user (Username username) =+updateUser _ body (Username username) =   _mkRequest "PUT" ["/user/",toPath username]-    `setBodyParam` user+    `setBodyParam` body  data UpdateUser  --- | /Body Param/ "User" - Updated user object+-- | /Body Param/ "body" - Updated user object instance HasBodyParam UpdateUser User +    +-- | @*/*@+instance MimeType mtype => Consumes UpdateUser mtype  instance Produces UpdateUser MimeNoContent 
lib/OpenAPIPetstore/Logging.hs view
@@ -10,109 +10,24 @@  {-| Module : OpenAPIPetstore.Logging-Katip Logging functions+Logging functions -}--{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE ScopedTypeVariables #-}--module OpenAPIPetstore.Logging where--import qualified Control.Exception.Safe as E-import qualified Control.Monad.IO.Class as P-import qualified Control.Monad.Trans.Reader as P-import qualified Data.Text as T-import qualified Lens.Micro as L-import qualified System.IO as IO--import Data.Text (Text)-import GHC.Exts (IsString(..))--import qualified Katip as LG---- * Type Aliases (for compatibility)---- | Runs a Katip logging block with the Log environment-type LogExecWithContext = forall m. P.MonadIO m =>-                                    LogContext -> LogExec m---- | A Katip logging block-type LogExec m = forall a. LG.KatipT m a -> m a---- | A Katip Log environment-type LogContext = LG.LogEnv---- | A Katip Log severity-type LogLevel = LG.Severity---- * default logger---- | the default log environment-initLogContext :: IO LogContext-initLogContext = LG.initLogEnv "OpenAPIPetstore" "dev"---- | Runs a Katip logging block with the Log environment-runDefaultLogExecWithContext :: LogExecWithContext-runDefaultLogExecWithContext = LG.runKatipT---- * stdout logger---- | Runs a Katip logging block with the Log environment-stdoutLoggingExec :: LogExecWithContext-stdoutLoggingExec = runDefaultLogExecWithContext---- | A Katip Log environment which targets stdout-stdoutLoggingContext :: LogContext -> IO LogContext-stdoutLoggingContext cxt = do-    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stdout LG.InfoS LG.V2-    LG.registerScribe "stdout" handleScribe LG.defaultScribeSettings cxt---- * stderr logger---- | Runs a Katip logging block with the Log environment-stderrLoggingExec :: LogExecWithContext-stderrLoggingExec = runDefaultLogExecWithContext---- | A Katip Log environment which targets stderr-stderrLoggingContext :: LogContext -> IO LogContext-stderrLoggingContext cxt = do-    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stderr LG.InfoS LG.V2-    LG.registerScribe "stderr" handleScribe LG.defaultScribeSettings cxt---- * Null logger---- | Disables Katip logging-runNullLogExec :: LogExecWithContext-runNullLogExec le (LG.KatipT f) = P.runReaderT f (L.set LG.logEnvScribes mempty le)---- * Log Msg---- | Log a katip message-_log :: (Applicative m, LG.Katip m) => Text -> LogLevel -> Text -> m ()-_log src level msg = do-  LG.logMsg (fromString $ T.unpack src) level (LG.logStr msg)+{-# LANGUAGE CPP #-} --- * Log Exceptions+#ifdef USE_KATIP --- | re-throws exceptions after logging them-logExceptions-  :: (LG.Katip m, E.MonadCatch m, Applicative m)-  => Text -> m a -> m a-logExceptions src =-  E.handle-    (\(e :: E.SomeException) -> do-       _log src LG.ErrorS ((T.pack . show) e)-       E.throw e)+module OpenAPIPetstore.Logging+  ( module OpenAPIPetstore.LoggingKatip+  ) where --- * Log Level+import OpenAPIPetstore.LoggingKatip -levelInfo :: LogLevel-levelInfo = LG.InfoS+#else -levelError :: LogLevel-levelError = LG.ErrorS+module OpenAPIPetstore.Logging+  ( module OpenAPIPetstore.LoggingMonadLogger+  ) where -levelDebug :: LogLevel-levelDebug = LG.DebugS+import OpenAPIPetstore.LoggingMonadLogger +#endif
+ lib/OpenAPIPetstore/LoggingKatip.hs view
@@ -0,0 +1,118 @@+{-+   OpenAPI Petstore++   This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\++   OpenAPI Version: 3.0.1+   OpenAPI Petstore API version: 1.0.0+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : OpenAPIPetstore.LoggingKatip+Katip Logging functions+-}++{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-}++module OpenAPIPetstore.LoggingKatip where++import qualified Control.Exception.Safe as E+import qualified Control.Monad.IO.Class as P+import qualified Control.Monad.Trans.Reader as P+import qualified Data.Text as T+import qualified Lens.Micro as L+import qualified System.IO as IO++import Data.Text (Text)+import GHC.Exts (IsString(..))++import qualified Katip as LG++-- * Type Aliases (for compatibility)++-- | Runs a Katip logging block with the Log environment+type LogExecWithContext = forall m. P.MonadIO m =>+                                    LogContext -> LogExec m++-- | A Katip logging block+type LogExec m = forall a. LG.KatipT m a -> m a++-- | A Katip Log environment+type LogContext = LG.LogEnv++-- | A Katip Log severity+type LogLevel = LG.Severity++-- * default logger++-- | the default log environment+initLogContext :: IO LogContext+initLogContext = LG.initLogEnv "OpenAPIPetstore" "dev"++-- | Runs a Katip logging block with the Log environment+runDefaultLogExecWithContext :: LogExecWithContext+runDefaultLogExecWithContext = LG.runKatipT++-- * stdout logger++-- | Runs a Katip logging block with the Log environment+stdoutLoggingExec :: LogExecWithContext+stdoutLoggingExec = runDefaultLogExecWithContext++-- | A Katip Log environment which targets stdout+stdoutLoggingContext :: LogContext -> IO LogContext+stdoutLoggingContext cxt = do+    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stdout (LG.permitItem LG.InfoS) LG.V2+    LG.registerScribe "stdout" handleScribe LG.defaultScribeSettings cxt++-- * stderr logger++-- | Runs a Katip logging block with the Log environment+stderrLoggingExec :: LogExecWithContext+stderrLoggingExec = runDefaultLogExecWithContext++-- | A Katip Log environment which targets stderr+stderrLoggingContext :: LogContext -> IO LogContext+stderrLoggingContext cxt = do+    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stderr (LG.permitItem LG.InfoS) LG.V2+    LG.registerScribe "stderr" handleScribe LG.defaultScribeSettings cxt++-- * Null logger++-- | Disables Katip logging+runNullLogExec :: LogExecWithContext+runNullLogExec le (LG.KatipT f) = P.runReaderT f (L.set LG.logEnvScribes mempty le)++-- * Log Msg++-- | Log a katip message+_log :: (Applicative m, LG.Katip m) => Text -> LogLevel -> Text -> m ()+_log src level msg = do+  LG.logMsg (fromString $ T.unpack src) level (LG.logStr msg)++-- * Log Exceptions++-- | re-throws exceptions after logging them+logExceptions+  :: (LG.Katip m, E.MonadCatch m, Applicative m)+  => Text -> m a -> m a+logExceptions src =+  E.handle+    (\(e :: E.SomeException) -> do+       _log src LG.ErrorS ((T.pack . show) e)+       E.throw e)++-- * Log Level++levelInfo :: LogLevel+levelInfo = LG.InfoS++levelError :: LogLevel+levelError = LG.ErrorS++levelDebug :: LogLevel+levelDebug = LG.DebugS+
+ lib/OpenAPIPetstore/LoggingMonadLogger.hs view
@@ -0,0 +1,127 @@+{-+   OpenAPI Petstore++   This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\++   OpenAPI Version: 3.0.1+   OpenAPI Petstore API version: 1.0.0+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : OpenAPIPetstore.LoggingMonadLogger+monad-logger Logging functions+-}++{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-}++module OpenAPIPetstore.LoggingMonadLogger where++import qualified Control.Exception.Safe as E+import qualified Control.Monad.IO.Class as P+import qualified Data.Text as T+import qualified Data.Time as TI++import Data.Monoid ((<>))+import Data.Text (Text)++import qualified Control.Monad.Logger as LG++-- * Type Aliases (for compatibility)++-- | Runs a monad-logger  block with the filter predicate+type LogExecWithContext = forall m. P.MonadIO m =>+                                    LogContext -> LogExec m++-- | A monad-logger block+type LogExec m = forall a. LG.LoggingT m a -> m a++-- | A monad-logger filter predicate+type LogContext = LG.LogSource -> LG.LogLevel -> Bool++-- | A monad-logger log level+type LogLevel = LG.LogLevel++-- * default logger++-- | the default log environment+initLogContext :: IO LogContext+initLogContext = pure infoLevelFilter++-- | Runs a monad-logger block with the filter predicate+runDefaultLogExecWithContext :: LogExecWithContext+runDefaultLogExecWithContext = runNullLogExec++-- * stdout logger++-- | Runs a monad-logger block targeting stdout, with the filter predicate+stdoutLoggingExec :: LogExecWithContext+stdoutLoggingExec cxt = LG.runStdoutLoggingT . LG.filterLogger cxt++-- | @pure@+stdoutLoggingContext :: LogContext -> IO LogContext+stdoutLoggingContext = pure++-- * stderr logger++-- | Runs a monad-logger block targeting stderr, with the filter predicate+stderrLoggingExec :: LogExecWithContext+stderrLoggingExec cxt = LG.runStderrLoggingT . LG.filterLogger cxt++-- | @pure@+stderrLoggingContext :: LogContext -> IO LogContext+stderrLoggingContext = pure++-- * Null logger++-- | Disables monad-logger logging+runNullLogExec :: LogExecWithContext+runNullLogExec = const (`LG.runLoggingT` nullLogger)++-- | monad-logger which does nothing+nullLogger :: LG.Loc -> LG.LogSource -> LG.LogLevel -> LG.LogStr -> IO ()+nullLogger _ _ _ _ = return ()++-- * Log Msg++-- | Log a message using the current time+_log :: (P.MonadIO m, LG.MonadLogger m) => Text -> LG.LogLevel -> Text -> m ()+_log src level msg = do+  now <- P.liftIO (formatTimeLog <$> TI.getCurrentTime)+  LG.logOtherNS ("OpenAPIPetstore." <> src) level ("[" <> now <> "] " <> msg)+ where+  formatTimeLog =+    T.pack . TI.formatTime TI.defaultTimeLocale "%Y-%m-%dT%H:%M:%S%Z"++-- * Log Exceptions++-- | re-throws exceptions after logging them+logExceptions+   :: (LG.MonadLogger m, E.MonadCatch m, P.MonadIO m)+   => Text -> m a -> m a+logExceptions src =+   E.handle+     (\(e :: E.SomeException) -> do+        _log src LG.LevelError ((T.pack . show) e)+        E.throw e)++-- * Log Level++levelInfo :: LogLevel+levelInfo = LG.LevelInfo++levelError :: LogLevel+levelError = LG.LevelError++levelDebug :: LogLevel+levelDebug = LG.LevelDebug++-- * Level Filter++minLevelFilter :: LG.LogLevel -> LG.LogSource -> LG.LogLevel -> Bool+minLevelFilter l _ l' = l' >= l++infoLevelFilter :: LG.LogSource -> LG.LogLevel -> Bool+infoLevelFilter = minLevelFilter LG.LevelInfo
lib/OpenAPIPetstore/MimeTypes.hs view
@@ -201,3 +201,55 @@ instance MimeUnrender MimeNoContent NoContent where mimeUnrender _ = P.Right . P.const NoContent  +-- * Custom Mime Types++-- ** MimeXmlCharsetutf16++data MimeXmlCharsetutf16 = MimeXmlCharsetutf16 deriving (P.Typeable)++-- | @application/xml; charset=utf-16@+instance MimeType MimeXmlCharsetutf16 where+  mimeType _ = Just $ P.fromString "application/xml; charset=utf-16"+-- instance MimeRender MimeXmlCharsetutf16 T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeXmlCharsetutf16 T.Text where mimeUnrender _ = undefined++-- ** MimeXmlCharsetutf8++data MimeXmlCharsetutf8 = MimeXmlCharsetutf8 deriving (P.Typeable)++-- | @application/xml; charset=utf-8@+instance MimeType MimeXmlCharsetutf8 where+  mimeType _ = Just $ P.fromString "application/xml; charset=utf-8"+-- instance MimeRender MimeXmlCharsetutf8 T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeXmlCharsetutf8 T.Text where mimeUnrender _ = undefined++-- ** MimeTextxml++data MimeTextxml = MimeTextxml deriving (P.Typeable)++-- | @text/xml@+instance MimeType MimeTextxml where+  mimeType _ = Just $ P.fromString "text/xml"+-- instance MimeRender MimeTextxml T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeTextxml T.Text where mimeUnrender _ = undefined++-- ** MimeTextxmlCharsetutf16++data MimeTextxmlCharsetutf16 = MimeTextxmlCharsetutf16 deriving (P.Typeable)++-- | @text/xml; charset=utf-16@+instance MimeType MimeTextxmlCharsetutf16 where+  mimeType _ = Just $ P.fromString "text/xml; charset=utf-16"+-- instance MimeRender MimeTextxmlCharsetutf16 T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeTextxmlCharsetutf16 T.Text where mimeUnrender _ = undefined++-- ** MimeTextxmlCharsetutf8++data MimeTextxmlCharsetutf8 = MimeTextxmlCharsetutf8 deriving (P.Typeable)++-- | @text/xml; charset=utf-8@+instance MimeType MimeTextxmlCharsetutf8 where+  mimeType _ = Just $ P.fromString "text/xml; charset=utf-8"+-- instance MimeRender MimeTextxmlCharsetutf8 T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeTextxmlCharsetutf8 T.Text where mimeUnrender _ = undefined+
lib/OpenAPIPetstore/Model.hs view
@@ -73,11 +73,14 @@ newtype ApiKey = ApiKey { unApiKey :: Text } deriving (P.Eq, P.Show)  -- ** Body-newtype Body = Body { unBody :: Double } deriving (P.Eq, P.Show, A.ToJSON)+newtype Body = Body { unBody :: [User] } deriving (P.Eq, P.Show, A.ToJSON)  -- ** BodyBool newtype BodyBool = BodyBool { unBodyBool :: Bool } deriving (P.Eq, P.Show, A.ToJSON) +-- ** BodyDouble+newtype BodyDouble = BodyDouble { unBodyDouble :: Double } deriving (P.Eq, P.Show, A.ToJSON)+ -- ** BodyText newtype BodyText = BodyText { unBodyText :: Text } deriving (P.Eq, P.Show, A.ToJSON) @@ -162,6 +165,9 @@ -- ** ParamInteger newtype ParamInteger = ParamInteger { unParamInteger :: Int } deriving (P.Eq, P.Show) +-- ** ParamMapMapStringText+newtype ParamMapMapStringText = ParamMapMapStringText { unParamMapMapStringText :: (Map.Map String Text) } deriving (P.Eq, P.Show, A.ToJSON)+ -- ** ParamString newtype ParamString = ParamString { unParamString :: Text } deriving (P.Eq, P.Show) @@ -177,9 +183,6 @@ -- ** Query newtype Query = Query { unQuery :: Text } deriving (P.Eq, P.Show) --- ** RequestBody-newtype RequestBody = RequestBody { unRequestBody :: (Map.Map String Text) } deriving (P.Eq, P.Show, A.ToJSON)- -- ** RequiredBooleanGroup newtype RequiredBooleanGroup = RequiredBooleanGroup { unRequiredBooleanGroup :: Bool } deriving (P.Eq, P.Show) @@ -204,9 +207,6 @@ -- ** Tags newtype Tags = Tags { unTags :: [Text] } deriving (P.Eq, P.Show) --- ** User2-newtype User2 = User2 { unUser2 :: [User] } deriving (P.Eq, P.Show, A.ToJSON)- -- ** Username newtype Username = Username { unUsername :: Text } deriving (P.Eq, P.Show) @@ -278,34 +278,6 @@   , animalColor = Nothing   } --- ** AnimalFarm--- | AnimalFarm-data AnimalFarm = AnimalFarm-  { -  } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON AnimalFarm-instance A.FromJSON AnimalFarm where-  parseJSON = A.withObject "AnimalFarm" $ \o ->-    pure AnimalFarm-      ---- | ToJSON AnimalFarm-instance A.ToJSON AnimalFarm where-  toJSON AnimalFarm  =-   _omitNulls-      [ -      ]----- | Construct a value of type 'AnimalFarm' (by applying it's required fields, if any)-mkAnimalFarm-  :: AnimalFarm-mkAnimalFarm =-  AnimalFarm-  { -  }- -- ** ApiResponse -- | ApiResponse data ApiResponse = ApiResponse@@ -1326,34 +1298,6 @@   { specialModelNameSpecialPropertyName = Nothing   } --- ** StringBooleanMap--- | StringBooleanMap-data StringBooleanMap = StringBooleanMap-  { -  } deriving (P.Show, P.Eq, P.Typeable)---- | FromJSON StringBooleanMap-instance A.FromJSON StringBooleanMap where-  parseJSON = A.withObject "StringBooleanMap" $ \o ->-    pure StringBooleanMap-      ---- | ToJSON StringBooleanMap-instance A.ToJSON StringBooleanMap where-  toJSON StringBooleanMap  =-   _omitNulls-      [ -      ]----- | Construct a value of type 'StringBooleanMap' (by applying it's required fields, if any)-mkStringBooleanMap-  :: StringBooleanMap-mkStringBooleanMap =-  StringBooleanMap-  { -  }- -- ** Tag -- | Tag data Tag = Tag@@ -1386,6 +1330,104 @@   , tagName = Nothing   } +-- ** TypeHolderDefault+-- | TypeHolderDefault+data TypeHolderDefault = TypeHolderDefault+  { typeHolderDefaultStringItem :: !(Text) -- ^ /Required/ "string_item"+  , typeHolderDefaultNumberItem :: !(Double) -- ^ /Required/ "number_item"+  , typeHolderDefaultIntegerItem :: !(Int) -- ^ /Required/ "integer_item"+  , typeHolderDefaultBoolItem :: !(Bool) -- ^ /Required/ "bool_item"+  , typeHolderDefaultArrayItem :: !([Int]) -- ^ /Required/ "array_item"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TypeHolderDefault+instance A.FromJSON TypeHolderDefault where+  parseJSON = A.withObject "TypeHolderDefault" $ \o ->+    TypeHolderDefault+      <$> (o .:  "string_item")+      <*> (o .:  "number_item")+      <*> (o .:  "integer_item")+      <*> (o .:  "bool_item")+      <*> (o .:  "array_item")++-- | ToJSON TypeHolderDefault+instance A.ToJSON TypeHolderDefault where+  toJSON TypeHolderDefault {..} =+   _omitNulls+      [ "string_item" .= typeHolderDefaultStringItem+      , "number_item" .= typeHolderDefaultNumberItem+      , "integer_item" .= typeHolderDefaultIntegerItem+      , "bool_item" .= typeHolderDefaultBoolItem+      , "array_item" .= typeHolderDefaultArrayItem+      ]+++-- | Construct a value of type 'TypeHolderDefault' (by applying it's required fields, if any)+mkTypeHolderDefault+  :: Text -- ^ 'typeHolderDefaultStringItem' +  -> Double -- ^ 'typeHolderDefaultNumberItem' +  -> Int -- ^ 'typeHolderDefaultIntegerItem' +  -> Bool -- ^ 'typeHolderDefaultBoolItem' +  -> [Int] -- ^ 'typeHolderDefaultArrayItem' +  -> TypeHolderDefault+mkTypeHolderDefault typeHolderDefaultStringItem typeHolderDefaultNumberItem typeHolderDefaultIntegerItem typeHolderDefaultBoolItem typeHolderDefaultArrayItem =+  TypeHolderDefault+  { typeHolderDefaultStringItem+  , typeHolderDefaultNumberItem+  , typeHolderDefaultIntegerItem+  , typeHolderDefaultBoolItem+  , typeHolderDefaultArrayItem+  }++-- ** TypeHolderExample+-- | TypeHolderExample+data TypeHolderExample = TypeHolderExample+  { typeHolderExampleStringItem :: !(Text) -- ^ /Required/ "string_item"+  , typeHolderExampleNumberItem :: !(Double) -- ^ /Required/ "number_item"+  , typeHolderExampleIntegerItem :: !(Int) -- ^ /Required/ "integer_item"+  , typeHolderExampleBoolItem :: !(Bool) -- ^ /Required/ "bool_item"+  , typeHolderExampleArrayItem :: !([Int]) -- ^ /Required/ "array_item"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TypeHolderExample+instance A.FromJSON TypeHolderExample where+  parseJSON = A.withObject "TypeHolderExample" $ \o ->+    TypeHolderExample+      <$> (o .:  "string_item")+      <*> (o .:  "number_item")+      <*> (o .:  "integer_item")+      <*> (o .:  "bool_item")+      <*> (o .:  "array_item")++-- | ToJSON TypeHolderExample+instance A.ToJSON TypeHolderExample where+  toJSON TypeHolderExample {..} =+   _omitNulls+      [ "string_item" .= typeHolderExampleStringItem+      , "number_item" .= typeHolderExampleNumberItem+      , "integer_item" .= typeHolderExampleIntegerItem+      , "bool_item" .= typeHolderExampleBoolItem+      , "array_item" .= typeHolderExampleArrayItem+      ]+++-- | Construct a value of type 'TypeHolderExample' (by applying it's required fields, if any)+mkTypeHolderExample+  :: Text -- ^ 'typeHolderExampleStringItem' +  -> Double -- ^ 'typeHolderExampleNumberItem' +  -> Int -- ^ 'typeHolderExampleIntegerItem' +  -> Bool -- ^ 'typeHolderExampleBoolItem' +  -> [Int] -- ^ 'typeHolderExampleArrayItem' +  -> TypeHolderExample+mkTypeHolderExample typeHolderExampleStringItem typeHolderExampleNumberItem typeHolderExampleIntegerItem typeHolderExampleBoolItem typeHolderExampleArrayItem =+  TypeHolderExample+  { typeHolderExampleStringItem+  , typeHolderExampleNumberItem+  , typeHolderExampleIntegerItem+  , typeHolderExampleBoolItem+  , typeHolderExampleArrayItem+  }+ -- ** User -- | User data User = User@@ -1442,7 +1484,147 @@   , userUserStatus = Nothing   } +-- ** XmlItem+-- | XmlItem+data XmlItem = XmlItem+  { xmlItemAttributeString :: !(Maybe Text) -- ^ "attribute_string"+  , xmlItemAttributeNumber :: !(Maybe Double) -- ^ "attribute_number"+  , xmlItemAttributeInteger :: !(Maybe Int) -- ^ "attribute_integer"+  , xmlItemAttributeBoolean :: !(Maybe Bool) -- ^ "attribute_boolean"+  , xmlItemWrappedArray :: !(Maybe [Int]) -- ^ "wrapped_array"+  , xmlItemNameString :: !(Maybe Text) -- ^ "name_string"+  , xmlItemNameNumber :: !(Maybe Double) -- ^ "name_number"+  , xmlItemNameInteger :: !(Maybe Int) -- ^ "name_integer"+  , xmlItemNameBoolean :: !(Maybe Bool) -- ^ "name_boolean"+  , xmlItemNameArray :: !(Maybe [Int]) -- ^ "name_array"+  , xmlItemNameWrappedArray :: !(Maybe [Int]) -- ^ "name_wrapped_array"+  , xmlItemPrefixString :: !(Maybe Text) -- ^ "prefix_string"+  , xmlItemPrefixNumber :: !(Maybe Double) -- ^ "prefix_number"+  , xmlItemPrefixInteger :: !(Maybe Int) -- ^ "prefix_integer"+  , xmlItemPrefixBoolean :: !(Maybe Bool) -- ^ "prefix_boolean"+  , xmlItemPrefixArray :: !(Maybe [Int]) -- ^ "prefix_array"+  , xmlItemPrefixWrappedArray :: !(Maybe [Int]) -- ^ "prefix_wrapped_array"+  , xmlItemNamespaceString :: !(Maybe Text) -- ^ "namespace_string"+  , xmlItemNamespaceNumber :: !(Maybe Double) -- ^ "namespace_number"+  , xmlItemNamespaceInteger :: !(Maybe Int) -- ^ "namespace_integer"+  , xmlItemNamespaceBoolean :: !(Maybe Bool) -- ^ "namespace_boolean"+  , xmlItemNamespaceArray :: !(Maybe [Int]) -- ^ "namespace_array"+  , xmlItemNamespaceWrappedArray :: !(Maybe [Int]) -- ^ "namespace_wrapped_array"+  , xmlItemPrefixNsString :: !(Maybe Text) -- ^ "prefix_ns_string"+  , xmlItemPrefixNsNumber :: !(Maybe Double) -- ^ "prefix_ns_number"+  , xmlItemPrefixNsInteger :: !(Maybe Int) -- ^ "prefix_ns_integer"+  , xmlItemPrefixNsBoolean :: !(Maybe Bool) -- ^ "prefix_ns_boolean"+  , xmlItemPrefixNsArray :: !(Maybe [Int]) -- ^ "prefix_ns_array"+  , xmlItemPrefixNsWrappedArray :: !(Maybe [Int]) -- ^ "prefix_ns_wrapped_array"+  } deriving (P.Show, P.Eq, P.Typeable) +-- | FromJSON XmlItem+instance A.FromJSON XmlItem where+  parseJSON = A.withObject "XmlItem" $ \o ->+    XmlItem+      <$> (o .:? "attribute_string")+      <*> (o .:? "attribute_number")+      <*> (o .:? "attribute_integer")+      <*> (o .:? "attribute_boolean")+      <*> (o .:? "wrapped_array")+      <*> (o .:? "name_string")+      <*> (o .:? "name_number")+      <*> (o .:? "name_integer")+      <*> (o .:? "name_boolean")+      <*> (o .:? "name_array")+      <*> (o .:? "name_wrapped_array")+      <*> (o .:? "prefix_string")+      <*> (o .:? "prefix_number")+      <*> (o .:? "prefix_integer")+      <*> (o .:? "prefix_boolean")+      <*> (o .:? "prefix_array")+      <*> (o .:? "prefix_wrapped_array")+      <*> (o .:? "namespace_string")+      <*> (o .:? "namespace_number")+      <*> (o .:? "namespace_integer")+      <*> (o .:? "namespace_boolean")+      <*> (o .:? "namespace_array")+      <*> (o .:? "namespace_wrapped_array")+      <*> (o .:? "prefix_ns_string")+      <*> (o .:? "prefix_ns_number")+      <*> (o .:? "prefix_ns_integer")+      <*> (o .:? "prefix_ns_boolean")+      <*> (o .:? "prefix_ns_array")+      <*> (o .:? "prefix_ns_wrapped_array")++-- | ToJSON XmlItem+instance A.ToJSON XmlItem where+  toJSON XmlItem {..} =+   _omitNulls+      [ "attribute_string" .= xmlItemAttributeString+      , "attribute_number" .= xmlItemAttributeNumber+      , "attribute_integer" .= xmlItemAttributeInteger+      , "attribute_boolean" .= xmlItemAttributeBoolean+      , "wrapped_array" .= xmlItemWrappedArray+      , "name_string" .= xmlItemNameString+      , "name_number" .= xmlItemNameNumber+      , "name_integer" .= xmlItemNameInteger+      , "name_boolean" .= xmlItemNameBoolean+      , "name_array" .= xmlItemNameArray+      , "name_wrapped_array" .= xmlItemNameWrappedArray+      , "prefix_string" .= xmlItemPrefixString+      , "prefix_number" .= xmlItemPrefixNumber+      , "prefix_integer" .= xmlItemPrefixInteger+      , "prefix_boolean" .= xmlItemPrefixBoolean+      , "prefix_array" .= xmlItemPrefixArray+      , "prefix_wrapped_array" .= xmlItemPrefixWrappedArray+      , "namespace_string" .= xmlItemNamespaceString+      , "namespace_number" .= xmlItemNamespaceNumber+      , "namespace_integer" .= xmlItemNamespaceInteger+      , "namespace_boolean" .= xmlItemNamespaceBoolean+      , "namespace_array" .= xmlItemNamespaceArray+      , "namespace_wrapped_array" .= xmlItemNamespaceWrappedArray+      , "prefix_ns_string" .= xmlItemPrefixNsString+      , "prefix_ns_number" .= xmlItemPrefixNsNumber+      , "prefix_ns_integer" .= xmlItemPrefixNsInteger+      , "prefix_ns_boolean" .= xmlItemPrefixNsBoolean+      , "prefix_ns_array" .= xmlItemPrefixNsArray+      , "prefix_ns_wrapped_array" .= xmlItemPrefixNsWrappedArray+      ]+++-- | Construct a value of type 'XmlItem' (by applying it's required fields, if any)+mkXmlItem+  :: XmlItem+mkXmlItem =+  XmlItem+  { xmlItemAttributeString = Nothing+  , xmlItemAttributeNumber = Nothing+  , xmlItemAttributeInteger = Nothing+  , xmlItemAttributeBoolean = Nothing+  , xmlItemWrappedArray = Nothing+  , xmlItemNameString = Nothing+  , xmlItemNameNumber = Nothing+  , xmlItemNameInteger = Nothing+  , xmlItemNameBoolean = Nothing+  , xmlItemNameArray = Nothing+  , xmlItemNameWrappedArray = Nothing+  , xmlItemPrefixString = Nothing+  , xmlItemPrefixNumber = Nothing+  , xmlItemPrefixInteger = Nothing+  , xmlItemPrefixBoolean = Nothing+  , xmlItemPrefixArray = Nothing+  , xmlItemPrefixWrappedArray = Nothing+  , xmlItemNamespaceString = Nothing+  , xmlItemNamespaceNumber = Nothing+  , xmlItemNamespaceInteger = Nothing+  , xmlItemNamespaceBoolean = Nothing+  , xmlItemNamespaceArray = Nothing+  , xmlItemNamespaceWrappedArray = Nothing+  , xmlItemPrefixNsString = Nothing+  , xmlItemPrefixNsNumber = Nothing+  , xmlItemPrefixNsInteger = Nothing+  , xmlItemPrefixNsBoolean = Nothing+  , xmlItemPrefixNsArray = Nothing+  , xmlItemPrefixNsWrappedArray = Nothing+  }++ -- * Enums  @@ -1885,4 +2067,5 @@       then req `setHeader` toHeader ("Authorization", "Bearer " <> secret)             & L.over rAuthTypesL (P.filter (/= P.typeOf a))       else req+ 
lib/OpenAPIPetstore/ModelLens.hs view
@@ -64,10 +64,6 @@   --- * AnimalFarm--- -- * ApiResponse  -- | 'apiResponseCode' Lens@@ -603,10 +599,6 @@   --- * StringBooleanMap--- -- * Tag  -- | 'tagId' Lens@@ -621,6 +613,64 @@   +-- * TypeHolderDefault++-- | 'typeHolderDefaultStringItem' Lens+typeHolderDefaultStringItemL :: Lens_' TypeHolderDefault (Text)+typeHolderDefaultStringItemL f TypeHolderDefault{..} = (\typeHolderDefaultStringItem -> TypeHolderDefault { typeHolderDefaultStringItem, ..} ) <$> f typeHolderDefaultStringItem+{-# INLINE typeHolderDefaultStringItemL #-}++-- | 'typeHolderDefaultNumberItem' Lens+typeHolderDefaultNumberItemL :: Lens_' TypeHolderDefault (Double)+typeHolderDefaultNumberItemL f TypeHolderDefault{..} = (\typeHolderDefaultNumberItem -> TypeHolderDefault { typeHolderDefaultNumberItem, ..} ) <$> f typeHolderDefaultNumberItem+{-# INLINE typeHolderDefaultNumberItemL #-}++-- | 'typeHolderDefaultIntegerItem' Lens+typeHolderDefaultIntegerItemL :: Lens_' TypeHolderDefault (Int)+typeHolderDefaultIntegerItemL f TypeHolderDefault{..} = (\typeHolderDefaultIntegerItem -> TypeHolderDefault { typeHolderDefaultIntegerItem, ..} ) <$> f typeHolderDefaultIntegerItem+{-# INLINE typeHolderDefaultIntegerItemL #-}++-- | 'typeHolderDefaultBoolItem' Lens+typeHolderDefaultBoolItemL :: Lens_' TypeHolderDefault (Bool)+typeHolderDefaultBoolItemL f TypeHolderDefault{..} = (\typeHolderDefaultBoolItem -> TypeHolderDefault { typeHolderDefaultBoolItem, ..} ) <$> f typeHolderDefaultBoolItem+{-# INLINE typeHolderDefaultBoolItemL #-}++-- | 'typeHolderDefaultArrayItem' Lens+typeHolderDefaultArrayItemL :: Lens_' TypeHolderDefault ([Int])+typeHolderDefaultArrayItemL f TypeHolderDefault{..} = (\typeHolderDefaultArrayItem -> TypeHolderDefault { typeHolderDefaultArrayItem, ..} ) <$> f typeHolderDefaultArrayItem+{-# INLINE typeHolderDefaultArrayItemL #-}++++-- * TypeHolderExample++-- | 'typeHolderExampleStringItem' Lens+typeHolderExampleStringItemL :: Lens_' TypeHolderExample (Text)+typeHolderExampleStringItemL f TypeHolderExample{..} = (\typeHolderExampleStringItem -> TypeHolderExample { typeHolderExampleStringItem, ..} ) <$> f typeHolderExampleStringItem+{-# INLINE typeHolderExampleStringItemL #-}++-- | 'typeHolderExampleNumberItem' Lens+typeHolderExampleNumberItemL :: Lens_' TypeHolderExample (Double)+typeHolderExampleNumberItemL f TypeHolderExample{..} = (\typeHolderExampleNumberItem -> TypeHolderExample { typeHolderExampleNumberItem, ..} ) <$> f typeHolderExampleNumberItem+{-# INLINE typeHolderExampleNumberItemL #-}++-- | 'typeHolderExampleIntegerItem' Lens+typeHolderExampleIntegerItemL :: Lens_' TypeHolderExample (Int)+typeHolderExampleIntegerItemL f TypeHolderExample{..} = (\typeHolderExampleIntegerItem -> TypeHolderExample { typeHolderExampleIntegerItem, ..} ) <$> f typeHolderExampleIntegerItem+{-# INLINE typeHolderExampleIntegerItemL #-}++-- | 'typeHolderExampleBoolItem' Lens+typeHolderExampleBoolItemL :: Lens_' TypeHolderExample (Bool)+typeHolderExampleBoolItemL f TypeHolderExample{..} = (\typeHolderExampleBoolItem -> TypeHolderExample { typeHolderExampleBoolItem, ..} ) <$> f typeHolderExampleBoolItem+{-# INLINE typeHolderExampleBoolItemL #-}++-- | 'typeHolderExampleArrayItem' Lens+typeHolderExampleArrayItemL :: Lens_' TypeHolderExample ([Int])+typeHolderExampleArrayItemL f TypeHolderExample{..} = (\typeHolderExampleArrayItem -> TypeHolderExample { typeHolderExampleArrayItem, ..} ) <$> f typeHolderExampleArrayItem+{-# INLINE typeHolderExampleArrayItemL #-}+++ -- * User  -- | 'userId' Lens@@ -662,5 +712,154 @@ userUserStatusL :: Lens_' User (Maybe Int) userUserStatusL f User{..} = (\userUserStatus -> User { userUserStatus, ..} ) <$> f userUserStatus {-# INLINE userUserStatusL #-}++++-- * XmlItem++-- | 'xmlItemAttributeString' Lens+xmlItemAttributeStringL :: Lens_' XmlItem (Maybe Text)+xmlItemAttributeStringL f XmlItem{..} = (\xmlItemAttributeString -> XmlItem { xmlItemAttributeString, ..} ) <$> f xmlItemAttributeString+{-# INLINE xmlItemAttributeStringL #-}++-- | 'xmlItemAttributeNumber' Lens+xmlItemAttributeNumberL :: Lens_' XmlItem (Maybe Double)+xmlItemAttributeNumberL f XmlItem{..} = (\xmlItemAttributeNumber -> XmlItem { xmlItemAttributeNumber, ..} ) <$> f xmlItemAttributeNumber+{-# INLINE xmlItemAttributeNumberL #-}++-- | 'xmlItemAttributeInteger' Lens+xmlItemAttributeIntegerL :: Lens_' XmlItem (Maybe Int)+xmlItemAttributeIntegerL f XmlItem{..} = (\xmlItemAttributeInteger -> XmlItem { xmlItemAttributeInteger, ..} ) <$> f xmlItemAttributeInteger+{-# INLINE xmlItemAttributeIntegerL #-}++-- | 'xmlItemAttributeBoolean' Lens+xmlItemAttributeBooleanL :: Lens_' XmlItem (Maybe Bool)+xmlItemAttributeBooleanL f XmlItem{..} = (\xmlItemAttributeBoolean -> XmlItem { xmlItemAttributeBoolean, ..} ) <$> f xmlItemAttributeBoolean+{-# INLINE xmlItemAttributeBooleanL #-}++-- | 'xmlItemWrappedArray' Lens+xmlItemWrappedArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemWrappedArrayL f XmlItem{..} = (\xmlItemWrappedArray -> XmlItem { xmlItemWrappedArray, ..} ) <$> f xmlItemWrappedArray+{-# INLINE xmlItemWrappedArrayL #-}++-- | 'xmlItemNameString' Lens+xmlItemNameStringL :: Lens_' XmlItem (Maybe Text)+xmlItemNameStringL f XmlItem{..} = (\xmlItemNameString -> XmlItem { xmlItemNameString, ..} ) <$> f xmlItemNameString+{-# INLINE xmlItemNameStringL #-}++-- | 'xmlItemNameNumber' Lens+xmlItemNameNumberL :: Lens_' XmlItem (Maybe Double)+xmlItemNameNumberL f XmlItem{..} = (\xmlItemNameNumber -> XmlItem { xmlItemNameNumber, ..} ) <$> f xmlItemNameNumber+{-# INLINE xmlItemNameNumberL #-}++-- | 'xmlItemNameInteger' Lens+xmlItemNameIntegerL :: Lens_' XmlItem (Maybe Int)+xmlItemNameIntegerL f XmlItem{..} = (\xmlItemNameInteger -> XmlItem { xmlItemNameInteger, ..} ) <$> f xmlItemNameInteger+{-# INLINE xmlItemNameIntegerL #-}++-- | 'xmlItemNameBoolean' Lens+xmlItemNameBooleanL :: Lens_' XmlItem (Maybe Bool)+xmlItemNameBooleanL f XmlItem{..} = (\xmlItemNameBoolean -> XmlItem { xmlItemNameBoolean, ..} ) <$> f xmlItemNameBoolean+{-# INLINE xmlItemNameBooleanL #-}++-- | 'xmlItemNameArray' Lens+xmlItemNameArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemNameArrayL f XmlItem{..} = (\xmlItemNameArray -> XmlItem { xmlItemNameArray, ..} ) <$> f xmlItemNameArray+{-# INLINE xmlItemNameArrayL #-}++-- | 'xmlItemNameWrappedArray' Lens+xmlItemNameWrappedArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemNameWrappedArrayL f XmlItem{..} = (\xmlItemNameWrappedArray -> XmlItem { xmlItemNameWrappedArray, ..} ) <$> f xmlItemNameWrappedArray+{-# INLINE xmlItemNameWrappedArrayL #-}++-- | 'xmlItemPrefixString' Lens+xmlItemPrefixStringL :: Lens_' XmlItem (Maybe Text)+xmlItemPrefixStringL f XmlItem{..} = (\xmlItemPrefixString -> XmlItem { xmlItemPrefixString, ..} ) <$> f xmlItemPrefixString+{-# INLINE xmlItemPrefixStringL #-}++-- | 'xmlItemPrefixNumber' Lens+xmlItemPrefixNumberL :: Lens_' XmlItem (Maybe Double)+xmlItemPrefixNumberL f XmlItem{..} = (\xmlItemPrefixNumber -> XmlItem { xmlItemPrefixNumber, ..} ) <$> f xmlItemPrefixNumber+{-# INLINE xmlItemPrefixNumberL #-}++-- | 'xmlItemPrefixInteger' Lens+xmlItemPrefixIntegerL :: Lens_' XmlItem (Maybe Int)+xmlItemPrefixIntegerL f XmlItem{..} = (\xmlItemPrefixInteger -> XmlItem { xmlItemPrefixInteger, ..} ) <$> f xmlItemPrefixInteger+{-# INLINE xmlItemPrefixIntegerL #-}++-- | 'xmlItemPrefixBoolean' Lens+xmlItemPrefixBooleanL :: Lens_' XmlItem (Maybe Bool)+xmlItemPrefixBooleanL f XmlItem{..} = (\xmlItemPrefixBoolean -> XmlItem { xmlItemPrefixBoolean, ..} ) <$> f xmlItemPrefixBoolean+{-# INLINE xmlItemPrefixBooleanL #-}++-- | 'xmlItemPrefixArray' Lens+xmlItemPrefixArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemPrefixArrayL f XmlItem{..} = (\xmlItemPrefixArray -> XmlItem { xmlItemPrefixArray, ..} ) <$> f xmlItemPrefixArray+{-# INLINE xmlItemPrefixArrayL #-}++-- | 'xmlItemPrefixWrappedArray' Lens+xmlItemPrefixWrappedArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemPrefixWrappedArrayL f XmlItem{..} = (\xmlItemPrefixWrappedArray -> XmlItem { xmlItemPrefixWrappedArray, ..} ) <$> f xmlItemPrefixWrappedArray+{-# INLINE xmlItemPrefixWrappedArrayL #-}++-- | 'xmlItemNamespaceString' Lens+xmlItemNamespaceStringL :: Lens_' XmlItem (Maybe Text)+xmlItemNamespaceStringL f XmlItem{..} = (\xmlItemNamespaceString -> XmlItem { xmlItemNamespaceString, ..} ) <$> f xmlItemNamespaceString+{-# INLINE xmlItemNamespaceStringL #-}++-- | 'xmlItemNamespaceNumber' Lens+xmlItemNamespaceNumberL :: Lens_' XmlItem (Maybe Double)+xmlItemNamespaceNumberL f XmlItem{..} = (\xmlItemNamespaceNumber -> XmlItem { xmlItemNamespaceNumber, ..} ) <$> f xmlItemNamespaceNumber+{-# INLINE xmlItemNamespaceNumberL #-}++-- | 'xmlItemNamespaceInteger' Lens+xmlItemNamespaceIntegerL :: Lens_' XmlItem (Maybe Int)+xmlItemNamespaceIntegerL f XmlItem{..} = (\xmlItemNamespaceInteger -> XmlItem { xmlItemNamespaceInteger, ..} ) <$> f xmlItemNamespaceInteger+{-# INLINE xmlItemNamespaceIntegerL #-}++-- | 'xmlItemNamespaceBoolean' Lens+xmlItemNamespaceBooleanL :: Lens_' XmlItem (Maybe Bool)+xmlItemNamespaceBooleanL f XmlItem{..} = (\xmlItemNamespaceBoolean -> XmlItem { xmlItemNamespaceBoolean, ..} ) <$> f xmlItemNamespaceBoolean+{-# INLINE xmlItemNamespaceBooleanL #-}++-- | 'xmlItemNamespaceArray' Lens+xmlItemNamespaceArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemNamespaceArrayL f XmlItem{..} = (\xmlItemNamespaceArray -> XmlItem { xmlItemNamespaceArray, ..} ) <$> f xmlItemNamespaceArray+{-# INLINE xmlItemNamespaceArrayL #-}++-- | 'xmlItemNamespaceWrappedArray' Lens+xmlItemNamespaceWrappedArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemNamespaceWrappedArrayL f XmlItem{..} = (\xmlItemNamespaceWrappedArray -> XmlItem { xmlItemNamespaceWrappedArray, ..} ) <$> f xmlItemNamespaceWrappedArray+{-# INLINE xmlItemNamespaceWrappedArrayL #-}++-- | 'xmlItemPrefixNsString' Lens+xmlItemPrefixNsStringL :: Lens_' XmlItem (Maybe Text)+xmlItemPrefixNsStringL f XmlItem{..} = (\xmlItemPrefixNsString -> XmlItem { xmlItemPrefixNsString, ..} ) <$> f xmlItemPrefixNsString+{-# INLINE xmlItemPrefixNsStringL #-}++-- | 'xmlItemPrefixNsNumber' Lens+xmlItemPrefixNsNumberL :: Lens_' XmlItem (Maybe Double)+xmlItemPrefixNsNumberL f XmlItem{..} = (\xmlItemPrefixNsNumber -> XmlItem { xmlItemPrefixNsNumber, ..} ) <$> f xmlItemPrefixNsNumber+{-# INLINE xmlItemPrefixNsNumberL #-}++-- | 'xmlItemPrefixNsInteger' Lens+xmlItemPrefixNsIntegerL :: Lens_' XmlItem (Maybe Int)+xmlItemPrefixNsIntegerL f XmlItem{..} = (\xmlItemPrefixNsInteger -> XmlItem { xmlItemPrefixNsInteger, ..} ) <$> f xmlItemPrefixNsInteger+{-# INLINE xmlItemPrefixNsIntegerL #-}++-- | 'xmlItemPrefixNsBoolean' Lens+xmlItemPrefixNsBooleanL :: Lens_' XmlItem (Maybe Bool)+xmlItemPrefixNsBooleanL f XmlItem{..} = (\xmlItemPrefixNsBoolean -> XmlItem { xmlItemPrefixNsBoolean, ..} ) <$> f xmlItemPrefixNsBoolean+{-# INLINE xmlItemPrefixNsBooleanL #-}++-- | 'xmlItemPrefixNsArray' Lens+xmlItemPrefixNsArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemPrefixNsArrayL f XmlItem{..} = (\xmlItemPrefixNsArray -> XmlItem { xmlItemPrefixNsArray, ..} ) <$> f xmlItemPrefixNsArray+{-# INLINE xmlItemPrefixNsArrayL #-}++-- | 'xmlItemPrefixNsWrappedArray' Lens+xmlItemPrefixNsWrappedArrayL :: Lens_' XmlItem (Maybe [Int])+xmlItemPrefixNsWrappedArrayL f XmlItem{..} = (\xmlItemPrefixNsWrappedArray -> XmlItem { xmlItemPrefixNsWrappedArray, ..} ) <$> f xmlItemPrefixNsWrappedArray+{-# INLINE xmlItemPrefixNsWrappedArrayL #-}  
openapi-petstore.cabal view
@@ -1,5 +1,5 @@ name:           openapi-petstore-version:        0.0.3.0+version:        0.0.4.0 synopsis:       Auto-generated openapi-petstore API Client description:    .                 Client library for calling the OpenAPI Petstore API based on http-client.@@ -12,13 +12,12 @@                 .                 OpenAPI version: 3.0.1                 .-                category:       Web+category:       Web homepage:       https://openapi-generator.tech author:         Author Name Here maintainer:     author.name@email.com copyright:      YEAR - AUTHOR license:        MIT-category:       Web build-type:     Simple cabal-version:  >= 1.10 @@ -26,6 +25,11 @@     README.md     openapi.yaml +Flag UseKatip+  Description: Use the katip package to provide logging (if false, use the default monad-logger package)+  Default:     True+  Manual:      True+ library   hs-source-dirs:       lib@@ -36,10 +40,10 @@     , base64-bytestring >1.0 && <2.0     , bytestring >=0.10.0 && <0.11     , case-insensitive-    , containers >=0.5.0.0 && <0.6+    , containers >=0.5.0.0 && <0.8     , deepseq >= 1.4 && <1.6     , exceptions >= 0.4-    , http-api-data >= 0.3.4 && <0.4+    , http-api-data >= 0.3.4 && <0.5     , http-client >=0.5 && <0.6     , http-client-tls     , http-media >= 0.4 && < 0.8@@ -47,7 +51,7 @@     , iso8601-time >=0.1.3 && <0.2.0     , microlens >= 0.4.3 && <0.5     , mtl >=2.2.1-    , network >=2.6.2 && <2.8+    , network >=2.6.2 && <2.9     , random >=1.1     , safe-exceptions <0.2     , text >=0.11 && <1.3@@ -55,7 +59,6 @@     , transformers >=0.4.0.0     , unordered-containers     , vector >=0.10.9 && <0.13-    , katip >=0.4 && < 0.6   other-modules:       Paths_openapi_petstore   exposed-modules:@@ -74,6 +77,15 @@       OpenAPIPetstore.Model       OpenAPIPetstore.ModelLens   default-language: Haskell2010++  if flag(UseKatip)+      build-depends: katip >=0.6 && < 1.0+      other-modules: OpenAPIPetstore.LoggingKatip+      cpp-options: -DUSE_KATIP+  else+      build-depends: monad-logger >=0.3 && <0.4+      other-modules: OpenAPIPetstore.LoggingMonadLogger+      cpp-options: -DUSE_MONAD_LOGGER  test-suite tests   type: exitcode-stdio-1.0
openapi.yaml view
@@ -42,6 +42,7 @@       summary: Add a new pet to the store       tags:       - pet+      x-codegen-request-body-name: body     put:       operationId: updatePet       requestBody:@@ -71,6 +72,7 @@       summary: Update an existing pet       tags:       - pet+      x-codegen-request-body-name: body   /pet/findByStatus:     get:       description: Multiple status values can be provided with comma separated strings@@ -327,6 +329,7 @@       summary: Place an order for a pet       tags:       - store+      x-codegen-request-body-name: body   /store/order/{order_id}:     delete:       description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors@@ -398,6 +401,7 @@       summary: Create user       tags:       - user+      x-codegen-request-body-name: body   /user/createWithArray:     post:       operationId: createUsersWithArrayInput@@ -417,6 +421,7 @@       summary: Creates list of users with given input array       tags:       - user+      x-codegen-request-body-name: body   /user/createWithList:     post:       operationId: createUsersWithListInput@@ -436,6 +441,7 @@       summary: Creates list of users with given input array       tags:       - user+      x-codegen-request-body-name: body   /user/login:     get:       operationId: loginUser@@ -565,6 +571,7 @@       summary: Updated user       tags:       - user+      x-codegen-request-body-name: body   /fake_classname_test:     patch:       description: To test class name in snake case@@ -588,6 +595,7 @@       summary: To test class name in snake case       tags:       - fake_classname_tags 123#$%^+      x-codegen-request-body-name: body   /fake:     delete:       description: Fake endpoint to test group parameters (optional)@@ -756,6 +764,7 @@       summary: To test "client" model       tags:       - fake+      x-codegen-request-body-name: body     post:       description: |         Fake endpoint for testing various parameters@@ -874,6 +883,7 @@           description: Output number       tags:       - fake+      x-codegen-request-body-name: body   /fake/outer/string:     post:       description: Test serialization of outer string types@@ -894,6 +904,7 @@           description: Output string       tags:       - fake+      x-codegen-request-body-name: body   /fake/outer/boolean:     post:       description: Test serialization of outer boolean types@@ -914,6 +925,7 @@           description: Output boolean       tags:       - fake+      x-codegen-request-body-name: body   /fake/outer/composite:     post:       description: Test serialization of object with outer number type@@ -934,6 +946,7 @@           description: Output composite       tags:       - fake+      x-codegen-request-body-name: body   /fake/jsonFormData:     get:       operationId: testJsonFormData@@ -978,6 +991,7 @@       summary: test inline additionalProperties       tags:       - fake+      x-codegen-request-body-name: param   /fake/body-with-query-params:     put:       operationId: testBodyWithQueryParams@@ -999,6 +1013,41 @@           description: Success       tags:       - fake+      x-codegen-request-body-name: body+  /fake/create_xml_item:+    post:+      description: this route creates an XmlItem+      operationId: createXmlItem+      requestBody:+        content:+          application/xml:+            schema:+              $ref: '#/components/schemas/XmlItem'+          application/xml; charset=utf-8:+            schema:+              $ref: '#/components/schemas/XmlItem'+          application/xml; charset=utf-16:+            schema:+              $ref: '#/components/schemas/XmlItem'+          text/xml:+            schema:+              $ref: '#/components/schemas/XmlItem'+          text/xml; charset=utf-8:+            schema:+              $ref: '#/components/schemas/XmlItem'+          text/xml; charset=utf-16:+            schema:+              $ref: '#/components/schemas/XmlItem'+        description: XmlItem Body+        required: true+      responses:+        200:+          content: {}+          description: successful operation+      summary: creates an XmlItem+      tags:+      - fake+      x-codegen-request-body-name: XmlItem   /another-fake/dummy:     patch:       description: To test special tags and operation ID starting with number@@ -1020,6 +1069,7 @@       summary: To test special tags       tags:       - $another-fake?+      x-codegen-request-body-name: body   /fake/body-with-file-schema:     put:       description: For this test, the body for this request much reference a schema named `File`.@@ -1036,6 +1086,7 @@           description: Success       tags:       - fake+      x-codegen-request-body-name: body   /fake/{petId}/uploadImageWithRequiredFile:     post:       operationId: uploadFileWithRequiredFile@@ -1078,6 +1129,40 @@       - pet components:   schemas:+    Order:+      example:+        petId: 6+        quantity: 1+        id: 0+        shipDate: 2000-01-23T04:56:07.000+00:00+        complete: false+        status: placed+      properties:+        id:+          format: int64+          type: integer+        petId:+          format: int64+          type: integer+        quantity:+          format: int32+          type: integer+        shipDate:+          format: date-time+          type: string+        status:+          description: Order Status+          enum:+          - placed+          - approved+          - delivered+          type: string+        complete:+          default: false+          type: boolean+      type: object+      xml:+        name: Order     Category:       example:         name: default-name@@ -1128,45 +1213,72 @@       type: object       xml:         name: User-    OuterNumber:-      type: number-    ArrayOfNumberOnly:-      properties:-        ArrayNumber:-          items:-            type: number-          type: array-      type: object-    Capitalization:+    Tag:+      example:+        name: name+        id: 1       properties:-        smallCamel:-          type: string-        CapitalCamel:-          type: string-        small_Snake:-          type: string-        Capital_Snake:-          type: string-        SCA_ETH_Flow_Points:-          type: string-        ATT_NAME:-          description: |-            Name of the pet+        id:+          format: int64+          type: integer+        name:           type: string       type: object-    MixedPropertiesAndAdditionalPropertiesClass:+      xml:+        name: Tag+    Pet:+      example:+        photoUrls:+        - photoUrls+        - photoUrls+        name: doggie+        id: 0+        category:+          name: default-name+          id: 6+        tags:+        - name: name+          id: 1+        - name: name+          id: 1+        status: available       properties:-        uuid:-          format: uuid+        id:+          format: int64+          type: integer+          x-is-unique: true+        category:+          $ref: '#/components/schemas/Category'+        name:+          example: doggie           type: string-        dateTime:-          format: date-time+        photoUrls:+          items:+            type: string+          type: array+          xml:+            name: photoUrl+            wrapped: true+        tags:+          items:+            $ref: '#/components/schemas/Tag'+          type: array+          xml:+            name: tag+            wrapped: true+        status:+          description: pet status in the store+          enum:+          - available+          - pending+          - sold           type: string-        map:-          additionalProperties:-            $ref: '#/components/schemas/Animal'-          type: object+      required:+      - name+      - photoUrls       type: object+      xml:+        name: Pet     ApiResponse:       example:         code: 0@@ -1181,6 +1293,23 @@         message:           type: string       type: object+    $special[model.name]:+      properties:+        $special[property.name]:+          format: int64+          type: integer+      type: object+      xml:+        name: $special[model.name]+    Return:+      description: Model for testing reserved words+      properties:+        return:+          format: int32+          type: integer+      type: object+      xml:+        name: Return     Name:       description: Model for testing model name same as property name       properties:@@ -1201,23 +1330,6 @@       type: object       xml:         name: Name-    EnumClass:-      default: -efg-      enum:-      - _abc-      - -efg-      - (xyz)-      type: string-    List:-      properties:-        123-list:-          type: string-      type: object-    NumberOnly:-      properties:-        JustNumber:-          type: number-      type: object     200_response:       description: Model for testing model name starting with number       properties:@@ -1229,11 +1341,10 @@       type: object       xml:         name: Name-    Client:-      example:-        client: client+    ClassModel:+      description: Model for testing model with "_class" property       properties:-        client:+        _class:           type: string       type: object     Dog:@@ -1243,6 +1354,95 @@           breed:             type: string         type: object+    Cat:+      allOf:+      - $ref: '#/components/schemas/Animal'+      - properties:+          declawed:+            type: boolean+        type: object+    Animal:+      discriminator:+        propertyName: className+      properties:+        className:+          type: string+        color:+          default: red+          type: string+      required:+      - className+      type: object+    AnimalFarm:+      items:+        $ref: '#/components/schemas/Animal'+      type: array+    format_test:+      properties:+        integer:+          maximum: 1E+2+          minimum: 1E+1+          type: integer+        int32:+          format: int32+          maximum: 2E+2+          minimum: 2E+1+          type: integer+        int64:+          format: int64+          type: integer+        number:+          maximum: 543.2+          minimum: 32.1+          type: number+        float:+          format: float+          maximum: 987.6+          minimum: 54.3+          type: number+        double:+          format: double+          maximum: 123.4+          minimum: 67.8+          type: number+        string:+          pattern: /[a-z]/i+          type: string+        byte:+          format: byte+          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$+          type: string+        binary:+          format: binary+          type: string+        date:+          format: date+          type: string+        dateTime:+          format: date-time+          type: string+        uuid:+          example: 72f98069-206d-4f12-9f12-3d1e525a8e84+          format: uuid+          type: string+        password:+          format: password+          maxLength: 64+          minLength: 10+          type: string+      required:+      - byte+      - date+      - number+      - password+      type: object+    EnumClass:+      default: -efg+      enum:+      - _abc+      - -efg+      - (xyz)+      type: string     Enum_Test:       properties:         enum_string:@@ -1274,40 +1474,6 @@       required:       - enum_string_required       type: object-    Order:-      example:-        petId: 6-        quantity: 1-        id: 0-        shipDate: 2000-01-23T04:56:07.000+00:00-        complete: false-        status: placed-      properties:-        id:-          format: int64-          type: integer-        petId:-          format: int64-          type: integer-        quantity:-          format: int32-          type: integer-        shipDate:-          format: date-time-          type: string-        status:-          description: Order Status-          enum:-          - placed-          - approved-          - delivered-          type: string-        complete:-          default: false-          type: boolean-      type: object-      xml:-        name: Order     AdditionalPropertiesClass:       properties:         map_property:@@ -1321,23 +1487,31 @@             type: object           type: object       type: object-    $special[model.name]:+    MixedPropertiesAndAdditionalPropertiesClass:       properties:-        $special[property.name]:-          format: int64-          type: integer+        uuid:+          format: uuid+          type: string+        dateTime:+          format: date-time+          type: string+        map:+          additionalProperties:+            $ref: '#/components/schemas/Animal'+          type: object       type: object-      xml:-        name: $special[model.name]-    Return:-      description: Model for testing reserved words+    List:       properties:-        return:-          format: int32-          type: integer+        123-list:+          type: string       type: object-      xml:-        name: Return+    Client:+      example:+        client: client+      properties:+        client:+          type: string+      type: object     ReadOnlyFirst:       properties:         bar:@@ -1346,21 +1520,56 @@         baz:           type: string       type: object-    ArrayOfArrayOfNumberOnly:+    hasOnlyReadOnly:       properties:-        ArrayArrayNumber:-          items:-            items:-              type: number-            type: array-          type: array+        bar:+          readOnly: true+          type: string+        foo:+          readOnly: true+          type: string       type: object-    OuterEnum:-      enum:-      - placed-      - approved-      - delivered-      type: string+    Capitalization:+      properties:+        smallCamel:+          type: string+        CapitalCamel:+          type: string+        small_Snake:+          type: string+        Capital_Snake:+          type: string+        SCA_ETH_Flow_Points:+          type: string+        ATT_NAME:+          description: |+            Name of the pet+          type: string+      type: object+    MapTest:+      properties:+        map_map_of_string:+          additionalProperties:+            additionalProperties:+              type: string+            type: object+          type: object+        map_of_enum_string:+          additionalProperties:+            enum:+            - UPPER+            - lower+            type: string+          type: object+        direct_map:+          additionalProperties:+            type: boolean+          type: object+        indirect_map:+          additionalProperties:+            type: boolean+          type: object+      type: object     ArrayTest:       properties:         array_of_string:@@ -1381,78 +1590,27 @@             type: array           type: array       type: object-    OuterComposite:-      example:-        my_string: my_string-        my_number: 0.80082819046101150206595775671303272247314453125-        my_boolean: true+    NumberOnly:       properties:-        my_number:+        JustNumber:           type: number-        my_string:-          type: string-        my_boolean:-          type: boolean-          x-codegen-body-parameter-name: boolean_post_body       type: object-    format_test:+    ArrayOfNumberOnly:       properties:-        integer:-          maximum: 1E+2-          minimum: 1E+1-          type: integer-        int32:-          format: int32-          maximum: 2E+2-          minimum: 2E+1-          type: integer-        int64:-          format: int64-          type: integer-        number:-          maximum: 543.2-          minimum: 32.1-          type: number-        float:-          format: float-          maximum: 987.6-          minimum: 54.3-          type: number-        double:-          format: double-          maximum: 123.4-          minimum: 67.8-          type: number-        string:-          pattern: /[a-z]/i-          type: string-        byte:-          format: byte-          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$-          type: string-        binary:-          format: binary-          type: string-        date:-          format: date-          type: string-        dateTime:-          format: date-time-          type: string-        uuid:-          format: uuid-          type: string-        password:-          format: password-          maxLength: 64-          minLength: 10-          type: string-      required:-      - byte-      - date-      - number-      - password+        ArrayNumber:+          items:+            type: number+          type: array       type: object+    ArrayOfArrayOfNumberOnly:+      properties:+        ArrayArrayNumber:+          items:+            items:+              type: number+            type: array+          type: array+      type: object     EnumArrays:       properties:         just_symbol:@@ -1468,17 +1626,37 @@             type: string           type: array       type: object-    OuterString:+    OuterEnum:+      enum:+      - placed+      - approved+      - delivered       type: string-    ClassModel:-      description: Model for testing model with "_class" property+    OuterComposite:+      example:+        my_string: my_string+        my_number: 0.8008281904610115+        my_boolean: true       properties:-        _class:+        my_number:+          type: number+        my_string:           type: string+        my_boolean:+          type: boolean+          x-codegen-body-parameter-name: boolean_post_body       type: object+    OuterNumber:+      type: number+    OuterString:+      type: string     OuterBoolean:       type: boolean       x-codegen-body-parameter-name: boolean_post_body+    StringBooleanMap:+      additionalProperties:+        type: boolean+      type: object     FileSchemaTestClass:       example:         file:@@ -1494,70 +1672,6 @@             $ref: '#/components/schemas/File'           type: array       type: object-    Animal:-      discriminator:-        propertyName: className-      properties:-        className:-          type: string-        color:-          default: red-          type: string-      required:-      - className-      type: object-    StringBooleanMap:-      additionalProperties:-        type: boolean-      type: object-    Cat:-      allOf:-      - $ref: '#/components/schemas/Animal'-      - properties:-          declawed:-            type: boolean-        type: object-    MapTest:-      properties:-        map_map_of_string:-          additionalProperties:-            additionalProperties:-              type: string-            type: object-          type: object-        map_of_enum_string:-          additionalProperties:-            enum:-            - UPPER-            - lower-            type: string-          type: object-        direct_map:-          additionalProperties:-            type: boolean-          type: object-        indirect_map:-          additionalProperties:-            type: boolean-          type: object-      type: object-    Tag:-      example:-        name: name-        id: 1-      properties:-        id:-          format: int64-          type: integer-        name:-          type: string-      type: object-      xml:-        name: Tag-    AnimalFarm:-      items:-        $ref: '#/components/schemas/Animal'-      type: array     File:       description: Must be named `File` for test.       example:@@ -1567,68 +1681,238 @@           description: Test capitalization           type: string       type: object-    Pet:-      example:-        photoUrls:-        - photoUrls-        - photoUrls-        name: doggie-        id: 0-        category:-          name: default-name-          id: 6-        tags:-        - name: name-          id: 1-        - name: name-          id: 1-        status: available+    TypeHolderDefault:       properties:-        id:-          format: int64+        string_item:+          default: what+          type: string+        number_item:+          type: number+        integer_item:           type: integer-          x-is-unique: true-        category:-          $ref: '#/components/schemas/Category'-        name:-          example: doggie+        bool_item:+          default: true+          type: boolean+        array_item:+          items:+            type: integer+          type: array+      required:+      - array_item+      - bool_item+      - integer_item+      - number_item+      - string_item+      type: object+    TypeHolderExample:+      properties:+        string_item:+          example: what           type: string-        photoUrls:+        number_item:+          example: 1.234+          type: number+        integer_item:+          example: -2+          type: integer+        bool_item:+          example: true+          type: boolean+        array_item:+          example:+          - 0+          - 1+          - 2+          - 3           items:-            type: string+            type: integer           type: array+      required:+      - array_item+      - bool_item+      - integer_item+      - number_item+      - string_item+      type: object+    XmlItem:+      properties:+        attribute_string:+          example: string+          type: string           xml:-            name: photoUrl+            attribute: true+        attribute_number:+          example: 1.234+          type: number+          xml:+            attribute: true+        attribute_integer:+          example: -2+          type: integer+          xml:+            attribute: true+        attribute_boolean:+          example: true+          type: boolean+          xml:+            attribute: true+        wrapped_array:+          items:+            type: integer+          type: array+          xml:             wrapped: true-        tags:+        name_string:+          example: string+          type: string+          xml:+            name: xml_name_string+        name_number:+          example: 1.234+          type: number+          xml:+            name: xml_name_number+        name_integer:+          example: -2+          type: integer+          xml:+            name: xml_name_integer+        name_boolean:+          example: true+          type: boolean+          xml:+            name: xml_name_boolean+        name_array:           items:-            $ref: '#/components/schemas/Tag'+            type: integer+            xml:+              name: xml_name_array_item           type: array+        name_wrapped_array:+          items:+            type: integer+            xml:+              name: xml_name_wrapped_array_item+          type: array           xml:-            name: tag+            name: xml_name_wrapped_array             wrapped: true-        status:-          description: pet status in the store-          enum:-          - available-          - pending-          - sold+        prefix_string:+          example: string           type: string-      required:-      - name-      - photoUrls-      type: object-      xml:-        name: Pet-    hasOnlyReadOnly:-      properties:-        bar:-          readOnly: true+          xml:+            prefix: ab+        prefix_number:+          example: 1.234+          type: number+          xml:+            prefix: cd+        prefix_integer:+          example: -2+          type: integer+          xml:+            prefix: ef+        prefix_boolean:+          example: true+          type: boolean+          xml:+            prefix: gh+        prefix_array:+          items:+            type: integer+            xml:+              prefix: ij+          type: array+        prefix_wrapped_array:+          items:+            type: integer+            xml:+              prefix: mn+          type: array+          xml:+            prefix: kl+            wrapped: true+        namespace_string:+          example: string           type: string-        foo:-          readOnly: true+          xml:+            namespace: http://a.com/schema+        namespace_number:+          example: 1.234+          type: number+          xml:+            namespace: http://b.com/schema+        namespace_integer:+          example: -2+          type: integer+          xml:+            namespace: http://c.com/schema+        namespace_boolean:+          example: true+          type: boolean+          xml:+            namespace: http://d.com/schema+        namespace_array:+          items:+            type: integer+            xml:+              namespace: http://e.com/schema+          type: array+        namespace_wrapped_array:+          items:+            type: integer+            xml:+              namespace: http://g.com/schema+          type: array+          xml:+            namespace: http://f.com/schema+            wrapped: true+        prefix_ns_string:+          example: string           type: string+          xml:+            namespace: http://a.com/schema+            prefix: a+        prefix_ns_number:+          example: 1.234+          type: number+          xml:+            namespace: http://b.com/schema+            prefix: b+        prefix_ns_integer:+          example: -2+          type: integer+          xml:+            namespace: http://c.com/schema+            prefix: c+        prefix_ns_boolean:+          example: true+          type: boolean+          xml:+            namespace: http://d.com/schema+            prefix: d+        prefix_ns_array:+          items:+            type: integer+            xml:+              namespace: http://e.com/schema+              prefix: e+          type: array+        prefix_ns_wrapped_array:+          items:+            type: integer+            xml:+              namespace: http://g.com/schema+              prefix: g+          type: array+          xml:+            namespace: http://f.com/schema+            prefix: f+            wrapped: true       type: object+      xml:+        namespace: http://a.com/schema+        prefix: pre   securitySchemes:     petstore_auth:       flows:@@ -1638,9 +1922,6 @@             write:pets: modify pets in your account             read:pets: read your pets       type: oauth2-    http_basic_test:-      scheme: basic-      type: http     api_key:       in: header       name: api_key@@ -1649,3 +1930,6 @@       in: query       name: api_key_query       type: apiKey+    http_basic_test:+      scheme: basic+      type: http
tests/Instances.hs view
@@ -101,11 +101,6 @@       <$> arbitrary -- animalClassName :: Text       <*> arbitrary -- animalColor :: Maybe Text     -instance Arbitrary AnimalFarm where-  arbitrary =-    -    pure AnimalFarm-      instance Arbitrary ApiResponse where   arbitrary =     ApiResponse@@ -301,17 +296,30 @@     SpecialModelName       <$> arbitrary -- specialModelNameSpecialPropertyName :: Maybe Integer     -instance Arbitrary StringBooleanMap where-  arbitrary =-    -    pure StringBooleanMap-      instance Arbitrary Tag where   arbitrary =     Tag       <$> arbitrary -- tagId :: Maybe Integer       <*> arbitrary -- tagName :: Maybe Text     +instance Arbitrary TypeHolderDefault where+  arbitrary =+    TypeHolderDefault+      <$> arbitrary -- typeHolderDefaultStringItem :: Text+      <*> arbitrary -- typeHolderDefaultNumberItem :: Double+      <*> arbitrary -- typeHolderDefaultIntegerItem :: Int+      <*> arbitrary -- typeHolderDefaultBoolItem :: Bool+      <*> arbitrary -- typeHolderDefaultArrayItem :: [Int]+    +instance Arbitrary TypeHolderExample where+  arbitrary =+    TypeHolderExample+      <$> arbitrary -- typeHolderExampleStringItem :: Text+      <*> arbitrary -- typeHolderExampleNumberItem :: Double+      <*> arbitrary -- typeHolderExampleIntegerItem :: Int+      <*> arbitrary -- typeHolderExampleBoolItem :: Bool+      <*> arbitrary -- typeHolderExampleArrayItem :: [Int]+     instance Arbitrary User where   arbitrary =     User@@ -323,6 +331,39 @@       <*> arbitrary -- userPassword :: Maybe Text       <*> arbitrary -- userPhone :: Maybe Text       <*> arbitrary -- userUserStatus :: Maybe Int+    +instance Arbitrary XmlItem where+  arbitrary =+    XmlItem+      <$> arbitrary -- xmlItemAttributeString :: Maybe Text+      <*> arbitrary -- xmlItemAttributeNumber :: Maybe Double+      <*> arbitrary -- xmlItemAttributeInteger :: Maybe Int+      <*> arbitrary -- xmlItemAttributeBoolean :: Maybe Bool+      <*> arbitrary -- xmlItemWrappedArray :: Maybe [Int]+      <*> arbitrary -- xmlItemNameString :: Maybe Text+      <*> arbitrary -- xmlItemNameNumber :: Maybe Double+      <*> arbitrary -- xmlItemNameInteger :: Maybe Int+      <*> arbitrary -- xmlItemNameBoolean :: Maybe Bool+      <*> arbitrary -- xmlItemNameArray :: Maybe [Int]+      <*> arbitrary -- xmlItemNameWrappedArray :: Maybe [Int]+      <*> arbitrary -- xmlItemPrefixString :: Maybe Text+      <*> arbitrary -- xmlItemPrefixNumber :: Maybe Double+      <*> arbitrary -- xmlItemPrefixInteger :: Maybe Int+      <*> arbitrary -- xmlItemPrefixBoolean :: Maybe Bool+      <*> arbitrary -- xmlItemPrefixArray :: Maybe [Int]+      <*> arbitrary -- xmlItemPrefixWrappedArray :: Maybe [Int]+      <*> arbitrary -- xmlItemNamespaceString :: Maybe Text+      <*> arbitrary -- xmlItemNamespaceNumber :: Maybe Double+      <*> arbitrary -- xmlItemNamespaceInteger :: Maybe Int+      <*> arbitrary -- xmlItemNamespaceBoolean :: Maybe Bool+      <*> arbitrary -- xmlItemNamespaceArray :: Maybe [Int]+      <*> arbitrary -- xmlItemNamespaceWrappedArray :: Maybe [Int]+      <*> arbitrary -- xmlItemPrefixNsString :: Maybe Text+      <*> arbitrary -- xmlItemPrefixNsNumber :: Maybe Double+      <*> arbitrary -- xmlItemPrefixNsInteger :: Maybe Int+      <*> arbitrary -- xmlItemPrefixNsBoolean :: Maybe Bool+      <*> arbitrary -- xmlItemPrefixNsArray :: Maybe [Int]+      <*> arbitrary -- xmlItemPrefixNsWrappedArray :: Maybe [Int]       
tests/Test.hs view
@@ -22,7 +22,6 @@       pure ()       propMimeEq MimeJSON (Proxy :: Proxy AdditionalPropertiesClass)       propMimeEq MimeJSON (Proxy :: Proxy Animal)-      propMimeEq MimeJSON (Proxy :: Proxy AnimalFarm)       propMimeEq MimeJSON (Proxy :: Proxy ApiResponse)       propMimeEq MimeJSON (Proxy :: Proxy ArrayOfArrayOfNumberOnly)       propMimeEq MimeJSON (Proxy :: Proxy ArrayOfNumberOnly)@@ -53,7 +52,9 @@       propMimeEq MimeJSON (Proxy :: Proxy Pet)       propMimeEq MimeJSON (Proxy :: Proxy ReadOnlyFirst)       propMimeEq MimeJSON (Proxy :: Proxy SpecialModelName)-      propMimeEq MimeJSON (Proxy :: Proxy StringBooleanMap)       propMimeEq MimeJSON (Proxy :: Proxy Tag)+      propMimeEq MimeJSON (Proxy :: Proxy TypeHolderDefault)+      propMimeEq MimeJSON (Proxy :: Proxy TypeHolderExample)       propMimeEq MimeJSON (Proxy :: Proxy User)+      propMimeEq MimeJSON (Proxy :: Proxy XmlItem)