pagerduty-0.0.0: Client library for PagerDuty Integration and REST APIs.

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.PagerDuty

Contents

Synopsis

Transformer

type PagerDuty s = PagerDutyT s IO Source

A convenient alias for PagerDutyT IO.

data PagerDutyT s m a Source

Instances

Monad m => MonadError Error (PagerDutyT s m) 
MonadBaseControl b m => MonadBaseControl b (PagerDutyT s m) 
MonadBase b m => MonadBase b (PagerDutyT s m) 
MonadTrans (PagerDutyT s) 
MonadTransControl (PagerDutyT s) 
MMonad (PagerDutyT s) 
MFunctor (PagerDutyT s) 
Monad m => MonadReader (Env s) (PagerDutyT s m) 
Monad m => Monad (PagerDutyT s m) 
Functor m => Functor (PagerDutyT s m) 
(Monad m, Functor m) => Applicative (PagerDutyT s m) 
MonadIO m => MonadIO (PagerDutyT s m) 
MonadThrow m => MonadThrow (PagerDutyT s m) 
MonadCatch m => MonadCatch (PagerDutyT s m) 
data StT (PagerDutyT s) = StTPDT {} 
data StM (PagerDutyT s m) = StMPDT {} 

Running

Configuration

Environment

data Env s Source

The environment containing the parameters required to make PagerDuty requests.

Instances

Monad m => MonadReader (Env s) (PagerDutyT s m) 

envDomain :: forall s. Lens' (Env s) SubDomain Source

envAuth :: forall s s'. Lens (Env s) (Env s') (Auth s) (Auth s') Source

envManager :: forall s. Lens' (Env s) Manager Source

envLogger :: forall s. Lens' (Env s) Logger Source

scoped :: MonadReader (Env s) m => (Env s -> m a) -> m a Source

Logging

data Logger Source

The log level and associated logger function.

Constructors

None 
Debug (Text -> IO ()) 

debug :: MonadIO m => Logger -> Text -> m () Source

Log a message using the debug logger, or if none is specified noop.

Integration events

submit :: (MonadIO m, MonadReader (Env s) m, MonadError Error m) => Event -> m Response Source

submitCatch :: (MonadIO m, MonadReader (Env s) m) => Event -> m (Either Error Response) Source

REST requests

send :: (MonadIO m, MonadReader (Env s) m, MonadError Error m, FromJSON b) => Request a s b -> m b Source

sendCatch :: (MonadIO m, MonadReader (Env s) m, FromJSON b) => Request a s b -> m (Either Error b) Source

paginate :: (MonadIO m, MonadReader (Env s) m, MonadError Error m, Paginate a, FromJSON b) => Request a s b -> Source m b Source

paginateCatch :: (MonadIO m, MonadReader (Env s) m, Paginate a, FromJSON b) => Request a s b -> Source m (Either Error b) Source

Errors

data Error Source

Instances

Eq Error 
Show Error 
FromJSON Error 
Monad m => MonadError Error (PagerDutyT s m) 

_Internal :: Prism' Error Text Source

Integration

REST

data RESTError Source

Instances

code :: Lens' RESTError Code Source

In the case of an error, the PagerDuty error code can give further details on the nature of the error.

See: description

Code

newtype Code Source

Constructors

Code Integer 

Instances

Eq Code 
Show Code 
ToJSON Code 
FromJSON Code 

Fields

message :: HasMessage s a => Lens' s a Source

A short human-readable message describing the error.

errors :: HasErrors s a => Lens' s a Source

A list of human-readable reasons for the error. These values, and even their format, are subject to change.

Lifting

hoistError :: MonadError Error m => Either Error a -> m a Source