agent-push-kit-0.1.0: lib/AgentPushKit/API/Preferences.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.Preferences
-}
{-# 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.Preferences 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
-- ** Preferences
-- *** listPreferences
-- | @GET \/organizations\/{organizationId}\/preferences@
--
-- List service defaults and exact-type overrides
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
listPreferences
:: OrganizationId -- ^ "organizationId"
-> AgentPushKitRequest ListPreferences MimeNoContent [ServicePreference] MimeJSON
listPreferences (OrganizationId organizationId) =
_mkRequest "GET" ["/organizations/",toPath organizationId,"/preferences"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
data ListPreferences
-- | @application/json@
instance Produces ListPreferences MimeJSON
-- *** removeTypePreference
-- | @DELETE \/services\/{serviceId}\/types\/{type}\/preference@
--
-- Remove an exact-type override so it inherits the service default
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
removeTypePreference
:: ServiceId -- ^ "serviceId"
-> ParamType -- ^ "_type"
-> AgentPushKitRequest RemoveTypePreference MimeNoContent InheritedResponse MimeJSON
removeTypePreference (ServiceId serviceId) (ParamType _type) =
_mkRequest "DELETE" ["/services/",toPath serviceId,"/types/",toPath _type,"/preference"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
data RemoveTypePreference
-- | @application/json@
instance Produces RemoveTypePreference MimeJSON
-- *** setServicePreference
-- | @PUT \/services\/{serviceId}\/preference@
--
-- Enable or disable pushes for a service by default
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
setServicePreference
:: (Consumes SetServicePreference MimeJSON, MimeRender MimeJSON SetEnabledInput)
=> SetEnabledInput -- ^ "setEnabledInput"
-> ServiceId -- ^ "serviceId"
-> AgentPushKitRequest SetServicePreference MimeJSON PreferenceRecord MimeJSON
setServicePreference setEnabledInput (ServiceId serviceId) =
_mkRequest "PUT" ["/services/",toPath serviceId,"/preference"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
`setBodyParam` setEnabledInput
data SetServicePreference
instance HasBodyParam SetServicePreference SetEnabledInput
-- | @application/json@
instance Consumes SetServicePreference MimeJSON
-- | @application/json@
instance Produces SetServicePreference MimeJSON
-- *** setTypePreference
-- | @PUT \/services\/{serviceId}\/types\/{type}\/preference@
--
-- Override push delivery for one exact notification type
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
setTypePreference
:: (Consumes SetTypePreference MimeJSON, MimeRender MimeJSON SetEnabledInput)
=> SetEnabledInput -- ^ "setEnabledInput"
-> ServiceId -- ^ "serviceId"
-> ParamType -- ^ "_type"
-> AgentPushKitRequest SetTypePreference MimeJSON PreferenceRecord MimeJSON
setTypePreference setEnabledInput (ServiceId serviceId) (ParamType _type) =
_mkRequest "PUT" ["/services/",toPath serviceId,"/types/",toPath _type,"/preference"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
`setBodyParam` setEnabledInput
data SetTypePreference
instance HasBodyParam SetTypePreference SetEnabledInput
-- | @application/json@
instance Consumes SetTypePreference MimeJSON
-- | @application/json@
instance Produces SetTypePreference MimeJSON