agent-push-kit-0.1.0: lib/AgentPushKit/API/Devices.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.Devices
-}
{-# 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.Devices 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
-- ** Devices
-- *** getWebPushConfiguration
-- | @GET \/web-push\/configuration@
--
-- Get browser push availability and its public VAPID key
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
getWebPushConfiguration
:: AgentPushKitRequest GetWebPushConfiguration MimeNoContent WebPushConfiguration MimeJSON
getWebPushConfiguration =
_mkRequest "GET" ["/web-push/configuration"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
data GetWebPushConfiguration
-- | @application/json@
instance Produces GetWebPushConfiguration MimeJSON
-- *** registerDevice
-- | @POST \/devices@
--
-- Register or refresh an APNs device
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
registerDevice
:: (Consumes RegisterDevice MimeJSON, MimeRender MimeJSON RegisterDeviceInput)
=> RegisterDeviceInput -- ^ "registerDeviceInput"
-> AgentPushKitRequest RegisterDevice MimeJSON Device MimeJSON
registerDevice registerDeviceInput =
_mkRequest "POST" ["/devices"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
`setBodyParam` registerDeviceInput
data RegisterDevice
instance HasBodyParam RegisterDevice RegisterDeviceInput
-- | @application/json@
instance Consumes RegisterDevice MimeJSON
-- | @application/json@
instance Produces RegisterDevice MimeJSON
-- *** registerWebPushSubscription
-- | @POST \/web-push\/subscriptions@
--
-- Register or refresh a browser push subscription
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
registerWebPushSubscription
:: (Consumes RegisterWebPushSubscription MimeJSON, MimeRender MimeJSON RegisterWebPushSubscriptionInput)
=> RegisterWebPushSubscriptionInput -- ^ "registerWebPushSubscriptionInput"
-> AgentPushKitRequest RegisterWebPushSubscription MimeJSON WebPushSubscription MimeJSON
registerWebPushSubscription registerWebPushSubscriptionInput =
_mkRequest "POST" ["/web-push/subscriptions"]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
`setBodyParam` registerWebPushSubscriptionInput
data RegisterWebPushSubscription
instance HasBodyParam RegisterWebPushSubscription RegisterWebPushSubscriptionInput
-- | @application/json@
instance Consumes RegisterWebPushSubscription MimeJSON
-- | @application/json@
instance Produces RegisterWebPushSubscription MimeJSON
-- *** removeDevice
-- | @DELETE \/devices\/{installationId}@
--
-- Disable push delivery to one installation
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
removeDevice
:: InstallationId -- ^ "installationId"
-> AgentPushKitRequest RemoveDevice MimeNoContent DisabledResponse MimeJSON
removeDevice (InstallationId installationId) =
_mkRequest "DELETE" ["/devices/",toPath installationId]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
data RemoveDevice
-- | @application/json@
instance Produces RemoveDevice MimeJSON
-- *** removeWebPushSubscription
-- | @DELETE \/web-push\/subscriptions\/{subscriptionId}@
--
-- Disable a browser push subscription
--
-- AuthMethod: 'AuthBasicUserOrAgent'
--
removeWebPushSubscription
:: SubscriptionId -- ^ "subscriptionId"
-> AgentPushKitRequest RemoveWebPushSubscription MimeNoContent DisabledResponse MimeJSON
removeWebPushSubscription (SubscriptionId subscriptionId) =
_mkRequest "DELETE" ["/web-push/subscriptions/",toPath subscriptionId]
`_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
data RemoveWebPushSubscription
-- | @application/json@
instance Produces RemoveWebPushSubscription MimeJSON