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

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.PagerDuty

Contents

Synopsis

Transformer

type PagerDuty s = PagerDutyT s IO #

A convenient alias for PagerDutyT IO.

data PagerDutyT s m a #

Instances

Monad m => MonadError Error (PagerDutyT s m) # 

Methods

throwError :: Error -> PagerDutyT s m a #

catchError :: PagerDutyT s m a -> (Error -> PagerDutyT s m a) -> PagerDutyT s m a #

MonadBase b m => MonadBase b (PagerDutyT s m) # 

Methods

liftBase :: b α -> PagerDutyT s m α #

MonadBaseControl b m => MonadBaseControl b (PagerDutyT s m) # 

Associated Types

type StM (PagerDutyT s m :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (PagerDutyT s m) b -> b a) -> PagerDutyT s m a #

restoreM :: StM (PagerDutyT s m) a -> PagerDutyT s m a #

MFunctor (PagerDutyT s) # 

Methods

hoist :: Monad m => (forall a. m a -> n a) -> PagerDutyT s m b -> PagerDutyT s n b #

MMonad (PagerDutyT s) # 

Methods

embed :: Monad n => (forall a. m a -> PagerDutyT s n a) -> PagerDutyT s m b -> PagerDutyT s n b #

MonadTrans (PagerDutyT s) # 

Methods

lift :: Monad m => m a -> PagerDutyT s m a #

MonadTransControl (PagerDutyT s) # 

Associated Types

type StT (PagerDutyT s :: (* -> *) -> * -> *) a :: * #

Methods

liftWith :: Monad m => (Run (PagerDutyT s) -> m a) -> PagerDutyT s m a #

restoreT :: Monad m => m (StT (PagerDutyT s) a) -> PagerDutyT s m a #

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

Methods

ask :: PagerDutyT s m (Env s) #

local :: (Env s -> Env s) -> PagerDutyT s m a -> PagerDutyT s m a #

reader :: (Env s -> a) -> PagerDutyT s m a #

Monad m => Monad (PagerDutyT s m) # 

Methods

(>>=) :: PagerDutyT s m a -> (a -> PagerDutyT s m b) -> PagerDutyT s m b #

(>>) :: PagerDutyT s m a -> PagerDutyT s m b -> PagerDutyT s m b #

return :: a -> PagerDutyT s m a #

fail :: String -> PagerDutyT s m a #

Functor m => Functor (PagerDutyT s m) # 

Methods

fmap :: (a -> b) -> PagerDutyT s m a -> PagerDutyT s m b #

(<$) :: a -> PagerDutyT s m b -> PagerDutyT s m a #

Monad m => Applicative (PagerDutyT s m) # 

Methods

pure :: a -> PagerDutyT s m a #

(<*>) :: PagerDutyT s m (a -> b) -> PagerDutyT s m a -> PagerDutyT s m b #

(*>) :: PagerDutyT s m a -> PagerDutyT s m b -> PagerDutyT s m b #

(<*) :: PagerDutyT s m a -> PagerDutyT s m b -> PagerDutyT s m a #

MonadIO m => MonadIO (PagerDutyT s m) # 

Methods

liftIO :: IO a -> PagerDutyT s m a #

MonadThrow m => MonadThrow (PagerDutyT s m) # 

Methods

throwM :: Exception e => e -> PagerDutyT s m a #

MonadCatch m => MonadCatch (PagerDutyT s m) # 

Methods

catch :: Exception e => PagerDutyT s m a -> (e -> PagerDutyT s m a) -> PagerDutyT s m a #

type StT (PagerDutyT s) a # 
type StT (PagerDutyT s) a = StT (ExceptT Error) (StT (ReaderT * (Env s)) a)
type StM (PagerDutyT s m) a # 
type StM (PagerDutyT s m) a = ComposeSt (PagerDutyT s) m a

Running

runPagerDutyT :: PagerDutyT s m a -> Env s -> m (Either Error a) #

Integration events

REST requests

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

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

Lifting errors

Configuration

Environment

data Env s #

The environment containing the parameters required to make PagerDuty requests.

Instances

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

Methods

ask :: PagerDutyT s m (Env s) #

local :: (Env s -> Env s) -> PagerDutyT s m a -> PagerDutyT s m a #

reader :: (Env s -> a) -> PagerDutyT s m a #

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

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

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

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

Logging

data Logger #

The log level and associated logger function.

Constructors

None 
Debug (Text -> IO ()) 

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

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

Types

Requests

class Paginate a #

Exists primarily to obtain a constraint for the paginate function.

Errors

data Error #

Instances

Messages

class HasMessage s a | s -> a where #

Minimal complete definition

message

Methods

message :: Lens' s a #

A short human-readable message describing the error.

Fields

class HasErrors s a | s -> a where #

Minimal complete definition

errors

Methods

errors :: Lens' s a #

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

Integration

REST

data Code #

Instances

code :: Lens' RESTError Code #

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

See: description

Authentication

data Security #

Constructors

Basic 
Token 

data Auth a where #

Instances

Eq (Auth a) # 

Methods

(==) :: Auth a -> Auth a -> Bool #

(/=) :: Auth a -> Auth a -> Bool #

Show (Auth a) # 

Methods

showsPrec :: Int -> Auth a -> ShowS #

show :: Auth a -> String #

showList :: [Auth a] -> ShowS #

Keys

mkKey :: Text -> Key a #

Aliases

type ServiceKey = Key "service" #

type IncidentKey = Key "incident" #

Identifiers

data Id a #

Instances

Eq (Id a) # 

Methods

(==) :: Id a -> Id a -> Bool #

(/=) :: Id a -> Id a -> Bool #

Show (Id a) # 

Methods

showsPrec :: Int -> Id a -> ShowS #

show :: Id a -> String #

showList :: [Id a] -> ShowS #

IsString (Id a) # 

Methods

fromString :: String -> Id a #

ToJSON (Id a) # 

Methods

toJSON :: Id a -> Value #

toEncoding :: Id a -> Encoding #

toJSONList :: [Id a] -> Value #

toEncodingList :: [Id a] -> Encoding #

FromJSON (Id a) # 

Methods

parseJSON :: Value -> Parser (Id a) #

parseJSONList :: Value -> Parser [Id a] #

ToByteString (Id a) # 

Methods

builder :: Id a -> Builder #

QueryValueLike (Id a) # 

mkId :: Text -> Id a #

Aliases

type AlertId = Id "alert" #

type ContactId = Id "contact" #

type EmailFilterId = Id "email-filter" #

type EscalationPolicyId = Id "escalation-policy" #

type EscalationRuleId = Id "escalation-rule" #

type IncidentId = Id "incident" #

type LogEntryId = Id "log-entry" #

type NoteId = Id "note" #

type NotificationRuleId = Id "notification-rule" #

type OverrideId = Id "schedule-override" #

type RequesterId = Id "requester" #

type ScheduleId = Id "schedule" #

type ServiceId = Id "service" #

type UserId = Id "user" #

type VendorId = Id "vendor" #

type WebhookId = Id "webhook" #

type WindowId = Id "maintenance-window" #

SubDomain

Address

Miscellaneous