{- Swagger 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 spec version: 2.0 Swagger Petstore API version: 1.0.0 Contact: apiteam@swagger.io Generated by Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -} {-| Module : SwaggerPetstore.API -} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-} module SwaggerPetstore.API where import SwaggerPetstore.Core import SwaggerPetstore.MimeTypes import SwaggerPetstore.Model as M import qualified Data.Aeson as A import qualified Data.ByteString as B import qualified Data.ByteString.Base64 as B64 import qualified Data.ByteString.Char8 as BC import qualified Data.ByteString.Lazy as BL import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep) import qualified Data.Foldable as P import qualified Data.Map as Map import qualified Data.Maybe as P import qualified Data.Proxy as P (Proxy(..)) import qualified Data.Set as Set import qualified Data.String as P import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TL import qualified Data.Time as TI import qualified GHC.Base as P (Alternative) import qualified Lens.Micro as L import qualified Network.HTTP.Client.MultipartFormData as NH import qualified Network.HTTP.Media as ME import qualified Network.HTTP.Types as NH import qualified Web.FormUrlEncoded as WH import qualified Web.HttpApiData as WH import Data.Monoid ((<>)) import Data.Function ((&)) import Data.Text (Text) import GHC.Base ((<|>)) import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor) import qualified Prelude as P -- * Operations -- ** AnotherFake -- *** testSpecialTags -- | @PATCH \/another-fake\/dummy@ -- -- To test special tags -- -- To test special tags -- testSpecialTags :: (Consumes TestSpecialTags contentType, MimeRender contentType Client) => contentType -- ^ request content-type ('MimeType') -> Client -- ^ "body" - client model -> SwaggerPetstoreRequest TestSpecialTags contentType Client testSpecialTags _ body = _mkRequest "PATCH" ["/another-fake/dummy"] `setBodyParam` body data TestSpecialTags -- | /Body Param/ "body" - client model instance HasBodyParam TestSpecialTags Client -- | @application/json@ instance Consumes TestSpecialTags MimeJSON -- | @application/json@ instance Produces TestSpecialTags MimeJSON -- ** Fake -- *** fakeOuterBooleanSerialize -- | @POST \/fake\/outer\/boolean@ -- -- Test serialization of outer boolean types -- fakeOuterBooleanSerialize :: (Consumes FakeOuterBooleanSerialize contentType) => contentType -- ^ request content-type ('MimeType') -> SwaggerPetstoreRequest FakeOuterBooleanSerialize contentType OuterBoolean fakeOuterBooleanSerialize _ = _mkRequest "POST" ["/fake/outer/boolean"] data FakeOuterBooleanSerialize -- | /Body Param/ "body" - Input boolean as post body instance HasBodyParam FakeOuterBooleanSerialize OuterBoolean -- *** fakeOuterCompositeSerialize -- | @POST \/fake\/outer\/composite@ -- -- Test serialization of object with outer number type -- fakeOuterCompositeSerialize :: (Consumes FakeOuterCompositeSerialize contentType) => contentType -- ^ request content-type ('MimeType') -> SwaggerPetstoreRequest FakeOuterCompositeSerialize contentType OuterComposite fakeOuterCompositeSerialize _ = _mkRequest "POST" ["/fake/outer/composite"] data FakeOuterCompositeSerialize -- | /Body Param/ "body" - Input composite as post body instance HasBodyParam FakeOuterCompositeSerialize OuterComposite -- *** fakeOuterNumberSerialize -- | @POST \/fake\/outer\/number@ -- -- Test serialization of outer number types -- fakeOuterNumberSerialize :: (Consumes FakeOuterNumberSerialize contentType) => contentType -- ^ request content-type ('MimeType') -> SwaggerPetstoreRequest FakeOuterNumberSerialize contentType OuterNumber fakeOuterNumberSerialize _ = _mkRequest "POST" ["/fake/outer/number"] data FakeOuterNumberSerialize -- | /Body Param/ "body" - Input number as post body instance HasBodyParam FakeOuterNumberSerialize OuterNumber -- *** fakeOuterStringSerialize -- | @POST \/fake\/outer\/string@ -- -- Test serialization of outer string types -- fakeOuterStringSerialize :: (Consumes FakeOuterStringSerialize contentType) => contentType -- ^ request content-type ('MimeType') -> SwaggerPetstoreRequest FakeOuterStringSerialize contentType OuterString fakeOuterStringSerialize _ = _mkRequest "POST" ["/fake/outer/string"] data FakeOuterStringSerialize -- | /Body Param/ "body" - Input string as post body instance HasBodyParam FakeOuterStringSerialize OuterString -- *** testClientModel -- | @PATCH \/fake@ -- -- To test \"client\" model -- -- To test \"client\" model -- testClientModel :: (Consumes TestClientModel contentType, MimeRender contentType Client) => contentType -- ^ request content-type ('MimeType') -> Client -- ^ "body" - client model -> SwaggerPetstoreRequest TestClientModel contentType Client testClientModel _ body = _mkRequest "PATCH" ["/fake"] `setBodyParam` body data TestClientModel -- | /Body Param/ "body" - client model instance HasBodyParam TestClientModel Client -- | @application/json@ instance Consumes TestClientModel MimeJSON -- | @application/json@ instance Produces TestClientModel MimeJSON -- *** testEndpointParameters -- | @POST \/fake@ -- -- Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 -- -- Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 -- -- AuthMethod: 'AuthBasicHttpBasicTest' -- -- Note: Has 'Produces' instances, but no response schema -- testEndpointParameters :: (Consumes TestEndpointParameters contentType) => contentType -- ^ request content-type ('MimeType') -> Number -- ^ "number" - None -> ParamDouble -- ^ "double" - None -> PatternWithoutDelimiter -- ^ "patternWithoutDelimiter" - None -> Byte -- ^ "byte" - None -> SwaggerPetstoreRequest TestEndpointParameters contentType res testEndpointParameters _ (Number number) (ParamDouble double) (PatternWithoutDelimiter patternWithoutDelimiter) (Byte byte) = _mkRequest "POST" ["/fake"] `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicHttpBasicTest) `addForm` toForm ("number", number) `addForm` toForm ("double", double) `addForm` toForm ("pattern_without_delimiter", patternWithoutDelimiter) `addForm` toForm ("byte", byte) data TestEndpointParameters -- | /Optional Param/ "integer" - None instance HasOptionalParam TestEndpointParameters ParamInteger where applyOptionalParam req (ParamInteger xs) = req `addForm` toForm ("integer", xs) -- | /Optional Param/ "int32" - None instance HasOptionalParam TestEndpointParameters Int32 where applyOptionalParam req (Int32 xs) = req `addForm` toForm ("int32", xs) -- | /Optional Param/ "int64" - None instance HasOptionalParam TestEndpointParameters Int64 where applyOptionalParam req (Int64 xs) = req `addForm` toForm ("int64", xs) -- | /Optional Param/ "float" - None instance HasOptionalParam TestEndpointParameters ParamFloat where applyOptionalParam req (ParamFloat xs) = req `addForm` toForm ("float", xs) -- | /Optional Param/ "string" - None instance HasOptionalParam TestEndpointParameters ParamString where applyOptionalParam req (ParamString xs) = req `addForm` toForm ("string", xs) -- | /Optional Param/ "binary" - None instance HasOptionalParam TestEndpointParameters ParamBinary where applyOptionalParam req (ParamBinary xs) = req `addForm` toForm ("binary", xs) -- | /Optional Param/ "date" - None instance HasOptionalParam TestEndpointParameters ParamDate where applyOptionalParam req (ParamDate xs) = req `addForm` toForm ("date", xs) -- | /Optional Param/ "dateTime" - None instance HasOptionalParam TestEndpointParameters ParamDateTime where applyOptionalParam req (ParamDateTime xs) = req `addForm` toForm ("dateTime", xs) -- | /Optional Param/ "password" - None instance HasOptionalParam TestEndpointParameters Password where applyOptionalParam req (Password xs) = req `addForm` toForm ("password", xs) -- | /Optional Param/ "callback" - None instance HasOptionalParam TestEndpointParameters Callback where applyOptionalParam req (Callback xs) = req `addForm` toForm ("callback", xs) -- | @application/xml; charset=utf-8@ instance Consumes TestEndpointParameters MimeXmlCharsetutf8 -- | @application/json; charset=utf-8@ instance Consumes TestEndpointParameters MimeJsonCharsetutf8 -- | @application/xml; charset=utf-8@ instance Produces TestEndpointParameters MimeXmlCharsetutf8 -- | @application/json; charset=utf-8@ instance Produces TestEndpointParameters MimeJsonCharsetutf8 -- *** testEnumParameters -- | @GET \/fake@ -- -- To test enum parameters -- -- To test enum parameters -- -- Note: Has 'Produces' instances, but no response schema -- testEnumParameters :: (Consumes TestEnumParameters contentType) => contentType -- ^ request content-type ('MimeType') -> SwaggerPetstoreRequest TestEnumParameters contentType res testEnumParameters _ = _mkRequest "GET" ["/fake"] data TestEnumParameters -- | /Optional Param/ "enum_form_string_array" - Form parameter enum test (string array) instance HasOptionalParam TestEnumParameters EnumFormStringArray where applyOptionalParam req (EnumFormStringArray xs) = req `addForm` toFormColl CommaSeparated ("enum_form_string_array", xs) -- | /Optional Param/ "enum_form_string" - Form parameter enum test (string) instance HasOptionalParam TestEnumParameters EnumFormString where applyOptionalParam req (EnumFormString xs) = req `addForm` toForm ("enum_form_string", xs) -- | /Optional Param/ "enum_header_string_array" - Header parameter enum test (string array) instance HasOptionalParam TestEnumParameters EnumHeaderStringArray where applyOptionalParam req (EnumHeaderStringArray xs) = req `setHeader` toHeaderColl CommaSeparated ("enum_header_string_array", xs) -- | /Optional Param/ "enum_header_string" - Header parameter enum test (string) instance HasOptionalParam TestEnumParameters EnumHeaderString where applyOptionalParam req (EnumHeaderString xs) = req `setHeader` toHeader ("enum_header_string", xs) -- | /Optional Param/ "enum_query_string_array" - Query parameter enum test (string array) instance HasOptionalParam TestEnumParameters EnumQueryStringArray where applyOptionalParam req (EnumQueryStringArray xs) = req `setQuery` toQueryColl CommaSeparated ("enum_query_string_array", Just xs) -- | /Optional Param/ "enum_query_string" - Query parameter enum test (string) instance HasOptionalParam TestEnumParameters EnumQueryString where applyOptionalParam req (EnumQueryString xs) = req `setQuery` toQuery ("enum_query_string", Just xs) -- | /Optional Param/ "enum_query_integer" - Query parameter enum test (double) instance HasOptionalParam TestEnumParameters EnumQueryInteger where applyOptionalParam req (EnumQueryInteger xs) = req `setQuery` toQuery ("enum_query_integer", Just xs) -- | /Optional Param/ "enum_query_double" - Query parameter enum test (double) instance HasOptionalParam TestEnumParameters EnumQueryDouble where applyOptionalParam req (EnumQueryDouble xs) = req `addForm` toForm ("enum_query_double", xs) -- | @*/*@ instance Consumes TestEnumParameters MimeAny -- | @*/*@ instance Produces TestEnumParameters MimeAny -- *** testJsonFormData -- | @GET \/fake\/jsonFormData@ -- -- test json serialization of form data -- -- -- testJsonFormData :: (Consumes TestJsonFormData contentType) => contentType -- ^ request content-type ('MimeType') -> Param -- ^ "param" - field1 -> Param2 -- ^ "param2" - field2 -> SwaggerPetstoreRequest TestJsonFormData contentType NoContent testJsonFormData _ (Param param) (Param2 param2) = _mkRequest "GET" ["/fake/jsonFormData"] `addForm` toForm ("param", param) `addForm` toForm ("param2", param2) data TestJsonFormData -- | @application/json@ instance Consumes TestJsonFormData MimeJSON -- ** FakeClassnameTags123 -- *** testClassname -- | @PATCH \/fake_classname_test@ -- -- To test class name in snake case -- -- AuthMethod: 'AuthApiKeyApiKeyQuery' -- testClassname :: (Consumes TestClassname contentType, MimeRender contentType Client) => contentType -- ^ request content-type ('MimeType') -> Client -- ^ "body" - client model -> SwaggerPetstoreRequest TestClassname contentType Client testClassname _ body = _mkRequest "PATCH" ["/fake_classname_test"] `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKeyQuery) `setBodyParam` body data TestClassname -- | /Body Param/ "body" - client model instance HasBodyParam TestClassname Client -- | @application/json@ instance Consumes TestClassname MimeJSON -- | @application/json@ instance Produces TestClassname MimeJSON -- ** Pet -- *** addPet -- | @POST \/pet@ -- -- Add a new pet to the store -- -- -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- -- Note: Has 'Produces' instances, but no response schema -- addPet :: (Consumes AddPet contentType, MimeRender contentType Pet) => contentType -- ^ request content-type ('MimeType') -> Pet -- ^ "body" - Pet object that needs to be added to the store -> SwaggerPetstoreRequest AddPet contentType res addPet _ body = _mkRequest "POST" ["/pet"] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) `setBodyParam` body data AddPet -- | /Body Param/ "body" - Pet object that needs to be added to the store instance HasBodyParam AddPet Pet -- | @application/json@ instance Consumes AddPet MimeJSON -- | @application/xml@ instance Consumes AddPet MimeXML -- | @application/xml@ instance Produces AddPet MimeXML -- | @application/json@ instance Produces AddPet MimeJSON -- *** deletePet -- | @DELETE \/pet\/{petId}@ -- -- Deletes a pet -- -- -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- -- Note: Has 'Produces' instances, but no response schema -- deletePet :: PetId -- ^ "petId" - Pet id to delete -> SwaggerPetstoreRequest DeletePet MimeNoContent res deletePet (PetId petId) = _mkRequest "DELETE" ["/pet/",toPath petId] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) data DeletePet instance HasOptionalParam DeletePet ApiKey where applyOptionalParam req (ApiKey xs) = req `setHeader` toHeader ("api_key", xs) -- | @application/xml@ instance Produces DeletePet MimeXML -- | @application/json@ instance Produces DeletePet MimeJSON -- *** findPetsByStatus -- | @GET \/pet\/findByStatus@ -- -- Finds Pets by status -- -- Multiple status values can be provided with comma separated strings -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- findPetsByStatus :: Status -- ^ "status" - Status values that need to be considered for filter -> SwaggerPetstoreRequest FindPetsByStatus MimeNoContent [Pet] findPetsByStatus (Status status) = _mkRequest "GET" ["/pet/findByStatus"] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) `setQuery` toQueryColl CommaSeparated ("status", Just status) data FindPetsByStatus -- | @application/xml@ instance Produces FindPetsByStatus MimeXML -- | @application/json@ instance Produces FindPetsByStatus MimeJSON -- *** findPetsByTags -- | @GET \/pet\/findByTags@ -- -- Finds Pets by tags -- -- Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- findPetsByTags :: Tags -- ^ "tags" - Tags to filter by -> SwaggerPetstoreRequest FindPetsByTags MimeNoContent [Pet] findPetsByTags (Tags tags) = _mkRequest "GET" ["/pet/findByTags"] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) `setQuery` toQueryColl CommaSeparated ("tags", Just tags) {-# DEPRECATED findPetsByTags "" #-} data FindPetsByTags -- | @application/xml@ instance Produces FindPetsByTags MimeXML -- | @application/json@ instance Produces FindPetsByTags MimeJSON -- *** getPetById -- | @GET \/pet\/{petId}@ -- -- Find pet by ID -- -- Returns a single pet -- -- AuthMethod: 'AuthApiKeyApiKey' -- getPetById :: PetId -- ^ "petId" - ID of pet to return -> SwaggerPetstoreRequest GetPetById MimeNoContent Pet getPetById (PetId petId) = _mkRequest "GET" ["/pet/",toPath petId] `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKey) data GetPetById -- | @application/xml@ instance Produces GetPetById MimeXML -- | @application/json@ instance Produces GetPetById MimeJSON -- *** updatePet -- | @PUT \/pet@ -- -- Update an existing pet -- -- -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- -- Note: Has 'Produces' instances, but no response schema -- updatePet :: (Consumes UpdatePet contentType, MimeRender contentType Pet) => contentType -- ^ request content-type ('MimeType') -> Pet -- ^ "body" - Pet object that needs to be added to the store -> SwaggerPetstoreRequest UpdatePet contentType res updatePet _ body = _mkRequest "PUT" ["/pet"] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) `setBodyParam` body data UpdatePet -- | /Body Param/ "body" - Pet object that needs to be added to the store instance HasBodyParam UpdatePet Pet -- | @application/json@ instance Consumes UpdatePet MimeJSON -- | @application/xml@ instance Consumes UpdatePet MimeXML -- | @application/xml@ instance Produces UpdatePet MimeXML -- | @application/json@ instance Produces UpdatePet MimeJSON -- *** updatePetWithForm -- | @POST \/pet\/{petId}@ -- -- Updates a pet in the store with form data -- -- -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- -- Note: Has 'Produces' instances, but no response schema -- updatePetWithForm :: (Consumes UpdatePetWithForm contentType) => contentType -- ^ request content-type ('MimeType') -> PetId -- ^ "petId" - ID of pet that needs to be updated -> SwaggerPetstoreRequest UpdatePetWithForm contentType res updatePetWithForm _ (PetId petId) = _mkRequest "POST" ["/pet/",toPath petId] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) data UpdatePetWithForm -- | /Optional Param/ "name" - Updated name of the pet instance HasOptionalParam UpdatePetWithForm Name2 where applyOptionalParam req (Name2 xs) = req `addForm` toForm ("name", xs) -- | /Optional Param/ "status" - Updated status of the pet instance HasOptionalParam UpdatePetWithForm StatusText where applyOptionalParam req (StatusText xs) = req `addForm` toForm ("status", xs) -- | @application/x-www-form-urlencoded@ instance Consumes UpdatePetWithForm MimeFormUrlEncoded -- | @application/xml@ instance Produces UpdatePetWithForm MimeXML -- | @application/json@ instance Produces UpdatePetWithForm MimeJSON -- *** uploadFile -- | @POST \/pet\/{petId}\/uploadImage@ -- -- uploads an image -- -- -- -- AuthMethod: 'AuthOAuthPetstoreAuth' -- uploadFile :: (Consumes UploadFile contentType) => contentType -- ^ request content-type ('MimeType') -> PetId -- ^ "petId" - ID of pet to update -> SwaggerPetstoreRequest UploadFile contentType ApiResponse uploadFile _ (PetId petId) = _mkRequest "POST" ["/pet/",toPath petId,"/uploadImage"] `_hasAuthType` (P.Proxy :: P.Proxy AuthOAuthPetstoreAuth) data UploadFile -- | /Optional Param/ "additionalMetadata" - Additional data to pass to server instance HasOptionalParam UploadFile AdditionalMetadata where applyOptionalParam req (AdditionalMetadata xs) = req `_addMultiFormPart` NH.partLBS "additionalMetadata" (mimeRender' MimeMultipartFormData xs) -- | /Optional Param/ "file" - file to upload instance HasOptionalParam UploadFile File where applyOptionalParam req (File xs) = req `_addMultiFormPart` NH.partFileSource "file" xs -- | @multipart/form-data@ instance Consumes UploadFile MimeMultipartFormData -- | @application/json@ instance Produces UploadFile MimeJSON -- ** Store -- *** deleteOrder -- | @DELETE \/store\/order\/{order_id}@ -- -- Delete purchase order by ID -- -- For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors -- -- Note: Has 'Produces' instances, but no response schema -- deleteOrder :: OrderIdText -- ^ "orderId" - ID of the order that needs to be deleted -> SwaggerPetstoreRequest DeleteOrder MimeNoContent res deleteOrder (OrderIdText orderId) = _mkRequest "DELETE" ["/store/order/",toPath orderId] data DeleteOrder -- | @application/xml@ instance Produces DeleteOrder MimeXML -- | @application/json@ instance Produces DeleteOrder MimeJSON -- *** getInventory -- | @GET \/store\/inventory@ -- -- Returns pet inventories by status -- -- Returns a map of status codes to quantities -- -- AuthMethod: 'AuthApiKeyApiKey' -- getInventory :: SwaggerPetstoreRequest GetInventory MimeNoContent ((Map.Map String Int)) getInventory = _mkRequest "GET" ["/store/inventory"] `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyApiKey) data GetInventory -- | @application/json@ instance Produces GetInventory MimeJSON -- *** getOrderById -- | @GET \/store\/order\/{order_id}@ -- -- Find purchase order by ID -- -- For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions -- getOrderById :: OrderId -- ^ "orderId" - ID of pet that needs to be fetched -> SwaggerPetstoreRequest GetOrderById MimeNoContent Order getOrderById (OrderId orderId) = _mkRequest "GET" ["/store/order/",toPath orderId] data GetOrderById -- | @application/xml@ instance Produces GetOrderById MimeXML -- | @application/json@ instance Produces GetOrderById MimeJSON -- *** placeOrder -- | @POST \/store\/order@ -- -- Place an order for a pet -- -- -- placeOrder :: (Consumes PlaceOrder contentType, MimeRender contentType Order) => contentType -- ^ request content-type ('MimeType') -> Order -- ^ "body" - order placed for purchasing the pet -> SwaggerPetstoreRequest PlaceOrder contentType Order placeOrder _ body = _mkRequest "POST" ["/store/order"] `setBodyParam` body data PlaceOrder -- | /Body Param/ "body" - order placed for purchasing the pet instance HasBodyParam PlaceOrder Order -- | @application/xml@ instance Produces PlaceOrder MimeXML -- | @application/json@ instance Produces PlaceOrder MimeJSON -- ** User -- *** createUser -- | @POST \/user@ -- -- Create user -- -- This can only be done by the logged in user. -- -- Note: Has 'Produces' instances, but no response schema -- createUser :: (Consumes CreateUser contentType, MimeRender contentType User) => contentType -- ^ request content-type ('MimeType') -> User -- ^ "body" - Created user object -> SwaggerPetstoreRequest CreateUser contentType res createUser _ body = _mkRequest "POST" ["/user"] `setBodyParam` body data CreateUser -- | /Body Param/ "body" - Created user object instance HasBodyParam CreateUser User -- | @application/xml@ instance Produces CreateUser MimeXML -- | @application/json@ instance Produces CreateUser MimeJSON -- *** createUsersWithArrayInput -- | @POST \/user\/createWithArray@ -- -- Creates list of users with given input array -- -- -- -- Note: Has 'Produces' instances, but no response schema -- createUsersWithArrayInput :: (Consumes CreateUsersWithArrayInput contentType, MimeRender contentType Body) => contentType -- ^ request content-type ('MimeType') -> Body -- ^ "body" - List of user object -> SwaggerPetstoreRequest CreateUsersWithArrayInput contentType res createUsersWithArrayInput _ body = _mkRequest "POST" ["/user/createWithArray"] `setBodyParam` body data CreateUsersWithArrayInput -- | /Body Param/ "body" - List of user object instance HasBodyParam CreateUsersWithArrayInput Body -- | @application/xml@ instance Produces CreateUsersWithArrayInput MimeXML -- | @application/json@ instance Produces CreateUsersWithArrayInput MimeJSON -- *** createUsersWithListInput -- | @POST \/user\/createWithList@ -- -- Creates list of users with given input array -- -- -- -- Note: Has 'Produces' instances, but no response schema -- createUsersWithListInput :: (Consumes CreateUsersWithListInput contentType, MimeRender contentType Body) => contentType -- ^ request content-type ('MimeType') -> Body -- ^ "body" - List of user object -> SwaggerPetstoreRequest CreateUsersWithListInput contentType res createUsersWithListInput _ body = _mkRequest "POST" ["/user/createWithList"] `setBodyParam` body data CreateUsersWithListInput -- | /Body Param/ "body" - List of user object instance HasBodyParam CreateUsersWithListInput Body -- | @application/xml@ instance Produces CreateUsersWithListInput MimeXML -- | @application/json@ instance Produces CreateUsersWithListInput MimeJSON -- *** deleteUser -- | @DELETE \/user\/{username}@ -- -- Delete user -- -- This can only be done by the logged in user. -- -- Note: Has 'Produces' instances, but no response schema -- deleteUser :: Username -- ^ "username" - The name that needs to be deleted -> SwaggerPetstoreRequest DeleteUser MimeNoContent res deleteUser (Username username) = _mkRequest "DELETE" ["/user/",toPath username] data DeleteUser -- | @application/xml@ instance Produces DeleteUser MimeXML -- | @application/json@ instance Produces DeleteUser MimeJSON -- *** getUserByName -- | @GET \/user\/{username}@ -- -- Get user by user name -- -- -- getUserByName :: Username -- ^ "username" - The name that needs to be fetched. Use user1 for testing. -> SwaggerPetstoreRequest GetUserByName MimeNoContent User getUserByName (Username username) = _mkRequest "GET" ["/user/",toPath username] data GetUserByName -- | @application/xml@ instance Produces GetUserByName MimeXML -- | @application/json@ instance Produces GetUserByName MimeJSON -- *** loginUser -- | @GET \/user\/login@ -- -- Logs user into the system -- -- -- loginUser :: Username -- ^ "username" - The user name for login -> Password -- ^ "password" - The password for login in clear text -> SwaggerPetstoreRequest LoginUser MimeNoContent Text loginUser (Username username) (Password password) = _mkRequest "GET" ["/user/login"] `setQuery` toQuery ("username", Just username) `setQuery` toQuery ("password", Just password) data LoginUser -- | @application/xml@ instance Produces LoginUser MimeXML -- | @application/json@ instance Produces LoginUser MimeJSON -- *** logoutUser -- | @GET \/user\/logout@ -- -- Logs out current logged in user session -- -- -- -- Note: Has 'Produces' instances, but no response schema -- logoutUser :: SwaggerPetstoreRequest LogoutUser MimeNoContent res logoutUser = _mkRequest "GET" ["/user/logout"] data LogoutUser -- | @application/xml@ instance Produces LogoutUser MimeXML -- | @application/json@ instance Produces LogoutUser MimeJSON -- *** updateUser -- | @PUT \/user\/{username}@ -- -- Updated user -- -- This can only be done by the logged in user. -- -- Note: Has 'Produces' instances, but no response schema -- updateUser :: (Consumes UpdateUser contentType, MimeRender contentType User) => contentType -- ^ request content-type ('MimeType') -> Username -- ^ "username" - name that need to be deleted -> User -- ^ "body" - Updated user object -> SwaggerPetstoreRequest UpdateUser contentType res updateUser _ (Username username) body = _mkRequest "PUT" ["/user/",toPath username] `setBodyParam` body data UpdateUser -- | /Body Param/ "body" - Updated user object instance HasBodyParam UpdateUser User -- | @application/xml@ instance Produces UpdateUser MimeXML -- | @application/json@ instance Produces UpdateUser MimeJSON -- * Parameter newtypes newtype AdditionalMetadata = AdditionalMetadata { unAdditionalMetadata :: Text } deriving (P.Eq, P.Show) newtype ApiKey = ApiKey { unApiKey :: Text } deriving (P.Eq, P.Show) newtype Body = Body { unBody :: [User] } deriving (P.Eq, P.Show, A.ToJSON) newtype Byte = Byte { unByte :: ByteArray } deriving (P.Eq, P.Show) newtype Callback = Callback { unCallback :: Text } deriving (P.Eq, P.Show) newtype EnumFormString = EnumFormString { unEnumFormString :: Text } deriving (P.Eq, P.Show) newtype EnumFormStringArray = EnumFormStringArray { unEnumFormStringArray :: [Text] } deriving (P.Eq, P.Show) newtype EnumHeaderString = EnumHeaderString { unEnumHeaderString :: Text } deriving (P.Eq, P.Show) newtype EnumHeaderStringArray = EnumHeaderStringArray { unEnumHeaderStringArray :: [Text] } deriving (P.Eq, P.Show) newtype EnumQueryDouble = EnumQueryDouble { unEnumQueryDouble :: Double } deriving (P.Eq, P.Show) newtype EnumQueryInteger = EnumQueryInteger { unEnumQueryInteger :: Int } deriving (P.Eq, P.Show) newtype EnumQueryString = EnumQueryString { unEnumQueryString :: Text } deriving (P.Eq, P.Show) newtype EnumQueryStringArray = EnumQueryStringArray { unEnumQueryStringArray :: [Text] } deriving (P.Eq, P.Show) newtype File = File { unFile :: FilePath } deriving (P.Eq, P.Show) newtype Int32 = Int32 { unInt32 :: Int } deriving (P.Eq, P.Show) newtype Int64 = Int64 { unInt64 :: Integer } deriving (P.Eq, P.Show) newtype Name2 = Name2 { unName2 :: Text } deriving (P.Eq, P.Show) newtype Number = Number { unNumber :: Double } deriving (P.Eq, P.Show) newtype OrderId = OrderId { unOrderId :: Integer } deriving (P.Eq, P.Show) newtype OrderIdText = OrderIdText { unOrderIdText :: Text } deriving (P.Eq, P.Show) newtype Param = Param { unParam :: Text } deriving (P.Eq, P.Show) newtype Param2 = Param2 { unParam2 :: Text } deriving (P.Eq, P.Show) newtype ParamBinary = ParamBinary { unParamBinary :: Binary } deriving (P.Eq, P.Show) newtype ParamDate = ParamDate { unParamDate :: Date } deriving (P.Eq, P.Show) newtype ParamDateTime = ParamDateTime { unParamDateTime :: DateTime } deriving (P.Eq, P.Show) newtype ParamDouble = ParamDouble { unParamDouble :: Double } deriving (P.Eq, P.Show) newtype ParamFloat = ParamFloat { unParamFloat :: Float } deriving (P.Eq, P.Show) newtype ParamInteger = ParamInteger { unParamInteger :: Int } deriving (P.Eq, P.Show) newtype ParamString = ParamString { unParamString :: Text } deriving (P.Eq, P.Show) newtype Password = Password { unPassword :: Text } deriving (P.Eq, P.Show) newtype PatternWithoutDelimiter = PatternWithoutDelimiter { unPatternWithoutDelimiter :: Text } deriving (P.Eq, P.Show) newtype PetId = PetId { unPetId :: Integer } deriving (P.Eq, P.Show) newtype Status = Status { unStatus :: [Text] } deriving (P.Eq, P.Show) newtype StatusText = StatusText { unStatusText :: Text } deriving (P.Eq, P.Show) newtype Tags = Tags { unTags :: [Text] } deriving (P.Eq, P.Show) newtype Username = Username { unUsername :: Text } deriving (P.Eq, P.Show) -- * Auth Methods -- ** AuthApiKeyApiKey data AuthApiKeyApiKey = AuthApiKeyApiKey Text -- ^ secret deriving (P.Eq, P.Show, P.Typeable) instance AuthMethod AuthApiKeyApiKey where applyAuthMethod _ a@(AuthApiKeyApiKey secret) req = P.pure $ if (P.typeOf a `P.elem` rAuthTypes req) then req `setHeader` toHeader ("api_key", secret) & L.over rAuthTypesL (P.filter (/= P.typeOf a)) else req -- ** AuthApiKeyApiKeyQuery data AuthApiKeyApiKeyQuery = AuthApiKeyApiKeyQuery Text -- ^ secret deriving (P.Eq, P.Show, P.Typeable) instance AuthMethod AuthApiKeyApiKeyQuery where applyAuthMethod _ a@(AuthApiKeyApiKeyQuery secret) req = P.pure $ if (P.typeOf a `P.elem` rAuthTypes req) then req `setQuery` toQuery ("api_key_query", Just secret) & L.over rAuthTypesL (P.filter (/= P.typeOf a)) else req -- ** AuthBasicHttpBasicTest data AuthBasicHttpBasicTest = AuthBasicHttpBasicTest B.ByteString B.ByteString -- ^ username password deriving (P.Eq, P.Show, P.Typeable) instance AuthMethod AuthBasicHttpBasicTest where applyAuthMethod _ a@(AuthBasicHttpBasicTest user pw) req = P.pure $ if (P.typeOf a `P.elem` rAuthTypes req) then req `setHeader` toHeader ("Authorization", T.decodeUtf8 cred) & L.over rAuthTypesL (P.filter (/= P.typeOf a)) else req where cred = BC.append "Basic " (B64.encode $ BC.concat [ user, ":", pw ]) -- ** AuthOAuthPetstoreAuth data AuthOAuthPetstoreAuth = AuthOAuthPetstoreAuth Text -- ^ secret deriving (P.Eq, P.Show, P.Typeable) instance AuthMethod AuthOAuthPetstoreAuth where applyAuthMethod _ a@(AuthOAuthPetstoreAuth secret) req = P.pure $ if (P.typeOf a `P.elem` rAuthTypes req) then req `setHeader` toHeader ("Authorization", "Bearer " <> secret) & L.over rAuthTypesL (P.filter (/= P.typeOf a)) else req -- * Custom Mime Types -- ** MimeJsonCharsetutf8 data MimeJsonCharsetutf8 = MimeJsonCharsetutf8 deriving (P.Typeable) -- | @application/json; charset=utf-8@ instance MimeType MimeJsonCharsetutf8 where mimeType _ = Just $ P.fromString "application/json; charset=utf-8" instance A.ToJSON a => MimeRender MimeJsonCharsetutf8 a where mimeRender _ = A.encode instance A.FromJSON a => MimeUnrender MimeJsonCharsetutf8 a where mimeUnrender _ = A.eitherDecode -- instance MimeRender MimeJsonCharsetutf8 T.Text where mimeRender _ = undefined -- instance MimeUnrender MimeJsonCharsetutf8 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