packages feed

agent-push-kit-0.1.0: lib/AgentPushKit/API/AgentTokens.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.AgentTokens
-}

{-# 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.AgentTokens 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


-- ** AgentTokens

-- *** callMcp

-- | @POST \/mcp@
-- 
-- Connect through stateless MCP Streamable HTTP
-- 
-- This endpoint accepts only an `apt_` agent access token.
-- 
-- AuthMethod: 'AuthBasicAgentToken'
-- 
callMcp
  :: (Consumes CallMcp MimeJSON, MimeRender MimeJSON RequestBody)
  => RequestBody -- ^ "requestBody"
  -> AgentPushKitRequest CallMcp MimeJSON NoContent MimeNoContent
callMcp requestBody =
  _mkRequest "POST" ["/mcp"]
    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicAgentToken)
    `setBodyParam` requestBody

data CallMcp 
instance HasBodyParam CallMcp RequestBody 

-- | @application/json@
instance Consumes CallMcp MimeJSON

instance Produces CallMcp MimeNoContent


-- *** createAgentToken

-- | @POST \/agent-tokens@
-- 
-- Create a named non-expiring agent token
-- 
-- The raw `apt_` token is shown once. Store it before dismissing the response.
-- 
-- AuthMethod: 'AuthBasicUserOrAgent'
-- 
createAgentToken
  :: (Consumes CreateAgentToken MimeJSON, MimeRender MimeJSON CreateAgentTokenInput)
  => CreateAgentTokenInput -- ^ "createAgentTokenInput"
  -> AgentPushKitRequest CreateAgentToken MimeJSON AgentTokenCreated MimeJSON
createAgentToken createAgentTokenInput =
  _mkRequest "POST" ["/agent-tokens"]
    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)
    `setBodyParam` createAgentTokenInput

data CreateAgentToken 
instance HasBodyParam CreateAgentToken CreateAgentTokenInput 

-- | @application/json@
instance Consumes CreateAgentToken MimeJSON

-- | @application/json@
instance Produces CreateAgentToken MimeJSON


-- *** listAgentTokens

-- | @GET \/agent-tokens@
-- 
-- List agent access tokens without their secrets
-- 
-- AuthMethod: 'AuthBasicUserOrAgent'
-- 
listAgentTokens
  :: AgentPushKitRequest ListAgentTokens MimeNoContent [AgentToken] MimeJSON
listAgentTokens =
  _mkRequest "GET" ["/agent-tokens"]
    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)

data ListAgentTokens  
-- | @application/json@
instance Produces ListAgentTokens MimeJSON


-- *** revokeAgentToken

-- | @DELETE \/agent-tokens\/{tokenId}@
-- 
-- Revoke one of the current user's agent tokens
-- 
-- AuthMethod: 'AuthBasicUserOrAgent'
-- 
revokeAgentToken
  :: TokenId -- ^ "tokenId"
  -> AgentPushKitRequest RevokeAgentToken MimeNoContent RevokedResponse MimeJSON
revokeAgentToken (TokenId tokenId) =
  _mkRequest "DELETE" ["/agent-tokens/",toPath tokenId]
    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicUserOrAgent)

data RevokeAgentToken  
-- | @application/json@
instance Produces RevokeAgentToken MimeJSON