agent-push-kit-0.1.0: lib/AgentPushKit/API/Authentication.hs
{-
Agent Push Kit API
The complete Agent Push Kit REST API. Application event ingestion uses an organization key beginning with `apk_`. Authenticated user operations accept either an Agent Push Kit login JWT or an agent access token beginning with `apt_`.
OpenAPI Version: 3.1.0
Agent Push Kit API API version: 0.1.0
Generated by OpenAPI Generator (https://openapi-generator.tech)
-}
{-|
Module : AgentPushKit.API.Authentication
-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MonoLocalBinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}
module AgentPushKit.API.Authentication where
import AgentPushKit.Core
import AgentPushKit.MimeTypes
import AgentPushKit.Model as M
import qualified Data.Aeson as A
import qualified Data.ByteString as B
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 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.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
-- ** Authentication
-- *** completePasswordReset
-- | @POST \/auth\/password-reset\/complete@
--
-- Choose a new password and log in
--
completePasswordReset
:: (Consumes CompletePasswordReset MimeJSON, MimeRender MimeJSON PasswordResetCompleteInput)
=> PasswordResetCompleteInput -- ^ "passwordResetCompleteInput"
-> AgentPushKitRequest CompletePasswordReset MimeJSON AuthResponse MimeJSON
completePasswordReset passwordResetCompleteInput =
_mkRequest "POST" ["/auth/password-reset/complete"]
`setBodyParam` passwordResetCompleteInput
data CompletePasswordReset
instance HasBodyParam CompletePasswordReset PasswordResetCompleteInput
-- | @application/json@
instance Consumes CompletePasswordReset MimeJSON
-- | @application/json@
instance Produces CompletePasswordReset MimeJSON
-- *** loginWithApple
-- | @POST \/auth\/apple@
--
-- Log in or attach an account using a Sign in with Apple identity token
--
loginWithApple
:: (Consumes LoginWithApple MimeJSON, MimeRender MimeJSON ProviderLoginInput)
=> ProviderLoginInput -- ^ "providerLoginInput"
-> AgentPushKitRequest LoginWithApple MimeJSON AuthResponse MimeJSON
loginWithApple providerLoginInput =
_mkRequest "POST" ["/auth/apple"]
`setBodyParam` providerLoginInput
data LoginWithApple
instance HasBodyParam LoginWithApple ProviderLoginInput
-- | @application/json@
instance Consumes LoginWithApple MimeJSON
-- | @application/json@
instance Produces LoginWithApple MimeJSON
-- *** loginWithGoogle
-- | @POST \/auth\/google@
--
-- Log in or attach an account using a verified Google ID token
--
loginWithGoogle
:: (Consumes LoginWithGoogle MimeJSON, MimeRender MimeJSON ProviderLoginInput)
=> ProviderLoginInput -- ^ "providerLoginInput"
-> AgentPushKitRequest LoginWithGoogle MimeJSON AuthResponse MimeJSON
loginWithGoogle providerLoginInput =
_mkRequest "POST" ["/auth/google"]
`setBodyParam` providerLoginInput
data LoginWithGoogle
instance HasBodyParam LoginWithGoogle ProviderLoginInput
-- | @application/json@
instance Consumes LoginWithGoogle MimeJSON
-- | @application/json@
instance Produces LoginWithGoogle MimeJSON
-- *** loginWithPassword
-- | @POST \/auth\/login@
--
-- Log in with email and password
--
loginWithPassword
:: (Consumes LoginWithPassword MimeJSON, MimeRender MimeJSON PasswordLoginInput)
=> PasswordLoginInput -- ^ "passwordLoginInput"
-> AgentPushKitRequest LoginWithPassword MimeJSON AuthResponse MimeJSON
loginWithPassword passwordLoginInput =
_mkRequest "POST" ["/auth/login"]
`setBodyParam` passwordLoginInput
data LoginWithPassword
instance HasBodyParam LoginWithPassword PasswordLoginInput
-- | @application/json@
instance Consumes LoginWithPassword MimeJSON
-- | @application/json@
instance Produces LoginWithPassword MimeJSON
-- *** register
-- | @POST \/auth\/register@
--
-- Create a user and first customer account
--
register
:: (Consumes Register MimeJSON, MimeRender MimeJSON RegisterInput)
=> RegisterInput -- ^ "registerInput"
-> AgentPushKitRequest Register MimeJSON AuthResponse MimeJSON
register registerInput =
_mkRequest "POST" ["/auth/register"]
`setBodyParam` registerInput
data Register
instance HasBodyParam Register RegisterInput
-- | @application/json@
instance Consumes Register MimeJSON
-- | @application/json@
instance Produces Register MimeJSON
-- *** requestPasswordReset
-- | @POST \/auth\/password-reset\/request@
--
-- Email a single-use password reset token
--
requestPasswordReset
:: (Consumes RequestPasswordReset MimeJSON, MimeRender MimeJSON PasswordResetRequestInput)
=> PasswordResetRequestInput -- ^ "passwordResetRequestInput"
-> AgentPushKitRequest RequestPasswordReset MimeJSON AcceptedResponse MimeJSON
requestPasswordReset passwordResetRequestInput =
_mkRequest "POST" ["/auth/password-reset/request"]
`setBodyParam` passwordResetRequestInput
data RequestPasswordReset
instance HasBodyParam RequestPasswordReset PasswordResetRequestInput
-- | @application/json@
instance Consumes RequestPasswordReset MimeJSON
-- | @application/json@
instance Produces RequestPasswordReset MimeJSON