{-#LANGUAGE MultiParamTypeClasses #-} {-#LANGUAGE OverloadedStrings #-} ------------------------------------------------------------------------------- -- | -- Module : Twilio.UsageTriggers -- Copyright : (C) 2017- Mark Andrus Roberts -- License : BSD-style (see the file LICENSE) -- Maintainer : Mark Andrus Roberts -- Stability : provisional ------------------------------------------------------------------------------- module Twilio.UsageTriggers ( -- * Resource UsageTriggers(..) , Twilio.UsageTriggers.get ) where import Control.Applicative import Control.Monad.Catch import Data.Aeson import Data.Maybe import Control.Monad.Twilio import Twilio.Internal.Request import Twilio.Internal.Resource as Resource import Twilio.Types import Twilio.UsageTrigger {- Resource -} data UsageTriggers = UsageTriggers { usageTriggersPagingInformation :: PagingInformation , usageTriggerList :: [UsageTrigger] } deriving (Show, Eq) instance List UsageTriggers UsageTrigger where getListWrapper = wrap (UsageTriggers . fromJust) getList = usageTriggerList getPlural = Const "usage_triggers" instance FromJSON UsageTriggers where parseJSON = parseJSONToList instance Get0 UsageTriggers where get0 = request parseJSONFromResponse =<< makeTwilioRequest "/Usage/Triggers.json" -- | Get 'UsageTriggers'. get :: MonadThrow m => TwilioT m UsageTriggers get = Resource.get