git.iko.soy/typeable/pagerduty
on 90b3dba help sign in
37 files changed+416−586
since splitsnapshots
unifiedsplit
.gitignore−1 .travis.yml−30 Makefile+20 README.md−14 pagerduty.cabal+21−32 script/generate-pages+25 script/travis-lifecycle-before_install−11 script/travis-lifecycle-install−13 script/travis-lifecycle-script−9 script/travis-timeout−15 script/upload-documentation+37 src/Control/Monad/Trans/PagerDuty.hs+31−28 src/Network/PagerDuty/Integration.hs+6−12 src/Network/PagerDuty/Internal/IO.hs+6−7 src/Network/PagerDuty/Internal/Options.hs+4−4 src/Network/PagerDuty/Internal/Query.hs+12−14 src/Network/PagerDuty/Internal/TH.hs+6−6 src/Network/PagerDuty/Internal/Types.hs+31−86 src/Network/PagerDuty/REST.hs+26−17 src/Network/PagerDuty/REST/Alerts.hs+7−7 src/Network/PagerDuty/REST/EscalationPolicies.hs+14−14 src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs+10−10 src/Network/PagerDuty/REST/Incidents.hs+24−20 src/Network/PagerDuty/REST/Incidents/Notes.hs+12−12 src/Network/PagerDuty/REST/LogEntries.hs+7−6 src/Network/PagerDuty/REST/MaintenanceWindows.hs+10−10 src/Network/PagerDuty/REST/Reports.hs+11−11 src/Network/PagerDuty/REST/Schedules.hs+14−14 src/Network/PagerDuty/REST/Schedules/Overrides.hs+12−12 src/Network/PagerDuty/REST/Services.hs+16−16 src/Network/PagerDuty/REST/Services/EmailFilters.hs+14−14 src/Network/PagerDuty/REST/Users.hs+17−17 src/Network/PagerDuty/REST/Users/ContactMethods.hs+10−10 src/Network/PagerDuty/REST/Users/NotificationRules.hs+10−10 src/Network/PagerDuty/REST/Webhooks.hs+3−4 src/Network/PagerDuty/Types.hs−93 stack.yaml−7
.gitignore−1
@@ -9,7 +9,6 @@
99cabal.sandbox.config
1010
1111# Dirs
12−.stack-work
1312cabal-dev
1413bin
1514dist
.travis.ymldeleted−30
@@ -1,30 +0,0 @@
1−sudo: false
2−
3−cache:
4− apt: true
5− directories:
6− - ~/.stack
7−
8−branches:
9− only:
10− - master
11− - develop
12−
13−before_install:
14− - export PATH=/opt/ghc/$GHCVER/bin:$PATH
15− - export PATH=~/.local/bin:$PATH
16− - ./script/travis-lifecycle-before_install
17−
18−install:
19− - ./script/travis-lifecycle-install
20−
21−script:
22− - ./script/travis-lifecycle-script
23−
24−matrix:
25− fast_finish: true
26− include:
27− - env: GHCVER=8.0.1
28− addons: { apt: { packages: [ghc-8.0.1], sources: [hvr-ghc] } }
29− - env: GHCVER=7.10.3
30− addons: { apt: { packages: [ghc-7.10.3], sources: [hvr-ghc] } }
Makefilenew file+20
@@ -0,0 +1,20 @@
1+FLAGS := -j --disable-documentation --disable-library-coverage
2+
3+build:
4+ cabal build $(addprefix -,$(findstring j,$(MAKEFLAGS)))
5+
6+all:
7+ make clean; make install && make build
8+
9+install: cabal.sandbox.config
10+ cabal install $(FLAGS) --only-dependencies
11+
12+clean:
13+ cabal clean
14+ rm -rf cabal.sandbox.config .cabal-sandbox
15+
16+doc:
17+ cabal haddock
18+
19+cabal.sandbox.config:
20+ cabal sandbox init
README.md−14
@@ -1,14 +0,0 @@
1−# PagerDuty
2−
3−[![Build Status](https://travis-ci.org/brendanhay/amazonka.svg?branch=develop)](https://travis-ci.org/brendanhay/pagerduty)
4−
5−* [Contribute](#contribute)
6−* [Licence](#licence)
7−
8−## Contribute
9−
10−For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/pagerduty/issues).
11−
12−## Licence
13−
14−PagerDuty is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
pagerduty.cabal+21−32
@@ -1,32 +1,23 @@
11name: pagerduty
2−version: 0.0.8
3−synopsis: Client library for PagerDuty Integration and REST APIs.
2+version: 0.0.0
3+synopsis: Pager Duty API Client
44homepage: http://github.com/brendanhay/pagerduty
55license: OtherLicense
66license-file: LICENSE
77author: Brendan Hay
88maintainer: Brendan Hay <brendan.g.hay@gmail.com>
9−copyright: Copyright (c) 2013-2015 Brendan Hay, 2014 Kim Altintop
10−category: Network, PagerDuty, Monitoring
9+copyright: Copyright (c) 2013-2014 Brendan Hay, 2014 Kim Altintop
10+category: Network, Monitoring, Alerting
1111build-type: Simple
1212cabal-version: >= 1.10
1313
1414description:
15− PagerDuty is an alerting system for IT professionals. PagerDuty connects
16− with a variety of systems (including monitoring tools and ticketing
17− systems) and dispatches alerts via automated phone call, SMS and email.
18−
19− This library implements the full PagerDuty Integration and REST APIs which
20− are documented here:
15+ Client library for the the PagerDuty REST APIs documented here:
2116 .
2217 * Integration API - <http://developer.pagerduty.com/documentation/integration>
23− .
2418 * REST API - <http://developer.pagerduty.com/documentation/rest>
2519 .
26− /Warning:/ This is an experimental preview release which is still under
27− heavy development and not intended for public consumption, caveat emptor!
28− .
29− /Note:/ An alternative source for Haddock documentation can be found <http://brendanhay.nz/pagerduty here>.
20+ /Warning:/ This is a /highly/ experimental preview release, caveat emptor!
3021
3122extra-source-files:
3223 README.md
@@ -68,30 +59,28 @@ library
6859 , Network.PagerDuty.Internal.Query
6960 , Network.PagerDuty.Internal.TH
7061 , Network.PagerDuty.Internal.Types
71− , Network.PagerDuty.Types
7262
7363 build-depends:
74− aeson >= 2.0
75− , base >= 4.7 && < 5
76− , bifunctors >= 4.1
64+ aeson > 0.7 && <= 0.8
65+ , base >= 4.5 && < 5.0
66+ , bifunctors >= 4
7767 , bytestring >= 0.9
7868 , bytestring-conversion >= 0.2.1
79− , conduit > 1.1
69+ , conduit >= 0.5.5
8070 , data-default-class >= 0.0.1
8171 , exceptions >= 0.6
82− , generics-sop >= 0.5.0.0
83− , http-client >= 0.5 && < 1
72+ , generics-sop >= 0.1.0.2
73+ , http-client >= 0.3.6
8474 , http-types >= 0.8
85− , lens >= 4.4
86− , lens-aeson >= 1
87− , mmorph >= 1
88− , monad-control >= 1
89− , mtl >= 2.1.3.1
75+ , lens >= 4.0
76+ , lens-aeson >= 1.0
77+ , mmorph >= 1.0
78+ , monad-control >= 0.3.2
79+ , mtl >= 2.2.1
80+ , old-locale >= 1.0.0.5
9081 , template-haskell >= 2.2
9182 , text >= 1.1
92− , time >= 1.2
93− , time-locale-compat >= 0.1.0.1
94− , transformers >= 0.2
95− , transformers-compat >= 0.3
96− , transformers-base >= 0.4.2
83+ , time == 1.4.*
84+ , transformers >= 0.4.1
85+ , transformers-base >= 0.4.1
9786 , unordered-containers >= 0.2.3
script/generate-pagesnew file+25
@@ -0,0 +1,25 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+set -x
5+set -o errexit
6+
7+branch=$(git symbolic-ref -q HEAD)
8+branch=${branch##refs/heads/}
9+branch=${branch:-HEAD}
10+
11+cabal configure --disable-tests
12+
13+DOCDIR=`mktemp -d -t pages.XXXXXX`
14+cabal haddock --haddock-option=-o$DOCDIR
15+
16+HEAD=`git rev-parse HEAD`
17+
18+git checkout gh-pages
19+
20+mv $DOCDIR/* .
21+
22+git add *.html *.js *.css *.gif *.png
23+git commit -m "Generated documentation from $HEAD on $branch"
24+git push origin gh-pages
25+git checkout $branch
script/travis-lifecycle-before_installdeleted−11
@@ -1,11 +0,0 @@
1−#!/usr/bin/env bash
2−
3−set -e
4−
5−mkdir -p ~/.local/bin
6−
7−curl -L https://www.stackage.org/stack/linux-x86_64 | \
8− tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
9−
10−ghc --version
11−stack --version
script/travis-lifecycle-installdeleted−13
@@ -1,13 +0,0 @@
1−#!/usr/bin/env bash
2−
3−set -e
4−
5−GHCVER=${GHCVER?"GHCVER needs to be set."}
6−
7−path=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
8−
9−$path/travis-timeout \
10− stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml setup
11−
12−$path/travis-timeout \
13− stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml test pagerduty --only-snapshot
script/travis-lifecycle-scriptdeleted−9
@@ -1,9 +0,0 @@
1−#!/usr/bin/env bash
2−
3−set -e
4−
5−GHCVER=${GHCVER?"GHCVER needs to be set."}
6−
7−path=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
8−
9−stack --no-terminal --skip-ghc-check --stack-yaml stack-$GHCVER.yaml test pagerduty
script/travis-timeoutdeleted−15
@@ -1,15 +0,0 @@
1−#!/usr/bin/env bash
2−
3−$* &
4−pidA=$!
5−minutes=0
6−
7−while true; do sleep 60; ((minutes++)); echo -e "\033[0;32m$minutes minute(s) elapsed running '$*'\033[0m."; done &
8−pidB=$!
9−wait $pidA
10−resA=$?
11−
12−echo -e "\033[0;32m'$*' exited with status ${resA}.\033[0m"
13−kill -9 $pidB
14−
15−exit $resA
script/upload-documentationnew file+37
@@ -0,0 +1,37 @@
1+#!/usr/bin/env bash
2+
3+set -e
4+
5+package=${PWD##*/}
6+
7+echo "Package: ${package}"
8+read -p "Version: " version
9+read -p "Hackage user: " user
10+read -sp "Hackage password (not echoed): " password
11+
12+echo
13+echo "BUILDING"
14+echo
15+
16+cabal configure
17+cabal build
18+cabal haddock \
19+ --hyperlink-source \
20+ --html-location='/package/$pkg-$version/docs' \
21+ --contents-location='/package/$pkg'
22+
23+echo
24+echo "ARCHIVING"
25+echo
26+
27+cd dist/doc/html
28+DDIR="${package}-${version}-docs"
29+cp -r "${package}" "${DDIR}" && gtar -c -v -z -Hustar -f "${DDIR}.tar.gz" "${DDIR}"
30+
31+echo
32+echo "UPLOADING"
33+echo
34+
35+curl -X PUT -H 'Content-Type: application/x-tar' \
36+ -H 'Content-Encoding: gzip' --data-binary "@${DDIR}.tar.gz" \
37+ "http://${user}:${password}@hackage.haskell.org/package/${package}-${version}/docs"
src/Control/Monad/Trans/PagerDuty.hs+31−28
@@ -2,12 +2,15 @@
22{-# LANGUAGE FlexibleContexts #-}
33{-# LANGUAGE FlexibleInstances #-}
44{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5+{-# LANGUAGE KindSignatures #-}
56{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE RecordWildCards #-}
8+{-# LANGUAGE TemplateHaskell #-}
69{-# LANGUAGE TypeFamilies #-}
710{-# LANGUAGE UndecidableInstances #-}
811
912-- Module : Control.Monad.Trans.PagerDuty
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
13+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1114-- License : This Source Code Form is subject to the terms of
1215-- the Mozilla Public License, v. 2.0.
1316-- A copy of the MPL can be found in the LICENSE file or
@@ -22,41 +25,37 @@ module Control.Monad.Trans.PagerDuty
2225 PagerDuty
2326 , PagerDutyT
2427
25− -- * Running
28+ -- * Run
2629 , runPagerDutyT
2730
28− -- * Integration events
31+ -- * Environment
32+ , Env
33+ , envDomain
34+ , envAuth
35+ , envManager
36+ , envLogger
37+
38+ -- * Integration API
2939 , submit
30− , submitCatch
3140
32− -- * REST requests
41+ -- * REST API
3342 , send
34− , sendCatch
3543 , paginate
36− , paginateCatch
37−
38− -- ** Lifting errors
39− , hoistError
40−
41− , module Network.PagerDuty.Types
4244 ) where
4345
4446import Control.Applicative
45−import Control.Monad
4647import Control.Monad.Base
4748import Control.Monad.Catch
48−import Control.Monad.Except (MonadError (..))
49+import Control.Monad.Except
4950import Control.Monad.Morph
5051import Control.Monad.Reader
5152import Control.Monad.Trans.Control
52−import Control.Monad.Trans.Except
5353import Data.Aeson
5454import Data.Conduit
5555import Network.PagerDuty.Integration (Event, Response)
5656import qualified Network.PagerDuty.Integration as Int
5757import Network.PagerDuty.Internal.Types
5858import qualified Network.PagerDuty.REST as REST
59−import Network.PagerDuty.Types
6059
6160-- | A convenient alias for 'PagerDutyT' 'IO'.
6261type PagerDuty s = PagerDutyT s IO
@@ -83,24 +82,28 @@ instance MonadBase b m => MonadBase b (PagerDutyT s m) where
8382 {-# INLINE liftBase #-}
8483
8584instance MonadTransControl (PagerDutyT s) where
86− type StT (PagerDutyT s) a = StT (ExceptT Error) (StT (ReaderT (Env s)) a)
85+ newtype StT (PagerDutyT s) a = StTPDT
86+ { unStT :: StT (ExceptT Error) (StT (ReaderT (Env s)) a)
87+ }
8788
8889 liftWith f = PagerDutyT $
8990 liftWith $ \g ->
90− liftWith $ \h ->
91− f (h . g . unPagerDutyT)
91+ liftWith $ \h ->
92+ f (liftM StTPDT . h . g . unPagerDutyT)
9293 {-# INLINE liftWith #-}
9394
94− restoreT = PagerDutyT . restoreT . restoreT
95+ restoreT = PagerDutyT . restoreT . restoreT . liftM unStT
9596 {-# INLINE restoreT #-}
9697
9798instance MonadBaseControl b m => MonadBaseControl b (PagerDutyT s m) where
98− type StM (PagerDutyT s m) a = ComposeSt (PagerDutyT s) m a
99+ newtype StM (PagerDutyT s m) a = StMPDT
100+ { unStMPDT :: ComposeSt (PagerDutyT s) m a
101+ }
99102
100− liftBaseWith = defaultLiftBaseWith
103+ liftBaseWith = defaultLiftBaseWith StMPDT
101104 {-# INLINE liftBaseWith #-}
102105
103− restoreM = defaultRestoreM
106+ restoreM = defaultRestoreM unStMPDT
104107 {-# INLINE restoreM #-}
105108
106109instance MFunctor (PagerDutyT s) where
@@ -114,8 +117,8 @@ instance MMonad (PagerDutyT s) where
114117runPagerDutyT :: PagerDutyT s m a -> Env s -> m (Either Error a)
115118runPagerDutyT (PagerDutyT k) = runExceptT . runReaderT k
116119
117−hoistError :: (MonadError Error m) => Either Error a -> m a
118−hoistError = either throwError return
120+hoistEither :: (MonadError Error m) => Either Error a -> m a
121+hoistEither = either throwError return
119122
120123scoped :: MonadReader (Env s) m => (Env s -> m a) -> m a
121124scoped f = ask >>= f
@@ -126,7 +129,7 @@ submit :: ( MonadIO m
126129 )
127130 => Event
128131 -> m Response
129−submit = submitCatch >=> hoistError
132+submit = submitCatch >=> hoistEither
130133
131134submitCatch :: ( MonadIO m
132135 , MonadReader (Env s) m
@@ -142,7 +145,7 @@ send :: ( MonadIO m
142145 )
143146 => Request a s b
144147 -> m b
145−send = sendCatch >=> hoistError
148+send = sendCatch >=> hoistEither
146149
147150sendCatch :: ( MonadIO m
148151 , MonadReader (Env s) m
@@ -160,7 +163,7 @@ paginate :: ( MonadIO m
160163 )
161164 => Request a s b
162165 -> Source m b
163−paginate x = paginateCatch x $= awaitForever (hoistError >=> yield)
166+paginate x = paginateCatch x $= awaitForever (hoistEither >=> yield)
164167
165168paginateCatch :: ( MonadIO m
166169 , MonadReader (Env s) m
src/Network/PagerDuty/Integration.hs+6−12
@@ -6,7 +6,7 @@
66{-# LANGUAGE TemplateHaskell #-}
77
88-- Module : Network.PagerDuty.Integration
9−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
9+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1010-- License : This Source Code Form is subject to the terms of
1111-- the Mozilla Public License, v. 2.0.
1212-- A copy of the MPL can be found in the LICENSE file or
@@ -38,7 +38,7 @@
3838-- /See:/ <http://developer.pagerduty.com/documentation/integration/events>
3939module Network.PagerDuty.Integration
4040 (
41− -- * Sending events
41+ -- * Events
4242 submit
4343 , submitWith
4444
@@ -72,23 +72,19 @@ module Network.PagerDuty.Integration
7272 , rsStatus
7373 , rsMessage
7474 , rsIncidentKey
75−
76− , Generic
77−
78− , module Network.PagerDuty.Types
7975 ) where
8076
8177import Control.Lens
8278import Control.Monad.IO.Class
8379import Data.Aeson
84−import qualified Data.Aeson.KeyMap as Map
80+import Data.Default.Class
81+import qualified Data.HashMap.Strict as Map
8582import Data.Text (Text)
8683import Network.HTTP.Client (Manager)
8784import qualified Network.HTTP.Client as Client
8885import Network.PagerDuty.Internal.IO
8986import Network.PagerDuty.Internal.TH
9087import Network.PagerDuty.Internal.Types
91−import Network.PagerDuty.Types hiding (description, message)
9288
9389data Response = Response
9490 { _rsStatus :: Text
@@ -291,8 +287,6 @@ submitWith :: MonadIO m
291287 -> Event
292288 -> m (Either Error Response)
293289submitWith m l e = request m l e $
294− Client.defaultRequest
295− { Client.host = "events.pagerduty.com"
296− , Client.path = "/generic/2010-04-15/create_event.json"
297− , Client.method = "POST"
290+ def { Client.host = "events.pagerduty.com"
291+ , Client.path = "/generic/2010-04-15/create_event.json"
298292 }
src/Network/PagerDuty/Internal/IO.hs+6−7
@@ -2,7 +2,7 @@
22{-# LANGUAGE ScopedTypeVariables #-}
33
44-- Module : Network.PagerDuty.Internal.IO
5−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
5+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
66-- License : This Source Code Form is subject to the terms of
77-- the Mozilla Public License, v. 2.0.
88-- A copy of the MPL can be found in the LICENSE file or
@@ -60,13 +60,12 @@ response l rs = case statusCode (Client.responseStatus rs) of
6060 success = maybe (Left unknown) Right `liftM` parse
6161 failure = maybe (Left unknown) Left `liftM` parse
6262
63− unhandled n = Internal $
64− "PagerDuty returned unhandled status code: "
65− <> Text.pack (show n)
63+ unhandled n = Internal
64+ $ "PagerDuty returned unhandled status code: " ++ show n
6665
67− unknown = Internal $
68− "Unable to parse response into a PagerDuty API compatible type: "
69− <> Text.pack (show body)
66+ unknown = Internal
67+ $ "Unable to parse response into a PagerDuty API compatible type: "
68+ ++ show body
7069
7170 parse :: FromJSON a => m (Maybe a)
7271 parse = msg >> return (decode body)
src/Network/PagerDuty/Internal/Options.hs+4−4
@@ -1,5 +1,5 @@
11-- Module : Network.PagerDuty.Internal.Options
2−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
2+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
33-- License : This Source Code Form is subject to the terms of
44-- the Mozilla Public License, v. 2.0.
55-- A copy of the MPL can be found in the LICENSE file or
@@ -14,9 +14,9 @@ module Network.PagerDuty.Internal.Options
1414 , underscored
1515 ) where
1616
17−import Data.Aeson.Types
18−import Data.Char
19−import Data.List
17+import Data.Aeson.Types
18+import Data.Char
19+import Data.List
2020
2121dropped :: Int -> Options -> Options
2222dropped n o = o
src/Network/PagerDuty/Internal/Query.hs+12−14
@@ -1,13 +1,12 @@
11{-# LANGUAGE ConstraintKinds #-}
22{-# LANGUAGE DefaultSignatures #-}
3−{-# LANGUAGE FlexibleContexts #-}
43{-# LANGUAGE GADTs #-}
54{-# LANGUAGE OverloadedStrings #-}
65{-# LANGUAGE ScopedTypeVariables #-}
76{-# LANGUAGE TupleSections #-}
87
98-- Module : Network.PagerDuty.Internal.Query
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
9+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1110-- License : This Source Code Form is subject to the terms of
1211-- the Mozilla Public License, v. 2.0.
1312-- A copy of the MPL can be found in the LICENSE file or
@@ -24,14 +23,14 @@ module Network.PagerDuty.Internal.Query
2423
2524import Data.Aeson.Types
2625import Data.Bifunctor
27−import Data.ByteString (ByteString)
28−import qualified Data.ByteString.Char8 as BS
26+import Data.ByteString (ByteString)
27+import qualified Data.ByteString.Char8 as BS
2928import Data.ByteString.Conversion
30−import Data.Function (on)
31−import Data.List (groupBy)
32−import Data.Monoid ((<>))
33−import Data.Text (Text)
34−import qualified Data.Text.Encoding as Text
29+import Data.Function (on)
30+import Data.List (groupBy)
31+import Data.Monoid ((<>))
32+import Data.Text (Text)
33+import qualified Data.Text.Encoding as Text
3534import Generics.SOP
3635import Network.HTTP.Types
3736import Network.PagerDuty.Internal.Options
@@ -59,15 +58,14 @@ gqueryWith :: forall a. (Generic a, HasDatatypeInfo a, All2 QueryValues (Code a)
5958 -> a
6059 -> Query
6160gqueryWith o a = case datatypeInfo (Proxy :: Proxy a) of
62− ADT _ _ cs _ -> go cs (from a)
63− Newtype _ _ c -> go (c :* Nil) (from a)
61+ ADT _ _ cs -> go cs (from a)
62+ Newtype _ _ c -> go (c :* Nil) (from a)
6463 where
65− go :: (All2 QueryValues xss, SListI xss)
64+ go :: (All2 QueryValues xss, SingI xss)
6665 => NP ConstructorInfo xss
6766 -> SOP I xss
6867 -> Query
69− go cs (SOP sop) =
70− group . hcollapse $ hcliftA2' p (gctor o) cs sop
68+ go cs (SOP sop) = group . unI . hcollapse $ hcliftA2' p (gctor o) cs sop
7169
7270 group :: [(ByteString, ByteString)] -> Query
7371 group = concatMap f . groupBy ((==) `on` fst)
src/Network/PagerDuty/Internal/TH.hs+6−6
@@ -1,7 +1,7 @@
11{-# LANGUAGE TemplateHaskell #-}
22
33-- Module : Network.PagerDuty.Internal.TH
4−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
4+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
55-- License : This Source Code Form is subject to the terms of
66-- the Mozilla Public License, v. 2.0.
77-- A copy of the MPL can be found in the LICENSE file or
@@ -40,15 +40,15 @@ module Network.PagerDuty.Internal.TH
4040
4141import Control.Applicative
4242import Control.Lens
43−import qualified Data.Aeson.TH as Aeson
43+import qualified Data.Aeson.TH as Aeson
4444import Data.Aeson.Types
45−import Data.ByteString (ByteString)
46−import qualified Data.Text.Encoding as Text
45+import Data.ByteString (ByteString)
46+import qualified Data.Text.Encoding as Text
4747import Generics.SOP.TH
4848import Language.Haskell.TH
4949import Network.HTTP.Types.QueryLike
50−import Network.PagerDuty.Internal.Options
5150import Network.PagerDuty.Internal.Query
51+import Network.PagerDuty.Internal.Options
5252
5353jsonRequest :: Name -> Q [Dec]
5454jsonRequest n = concat <$> sequence
@@ -61,7 +61,7 @@ queryRequest :: Name -> Q [Dec]
6161queryRequest n = concat <$> sequence
6262 [ deriveGeneric n
6363 , makeLenses n
64− , [d|instance ToJSON $(conT n) where toJSON = const emptyObject|]
64+ , [d|instance ToJSON $(conT n) where toJSON = const (toJSON (object []))|]
6565 , [d|instance QueryLike $(conT n) where toQuery = gquery|]
6666 ]
6767
src/Network/PagerDuty/Internal/Types.hs+31−86
@@ -1,11 +1,9 @@
11{-# LANGUAGE BangPatterns #-}
22{-# LANGUAGE DataKinds #-}
33{-# LANGUAGE FlexibleInstances #-}
4−{-# LANGUAGE FunctionalDependencies #-}
54{-# LANGUAGE GADTs #-}
65{-# LANGUAGE GeneralizedNewtypeDeriving #-}
76{-# LANGUAGE KindSignatures #-}
8−{-# LANGUAGE MultiParamTypeClasses #-}
97{-# LANGUAGE OverloadedStrings #-}
108{-# LANGUAGE PatternSynonyms #-}
119{-# LANGUAGE RankNTypes #-}
@@ -15,7 +13,7 @@
1513{-# LANGUAGE ViewPatterns #-}
1614
1715-- Module : Network.PagerDuty.Internal.Types
18−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
16+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1917-- License : This Source Code Form is subject to the terms of
2018-- the Mozilla Public License, v. 2.0.
2119-- A copy of the MPL can be found in the LICENSE file or
@@ -27,33 +25,35 @@
2725module Network.PagerDuty.Internal.Types where
2826
2927import Control.Applicative
30−import Control.Lens hiding ((.=), Empty)
28+import Control.Lens hiding ((.=))
3129import Control.Monad.IO.Class
32−import Data.Aeson hiding (Error, Key)
33−import qualified Data.Aeson.KeyMap as Map
30+import Data.Aeson hiding (Error)
3431import Data.Aeson.Types (Parser)
3532import Data.ByteString (ByteString)
3633import qualified Data.ByteString.Char8 as BS
3734import Data.ByteString.Conversion hiding (List)
3835import Data.Default.Class
3936import Data.Function (on)
37+import qualified Data.HashMap.Strict as Map
4038import Data.List (deleteBy, intersperse)
4139import Data.Monoid
4240import Data.String
4341import Data.Text (Text)
4442import qualified Data.Text as Text
4543import qualified Data.Text.Encoding as Text
46−import Data.Time (UTCTime, TimeZone, formatTime, utc, timeZoneName)
44+import Data.Time
4745import GHC.TypeLits
4846import Network.HTTP.Client (Manager)
4947import Network.HTTP.Types
5048import Network.HTTP.Types.QueryLike
5149import Network.PagerDuty.Internal.Query
5250import Network.PagerDuty.Internal.TH
53−import Data.Time.Locale.Compat
51+import System.Locale
52+
53+-- FIXME: Verify IncidentId/IncidentKey .. *Id/*Key are actually different or needed
5454
5555newtype CSV a = CSV [a]
56− deriving (Eq, Show, Semigroup, Monoid)
56+ deriving (Eq, Show, Monoid)
5757
5858makePrisms ''CSV
5959
@@ -70,7 +70,7 @@ instance ToByteString a => ToJSON (CSV a) where
7070 toJSON = String . Text.decodeUtf8 . toByteString'
7171
7272newtype List a = L [a]
73− deriving (Eq, Show, Semigroup, Monoid)
73+ deriving (Eq, Show, Monoid)
7474
7575deriveJSON ''List
7676makePrisms ''List
@@ -106,7 +106,7 @@ instance ToJSON Date where
106106
107107instance ToByteString Date where
108108 builder (D d) = builder
109− (formatTime defaultTimeLocale ("%Y-%m-%dT%XZ") d)
109+ (formatTime defaultTimeLocale (iso8601DateFormat $ Just "%XZ") d)
110110
111111instance QueryValues Date
112112
@@ -133,17 +133,14 @@ data Security = Basic | Token
133133 deriving (Eq, Show)
134134
135135data Auth (a :: Security) where
136− AuthBasic :: ByteString -> ByteString -> Auth 'Basic
137− AuthToken :: ByteString -> Auth 'Token
136+ AuthBasic :: ByteString -> ByteString -> Auth Basic
137+ AuthToken :: ByteString -> Auth Token
138138
139139deriving instance Eq (Auth a)
140140deriving instance Show (Auth a)
141141
142142newtype SubDomain = SubDomain { subDomain :: ByteString }
143− deriving (Eq, Show, IsString, ToByteString)
144−
145−mkSubDomain :: ByteString -> SubDomain
146−mkSubDomain = SubDomain
143+ deriving (Eq, Show, IsString)
147144
148145domain :: SubDomain -> ByteString
149146domain (SubDomain s)
@@ -180,7 +177,7 @@ prod :: SubDomain -> Auth s -> Manager -> Env s
180177prod d a m = Env d a m None
181178
182179newtype Code = Code Integer
183− deriving (Eq, Show, Num)
180+ deriving (Eq, Show)
184181
185182deriveJSON ''Code
186183
@@ -202,15 +199,6 @@ description (Code c) =
202199 2012 -> "Your account is expired and cannot use the API"
203200 _ -> "Unrecognised error code"
204201
205−class HasMessage s a | s -> a where
206− -- | A short human-readable message describing the error.
207− message :: Lens' s a
208−
209−class HasErrors s a | s -> a where
210− -- | A list of human-readable reasons for the error. These values,
211− -- and even their format, are subject to change.
212− errors :: Lens' s a
213−
214202data IntegrationError = IntegrationError
215203 { _ieStatus :: Text
216204 , _ieMessage :: Text
@@ -219,53 +207,26 @@ data IntegrationError = IntegrationError
219207
220208deriveRecord ''IntegrationError
221209
222−instance HasMessage IntegrationError Text where message = ieMessage
223−instance HasErrors IntegrationError [Text] where errors = ieErrors
224−
225−status :: Lens' IntegrationError Text
226−status = ieStatus
227−
228−data RESTError = RESTError
210+data RestError = RestError
229211 { _reCode :: Code
230212 , _reMessage :: Text
231213 , _reErrors :: [Text]
232214 } deriving (Eq, Show)
233215
234−deriveRecord ''RESTError
235−
236−instance HasMessage RESTError Text where message = reMessage
237−instance HasErrors RESTError [Text] where errors = reErrors
238−
239−-- | In the case of an error, the PagerDuty error code can give further details
240−-- on the nature of the error.
241−--
242−-- /See:/ 'description'
243−code :: Lens' RESTError Code
244−code = reCode
216+deriveRecord ''RestError
245217
246218data Error
247− = Internal Text
219+ = Internal String
248220 | Integration IntegrationError
249− | REST RESTError
221+ | Rest RestError
250222 deriving (Eq, Show)
251223
252224instance FromJSON Error where
253− parseJSON o = (REST <$> parseJSON o)
225+ parseJSON o = (Rest <$> parseJSON o)
254226 <|> (Integration <$> parseJSON o)
255227
256228makePrisms ''Error
257229
258−instance HasMessage Error Text where
259− message = lens f g
260− where
261− f (Internal x) = x
262− f (Integration s) = _ieMessage s
263− f (REST s) = _reMessage s
264−
265− g (Internal _) x = Internal x
266− g (Integration s) x = Integration $ s { _ieMessage = x }
267− g (REST s) x = REST $ s { _reMessage = x }
268−
269230data Pager = Pager
270231 { _pgOffset :: !Int
271232 -- ^ The offset used in the execution of the query.
@@ -279,13 +240,8 @@ data Pager = Pager
279240
280241makeLenses ''Pager
281242
282−data Page a = Page
283− { _pgItem :: a
284− , _pgPager :: Maybe Pager
285− }
286−
287−instance FromJSON a => FromJSON (Page a) where
288− parseJSON = withObject "paginated" $ \o -> Page
243+instance FromJSON a => FromJSON (a, Maybe Pager) where
244+ parseJSON = withObject "paginated" $ \o -> (,)
289245 <$> parseJSON (Object o)
290246 <*> optional (parse o)
291247 where
@@ -310,13 +266,11 @@ data Path where
310266 Path :: Path
311267 Seg :: ToByteString a => a -> Path
312268
313−instance Semigroup Path where
314− x <> Path = x
315− Path <> y = y
316− Seg x <> Seg y = Seg (builder x <> "/" <> builder y)
317−
318269instance Monoid Path where
319− mempty = Path
270+ mempty = Path
271+ mappend x Path = x
272+ mappend Path y = y
273+ mappend (Seg x) (Seg y) = Seg (builder x <> "/" <> builder y)
320274
321275instance IsString Path where
322276 fromString = Seg
@@ -393,13 +347,13 @@ class Paginate a where
393347 next :: Request a s b -> Maybe Pager -> Maybe (Request a s b)
394348 next rq = maybe Nothing go
395349 where
396− go x | x ^. pgTotal == 0 = Nothing
397− | otherwise = Just $
398− rq & pager ?~ (x & pgOffset +~ x ^. pgTotal)
350+ go x | x^.pgTotal == 0 = Nothing
351+ | otherwise = Just $
352+ rq & pager ?~ (x & pgOffset +~ x^.pgTotal)
399353 & query %~ (add . clear)
400354 where
401355 add :: Query -> Query
402− add = maybe id ((:) . (k,) . Just . Text.encodeUtf8) (x ^. pgQuery)
356+ add = maybe id ((:) . (k,) . Just . Text.encodeUtf8) (x^.pgQuery)
403357
404358 clear :: Query -> Query
405359 clear = deleteBy ((==) `on` fst) (k, Nothing)
@@ -410,9 +364,6 @@ class Paginate a where
410364newtype Key (a :: Symbol) = Key Text
411365 deriving (Eq, Show, IsString)
412366
413−mkKey :: Text -> Key a
414−mkKey = Key
415−
416367instance FromJSON (Key a) where
417368 parseJSON = withText "key" (return . Key)
418369
@@ -433,9 +384,6 @@ type IncidentKey = Key "incident"
433384newtype Id (a :: Symbol) = Id Text
434385 deriving (Eq, Show, IsString)
435386
436−mkId :: Text -> Id a
437−mkId = Id
438−
439387instance FromJSON (Id a) where
440388 parseJSON = withText "id" (return . Id)
441389
@@ -483,10 +431,7 @@ instance QueryLike Empty where
483431 toQuery = const []
484432
485433newtype Address = Address Text
486− deriving (Eq, Show, IsString)
487−
488−mkAddress :: Text -> Address
489−mkAddress = Address
434+ deriving (Eq, Show)
490435
491436deriveJSON ''Address
492437makePrisms ''Address
src/Network/PagerDuty/REST.hs+26−17
@@ -2,7 +2,7 @@
22{-# LANGUAGE OverloadedStrings #-}
33
44-- Module : Network.PagerDuty.REST
5−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
5+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
66-- License : This Source Code Form is subject to the terms of
77-- the Mozilla Public License, v. 2.0.
88-- A copy of the MPL can be found in the LICENSE file or
@@ -13,13 +13,22 @@
1313
1414module Network.PagerDuty.REST
1515 (
16+
1617 -- * Sending requests
1718 send
18− , sendWith
1919 , paginate
20− , paginateWith
2120
22− , module Network.PagerDuty.Types
21+ -- * Configuration
22+ -- ** Environment
23+ , Env
24+ , envDomain
25+ , envAuth
26+ , envManager
27+ , envLogger
28+
29+ -- ** Requests
30+ , sendWith
31+ , paginateWith
2332 ) where
2433
2534import Control.Applicative
@@ -27,21 +36,20 @@ import Control.Lens
2736import Control.Monad
2837import Control.Monad.IO.Class
2938import Control.Monad.Trans
30−import Data.Aeson (FromJSON)
39+import Data.Aeson (FromJSON)
3140import Data.Conduit
41+import Data.Default.Class
3242import Data.Monoid
33−import Network.HTTP.Client (Manager)
34−import qualified Network.HTTP.Client as Client
43+import Network.HTTP.Client (Manager)
44+import qualified Network.HTTP.Client as Client
3545import Network.HTTP.Types
3646import Network.PagerDuty.Internal.IO
3747import Network.PagerDuty.Internal.Types
38−import Network.PagerDuty.Types
3948
4049-- FIXME: verify correct actions are all paginated
4150-- FIXME: Ensure RequesterId parameter is always most significant param
4251-- FIXME: add smart constructors for all types, for testing purposes
4352
44−-- | /See:/ 'sendWith'
4553send :: (MonadIO m, FromJSON b)
4654 => SubDomain
4755 -> Auth s
@@ -50,13 +58,13 @@ send :: (MonadIO m, FromJSON b)
5058 -> m (Either Error b)
5159send d a m = sendWith (prod d a m)
5260
61+-- | /See:/ 'sendWith'
5362sendWith :: (MonadIO m, FromJSON b)
5463 => Env s
5564 -> Request a s b
5665 -> m (Either Error b)
57−sendWith e = liftM (fmap _pgItem) . http e
66+sendWith e = liftM (fmap fst) . http e
5867
59−-- | /See:/ 'paginateWith'
6068paginate :: (MonadIO m, Paginate a, FromJSON b)
6169 => SubDomain
6270 -> Auth s
@@ -65,6 +73,7 @@ paginate :: (MonadIO m, Paginate a, FromJSON b)
6573 -> Source m (Either Error b)
6674paginate d a m = paginateWith (prod d a m)
6775
76+-- | /See:/ 'paginateWith'
6877paginateWith :: (MonadIO m, Paginate a, FromJSON b)
6978 => Env s
7079 -> Request a s b
@@ -73,23 +82,23 @@ paginateWith e = go
7382 where
7483 go rq = do
7584 rs <- lift (http e rq)
76− yield (_pgItem <$> rs)
85+ yield (fst <$> rs)
7786 either (const (return ()))
78− (maybe (return ()) go . next rq . _pgPager)
87+ (maybe (return ()) go . next rq . snd)
7988 rs
8089
8190http :: (MonadIO m, FromJSON b)
8291 => Env s
8392 -> Request a s b
84− -> m (Either Error (Page b))
93+ -> m (Either Error (b, Maybe Pager))
8594http e rq = request (e ^. envManager) (e ^. envLogger) rq $ raw
8695 { Client.host = domain (e ^. envDomain)
8796 , Client.path = renderPath (rq ^. path)
8897 , Client.queryString = renderQuery False (rq ^. query)
8998 }
9099 where
91− raw = case e ^. envAuth of
92− AuthBasic u p -> Client.applyBasicAuth u p Client.defaultRequest
93− AuthToken t -> Client.defaultRequest
100+ raw = case (e ^. envAuth) of
101+ AuthBasic u p -> Client.applyBasicAuth u p def
102+ AuthToken t -> def
94103 { Client.requestHeaders = [("Authorization", "Token token=" <> t)]
95104 }
src/Network/PagerDuty/REST/Alerts.hs+7−7
@@ -4,7 +4,7 @@
44{-# LANGUAGE TypeFamilies #-}
55
66-- Module : Network.PagerDuty.REST.Alerts
7−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
7+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
88-- License : This Source Code Form is subject to the terms of
99-- the Mozilla Public License, v. 2.0.
1010-- A copy of the MPL can be found in the LICENSE file or
@@ -43,12 +43,12 @@ module Network.PagerDuty.REST.Alerts
4343 , alertAddress
4444 ) where
4545
46−import Control.Lens hiding (Empty)
47−import Data.Aeson.Lens
48−import Data.Time
49−import Network.PagerDuty.Internal.TH
50−import Network.PagerDuty.Internal.Types
51−import Network.PagerDuty.REST.Users (User)
46+import Control.Lens
47+import Data.Aeson.Lens
48+import Data.Time
49+import Network.PagerDuty.REST.Users (User)
50+import Network.PagerDuty.Internal.TH
51+import Network.PagerDuty.Internal.Types
5252
5353alerts :: Path
5454alerts = "alerts"
src/Network/PagerDuty/REST/EscalationPolicies.hs+14−14
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.EscalationPolicies
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -60,15 +60,15 @@ module Network.PagerDuty.REST.EscalationPolicies
6060 , pServices
6161 ) where
6262
63−import Control.Lens hiding (Empty)
64−import Data.Aeson.Lens
65−import Data.Text (Text)
66−import Network.HTTP.Types
67−import Network.PagerDuty.Internal.TH
68−import Network.PagerDuty.Internal.Types
69−import Network.PagerDuty.REST.Services (Service)
63+import Control.Lens
64+import Data.Aeson.Lens
65+import Data.Text (Text)
66+import Network.HTTP.Types
67+import Network.PagerDuty.REST.Services (Service)
68+import Network.PagerDuty.Internal.TH
69+import Network.PagerDuty.Internal.Types
7070
71−import Network.PagerDuty.REST.EscalationPolicies.EscalationRules
71+import Network.PagerDuty.REST.EscalationPolicies.EscalationRules
7272
7373default (Path)
7474
src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs+10−10
@@ -1,12 +1,12 @@
1−{-# LANGUAGE ExtendedDefaultRules #-}
2−{-# LANGUAGE FlexibleInstances #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE FlexibleInstances #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
55
66{-# OPTIONS_GHC -fno-warn-type-defaults #-}
77
88-- Module : Network.PagerDuty.REST.EscalationPolicies.EscalationRules
9−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
9+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1010-- License : This Source Code Form is subject to the terms of
1111-- the Mozilla Public License, v. 2.0.
1212-- A copy of the MPL can be found in the LICENSE file or
@@ -64,15 +64,15 @@ module Network.PagerDuty.REST.EscalationPolicies.EscalationRules
6464 , rTargets
6565 ) where
6666
67−import Control.Applicative ((<$>))
68−import Control.Lens hiding ((.=))
67+import Control.Applicative ((<$>))
68+import Control.Lens hiding ((.=))
6969import Data.Aeson
70−import qualified Data.Aeson.KeyMap as Map
71−import Data.Text (Text)
70+import qualified Data.HashMap.Strict as Map
71+import Data.Text (Text)
7272import Network.HTTP.Types
73+import Network.PagerDuty.REST.Users
7374import Network.PagerDuty.Internal.TH
7475import Network.PagerDuty.Internal.Types
75−import Network.PagerDuty.REST.Users
7676
7777default (Path)
7878
src/Network/PagerDuty/REST/Incidents.hs+24−20
@@ -10,7 +10,7 @@
1010{-# OPTIONS_GHC -fno-warn-type-defaults #-}
1111
1212-- Module : Network.PagerDuty.REST.Incidents
13−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
13+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1414-- License : This Source Code Form is subject to the terms of
1515-- the Mozilla Public License, v. 2.0.
1616-- A copy of the MPL can be found in the LICENSE file or
@@ -129,16 +129,14 @@ module Network.PagerDuty.REST.Incidents
129129 , Incident
130130 ) where
131131
132−import Control.Applicative hiding (empty)
133−import Control.Lens hiding (Empty)
132+import Control.Applicative hiding (empty)
133+import Control.Lens
134134import Data.Aeson
135−import Data.ByteString.Conversion (ToByteString (..),
136− toByteString')
135+import Data.ByteString.Conversion (ToByteString(..), toByteString')
137136import Data.Default.Class
138−import Data.Maybe
139−import Data.Monoid hiding (All)
140−import Data.Text (Text)
141−import qualified Data.Text.Encoding as Text
137+import Data.Monoid hiding (All)
138+import Data.Text (Text)
139+import qualified Data.Text.Encoding as Text
142140import Data.Time
143141import Network.HTTP.Types
144142import Network.PagerDuty.Internal.Query
@@ -347,10 +345,13 @@ lsUntil = upd.lsUntil'.mapping _D
347345-- | When set, the since and until parameters and defaults are
348346-- ignored. Use this to get all incidents since the account was created.
349347lsDateRange :: Lens' (Request ListIncidents s b) Bool
350−lsDateRange = upd.lens get_ (flip set_)
348+lsDateRange = upd . lens get_ set_
351349 where
352− get_ = (Just All ==) . view lsDateRange'
353− set_ x = lsDateRange' .~ listToMaybe [All | x]
350+ get_ x
351+ | Just All <- _lsDateRange' x = True
352+ | otherwise = False
353+
354+ set_ l x = l { _lsDateRange' = if x then Just All else Nothing }
354355
355356-- | Returns only the incidents currently in the passed status(es).
356357lsStatus :: Lens' (Request ListIncidents s b) (Maybe [IncidentStatus])
@@ -437,12 +438,12 @@ cSince = upd.cSince'.mapping _D
437438
438439-- | The end of the date range over which you want to search.
439440--
440−-- /Note:/ If you leave off either since or until, a 30 day default range is
441+-- /Note: If you leave off either since or until, a 30 day default range is
441442-- applied to your open ended range. Not including the since parameter will set
442−-- the date range to until @-30@ days. Likewise, if you leave off until,
443−-- it is set to since @+30@ days.
443+-- the date range to until - 30 days. Likewise, if you leave off until,
444+-- it is set to since + 30 days.
444445--
445−-- /Default:/ The last 30 days if you leave off both. The size of the date
446+-- Defaults to the last 30 days if you leave off both. The size of the date
446447-- range must be less than 180 days.
447448cUntil :: Lens' (Request CountIncidents s b) (Maybe UTCTime)
448449cUntil = upd.cUntil'.mapping _D
@@ -450,10 +451,13 @@ cUntil = upd.cUntil'.mapping _D
450451-- | When set, the since and until parameters and defaults are
451452-- ignored. Use this to get all counts since the account was created.
452453cDateRange :: Lens' (Request CountIncidents s b) Bool
453−cDateRange = upd.lens get_ (flip set_)
454+cDateRange = upd . lens get_ set_
454455 where
455− get_ = (Just All ==) . view cDateRange'
456− set_ x = cDateRange' .~ listToMaybe [All | x]
456+ get_ x
457+ | Just All <- _cDateRange' x = True
458+ | otherwise = False
459+
460+ set_ l x = l { _cDateRange' = if x then Just All else Nothing }
457461
458462-- | Only counts the incidents currently in the passed status(es).
459463cStatus :: Lens' (Request CountIncidents s b) (Maybe [IncidentStatus])
@@ -567,7 +571,7 @@ updateIncidents r = auth updateIncidentsBasic & query .~ [("requester_id", r)]
567571
568572-- | A version of 'updateIncidents' which uses HTTP Basic authentication and
569573-- doesn't require a 'RequesterId'.
570−updateIncidentsBasic :: Request UpdateIncidents 'Basic [UpdatedIncidents]
574+updateIncidentsBasic :: Request UpdateIncidents Basic [UpdatedIncidents]
571575updateIncidentsBasic =
572576 mk UpdateIncidents
573577 { _uiIncidents' = []
src/Network/PagerDuty/REST/Incidents/Notes.hs+12−12
@@ -1,11 +1,11 @@
1−{-# LANGUAGE ExtendedDefaultRules #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−{-# LANGUAGE TemplateHaskell #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE TemplateHaskell #-}
44
55{-# OPTIONS_GHC -fno-warn-type-defaults #-}
66
77-- Module : Network.PagerDuty.REST.Incidents.Notes
8−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
8+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
99-- License : This Source Code Form is subject to the terms of
1010-- the Mozilla Public License, v. 2.0.
1111-- A copy of the MPL can be found in the LICENSE file or
@@ -36,14 +36,14 @@ module Network.PagerDuty.REST.Incidents.Notes
3636 , nContent
3737 ) where
3838
39−import Control.Lens hiding ((.=))
40−import Data.Aeson
41−import Data.Text (Text)
42−import Data.Time
43−import Network.HTTP.Types
44−import Network.PagerDuty.Internal.TH
45−import Network.PagerDuty.Internal.Types
46−import Network.PagerDuty.REST.Users
39+import Control.Lens hiding ((.=))
40+import Data.Aeson
41+import Data.Text (Text)
42+import Data.Time
43+import Network.HTTP.Types
44+import Network.PagerDuty.REST.Users
45+import Network.PagerDuty.Internal.TH
46+import Network.PagerDuty.Internal.Types
4747
4848default (Path)
4949
src/Network/PagerDuty/REST/LogEntries.hs+7−6
@@ -5,7 +5,7 @@
55{-# LANGUAGE TypeFamilies #-}
66
77-- Module : Network.PagerDuty.REST.LogEntries
8−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
8+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
99-- License : This Source Code Form is subject to the terms of
1010-- the Mozilla Public License, v. 2.0.
1111-- A copy of the MPL can be found in the LICENSE file or
@@ -111,18 +111,19 @@ module Network.PagerDuty.REST.LogEntries
111111 , nAddress
112112 ) where
113113
114−import Control.Lens hiding (Empty)
114+import Control.Applicative
115+import Control.Lens
115116import Data.Aeson
116117import Data.Aeson.Lens
117−import qualified Data.Aeson.KeyMap as Map
118118import Data.Default.Class
119−import Data.Text (Text)
120−import qualified Data.Text as Text
119+import qualified Data.HashMap.Strict as Map
120+import Data.Text (Text)
121+import qualified Data.Text as Text
121122import Data.Time
122123import Network.HTTP.Types
124+import Network.PagerDuty.REST.Users (User)
123125import Network.PagerDuty.Internal.TH
124126import Network.PagerDuty.Internal.Types
125−import Network.PagerDuty.REST.Users (User)
126127
127128logs :: Path
128129logs = "log_entries"
src/Network/PagerDuty/REST/MaintenanceWindows.hs+10−10
@@ -4,7 +4,7 @@
44{-# LANGUAGE TypeFamilies #-}
55
66-- Module : Network.PagerDuty.REST.MaintenanceWindows
7−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
7+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
88-- License : This Source Code Form is subject to the terms of
99-- the Mozilla Public License, v. 2.0.
1010-- A copy of the MPL can be found in the LICENSE file or
@@ -74,14 +74,14 @@ module Network.PagerDuty.REST.MaintenanceWindows
7474 , mwServices
7575 ) where
7676
77−import Control.Lens hiding (Empty)
78−import Data.Monoid
79−import Data.Text (Text)
80−import Data.Time
81−import Network.HTTP.Types
82−import Network.PagerDuty.Internal.TH
83−import Network.PagerDuty.Internal.Types
84−import Network.PagerDuty.REST.Users (User)
77+import Control.Lens
78+import Data.Monoid
79+import Data.Text (Text)
80+import Data.Time
81+import Network.HTTP.Types
82+import Network.PagerDuty.REST.Users (User)
83+import Network.PagerDuty.Internal.TH
84+import Network.PagerDuty.Internal.Types
8585
8686windows :: Path
8787windows = "maintenance_windows"
@@ -214,7 +214,7 @@ createWindow r s e xs =
214214createWindowBasic :: UTCTime -- ^ 'cwStartTime'
215215 -> UTCTime -- ^ 'cwEndTime'
216216 -> [ServiceId] -- ^ 'cwServiceIds'
217− -> Request CreateWindow 'Basic MaintenanceWindow
217+ -> Request CreateWindow Basic MaintenanceWindow
218218createWindowBasic s e xs =
219219 mk CreateWindow
220220 { _cwRequesterId' = Nothing
src/Network/PagerDuty/REST/Reports.hs+11−11
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.Reports
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -58,11 +58,11 @@ module Network.PagerDuty.REST.Reports
5858 , irNumberOfIncidents
5959 ) where
6060
61−import Control.Lens hiding (Empty)
62−import Data.Aeson.Lens
63−import Data.Time
64−import Network.PagerDuty.Internal.TH
65−import Network.PagerDuty.Internal.Types
61+import Control.Lens
62+import Data.Aeson.Lens
63+import Data.Time
64+import Network.PagerDuty.Internal.TH
65+import Network.PagerDuty.Internal.Types
6666
6767default (Path)
6868
src/Network/PagerDuty/REST/Schedules.hs+14−14
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.Schedules
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -110,14 +110,14 @@ module Network.PagerDuty.REST.Schedules
110110 , sFinalSchedule
111111 ) where
112112
113−import Control.Lens hiding (Empty, (.=))
114−import Data.Aeson
115−import Data.Text (Text)
116−import Data.Time
117−import Network.HTTP.Types
118−import Network.PagerDuty.Internal.TH
119−import Network.PagerDuty.Internal.Types
120−import Network.PagerDuty.REST.Users (User)
113+import Control.Lens hiding ((.=))
114+import Data.Aeson
115+import Data.Text (Text)
116+import Data.Time
117+import Network.HTTP.Types
118+import Network.PagerDuty.REST.Users (User)
119+import Network.PagerDuty.Internal.TH
120+import Network.PagerDuty.Internal.Types
121121
122122default (Path)
123123
src/Network/PagerDuty/REST/Schedules/Overrides.hs+12−12
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.Schedules
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -50,12 +50,12 @@ module Network.PagerDuty.REST.Schedules.Overrides
5050 , oUser
5151 ) where
5252
53−import Control.Lens
54−import Data.Time
55−import Network.HTTP.Types
56−import Network.PagerDuty.Internal.TH
57−import Network.PagerDuty.Internal.Types
58−import Network.PagerDuty.REST.Users
53+import Control.Lens
54+import Data.Time
55+import Network.HTTP.Types
56+import Network.PagerDuty.REST.Users
57+import Network.PagerDuty.Internal.TH
58+import Network.PagerDuty.Internal.Types
5959
6060overrides :: ScheduleId -> Path
6161overrides i = "schedules" % i % "overrides"
src/Network/PagerDuty/REST/Services.hs+16−16
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.Services
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -106,14 +106,14 @@ module Network.PagerDuty.REST.Services
106106 , svcSeverityFilter
107107 ) where
108108
109−import Control.Lens hiding (Empty)
110−import Data.Aeson.Lens
111−import Data.Text (Text)
112−import Data.Time
113−import Network.HTTP.Types
114−import Network.PagerDuty.Internal.TH
115−import Network.PagerDuty.Internal.Types
116−import Network.PagerDuty.REST.Services.EmailFilters
109+import Control.Lens
110+import Data.Aeson.Lens
111+import Data.Text (Text)
112+import Data.Time
113+import Network.HTTP.Types
114+import Network.PagerDuty.REST.Services.EmailFilters
115+import Network.PagerDuty.Internal.TH
116+import Network.PagerDuty.Internal.Types
117117
118118default (Path)
119119
@@ -483,7 +483,7 @@ enableService r i =
483483
484484-- | A version of 'enableService' which uses HTTP Basic authentication and
485485-- doesn't require a 'RequesterId'.
486−enableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
486+enableServiceBasic :: ServiceId -> Request Empty Basic Empty
487487enableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "enable"
488488
489489-- | Disable a service. Once a service is disabled, it will not be able to
@@ -498,7 +498,7 @@ disableService r i =
498498
499499-- | A version of 'disableService' which uses HTTP Basic authentication and
500500-- doesn't require a 'RequesterId'.
501−disableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
501+disableServiceBasic :: ServiceId -> Request Empty Basic Empty
502502disableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "disable"
503503
504504-- | Regenerate a new service key for an existing service.
src/Network/PagerDuty/REST/Services/EmailFilters.hs+14−14
@@ -1,11 +1,11 @@
1−{-# LANGUAGE ExtendedDefaultRules #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−{-# LANGUAGE TemplateHaskell #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE TemplateHaskell #-}
44
55{-# OPTIONS_GHC -fno-warn-type-defaults #-}
66
77-- Module : Network.PagerDuty.REST.Services.EmailFilters
8−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
8+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
99-- License : This Source Code Form is subject to the terms of
1010-- the Mozilla Public License, v. 2.0.
1111-- A copy of the MPL can be found in the LICENSE file or
@@ -39,15 +39,15 @@ module Network.PagerDuty.REST.Services.EmailFilters
3939 , efId
4040 ) where
4141
42−import Control.Applicative hiding (empty)
43−import Control.Lens hiding ((.=))
44−import Data.Aeson
45−import Data.Default.Class
46−import Data.Monoid
47−import Data.Text (Text)
48−import Network.HTTP.Types
49−import Network.PagerDuty.Internal.TH
50−import Network.PagerDuty.Internal.Types
42+import Control.Applicative hiding (empty)
43+import Control.Lens hiding ((.=))
44+import Data.Aeson
45+import Data.Default.Class
46+import Data.Monoid
47+import Data.Text (Text)
48+import Network.HTTP.Types
49+import Network.PagerDuty.Internal.TH
50+import Network.PagerDuty.Internal.Types
5151
5252default (Path)
5353
@@ -65,7 +65,7 @@ deriveNullaryWith hyphenated ''MatchMode
6565-- FIXME: Tighten up this type! Make the regex required for match/no-match and
6666-- encode the conditional invariants.
6767data EmailFilterInfo = EmailFilterInfo
68− { _efSubjectMode' :: Maybe MatchMode
68+ { _efSubjectMode' :: Maybe MatchMode
6969 , _efSubjectRegex' :: Maybe Text
7070 , _efBodyMode' :: Maybe MatchMode
7171 , _efBodyRegex' :: Maybe Text
src/Network/PagerDuty/REST/Users.hs+17−17
@@ -1,13 +1,13 @@
1−{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
1+{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3+{-# LANGUAGE OverloadedStrings #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+{-# LANGUAGE TypeFamilies #-}
66
77{-# OPTIONS_GHC -fno-warn-type-defaults #-}
88
99-- Module : Network.PagerDuty.REST.Users
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
10+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
1111-- License : This Source Code Form is subject to the terms of
1212-- the Mozilla Public License, v. 2.0.
1313-- A copy of the MPL can be found in the LICENSE file or
@@ -81,16 +81,16 @@ module Network.PagerDuty.REST.Users
8181 , uJobTitle
8282 ) where
8383
84−import Control.Applicative hiding (empty)
85−import Control.Lens hiding (Empty, (.=))
86−import Data.Aeson
87−import Data.Default.Class
88−import Data.Monoid
89−import Data.Text (Text)
90−import Data.Time
91−import Network.HTTP.Types
92−import Network.PagerDuty.Internal.TH
93−import Network.PagerDuty.Internal.Types
84+import Control.Applicative hiding (empty)
85+import Control.Lens hiding ((.=))
86+import Data.Aeson
87+import Data.Default.Class
88+import Data.Monoid
89+import Data.Text (Text)
90+import Data.Time
91+import Network.HTTP.Types
92+import Network.PagerDuty.Internal.TH
93+import Network.PagerDuty.Internal.Types
9494
9595default (Path)
9696
@@ -315,7 +315,7 @@ createUser r n e = auth (createUserBasic n e) & query .~ [("requester_id", r)]
315315-- doesn't require a 'RequesterId'.
316316createUserBasic :: Text -- ^ 'cuName'
317317 -> Address -- ^ 'cuEmail'
318− -> Request CreateUser 'Basic User
318+ -> Request CreateUser Basic User
319319createUserBasic n e =
320320 mk CreateUser
321321 { _cuName' = n
src/Network/PagerDuty/REST/Users/ContactMethods.hs+10−10
@@ -1,11 +1,11 @@
1−{-# LANGUAGE ExtendedDefaultRules #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−{-# LANGUAGE TemplateHaskell #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE TemplateHaskell #-}
44
55{-# OPTIONS_GHC -fno-warn-type-defaults #-}
66
77-- Module : Network.PagerDuty.REST.Users.ContactMethods
8−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
8+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
99-- License : This Source Code Form is subject to the terms of
1010-- the Mozilla Public License, v. 2.0.
1111-- A copy of the MPL can be found in the LICENSE file or
@@ -56,12 +56,12 @@ module Network.PagerDuty.REST.Users.ContactMethods
5656 , Contact
5757 ) where
5858
59−import Control.Lens
60−import Data.Aeson.Lens
61−import Data.Text (Text)
62−import Network.HTTP.Types
63−import Network.PagerDuty.Internal.TH
64−import Network.PagerDuty.Internal.Types
59+import Control.Lens
60+import Data.Aeson.Lens
61+import Data.Text (Text)
62+import Network.HTTP.Types
63+import Network.PagerDuty.Internal.TH
64+import Network.PagerDuty.Internal.Types
6565
6666default (Path)
6767
src/Network/PagerDuty/REST/Users/NotificationRules.hs+10−10
@@ -1,11 +1,11 @@
1−{-# LANGUAGE ExtendedDefaultRules #-}
2−{-# LANGUAGE OverloadedStrings #-}
3−{-# LANGUAGE TemplateHaskell #-}
1+{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE TemplateHaskell #-}
44
55{-# OPTIONS_GHC -fno-warn-type-defaults #-}
66
77-- Module : Network.PagerDuty.REST.Users.NotificationRules
8−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
8+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
99-- License : This Source Code Form is subject to the terms of
1010-- the Mozilla Public License, v. 2.0.
1111-- A copy of the MPL can be found in the LICENSE file or
@@ -51,12 +51,12 @@ module Network.PagerDuty.REST.Users.NotificationRules
5151 , rContactMethod
5252 ) where
5353
54−import Control.Lens
55−import Data.Aeson.Lens
56−import Network.HTTP.Types
57−import Network.PagerDuty.Internal.TH
58−import Network.PagerDuty.Internal.Types
59−import Network.PagerDuty.REST.Users.ContactMethods
54+import Control.Lens
55+import Data.Aeson.Lens
56+import Network.HTTP.Types
57+import Network.PagerDuty.REST.Users.ContactMethods
58+import Network.PagerDuty.Internal.TH
59+import Network.PagerDuty.Internal.Types
6060
6161default (Path)
6262
src/Network/PagerDuty/REST/Webhooks.hs+3−4
@@ -3,7 +3,7 @@
33{-# LANGUAGE TemplateHaskell #-}
44
55-- Module : Network.PagerDuty.REST.Webhooks
6−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
6+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
77-- License : This Source Code Form is subject to the terms of
88-- the Mozilla Public License, v. 2.0.
99-- A copy of the MPL can be found in the LICENSE file or
@@ -35,14 +35,13 @@ module Network.PagerDuty.REST.Webhooks
3535import Control.Applicative hiding (empty)
3636import Control.Lens
3737import Data.Aeson
38−import Data.ByteString.Conversion (ToByteString (..),
39− toByteString')
38+import Data.ByteString.Conversion (ToByteString(..), toByteString')
4039import Data.Text (Text)
4140import qualified Data.Text.Encoding as Text
4241import Data.Time
42+import Network.PagerDuty.REST.Incidents
4343import Network.PagerDuty.Internal.TH
4444import Network.PagerDuty.Internal.Types
45−import Network.PagerDuty.REST.Incidents
4645
4746data WebhookType
4847 = WTrigger
src/Network/PagerDuty/Types.hsdeleted−93
@@ -1,93 +0,0 @@
1−-- Module : Network.PagerDuty.Types
2−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
3−-- License : This Source Code Form is subject to the terms of
4−-- the Mozilla Public License, v. 2.0.
5−-- A copy of the MPL can be found in the LICENSE file or
6−-- you can obtain it at http://mozilla.org/MPL/2.0/.
7−-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
8−-- Stability : experimental
9−-- Portability : non-portable (GHC extensions)
10−
11−module Network.PagerDuty.Types
12− (
13− -- * Configuration
14− -- ** Environment
15− Env
16− , envDomain
17− , envAuth
18− , envManager
19− , envLogger
20−
21− -- ** Logging
22− , Logger (..)
23− , debug
24−
25− -- * Types
26− -- ** Requests
27− , Paginate
28− , Request
29−
30− -- ** Errors
31− , Error
32− , _Internal
33− , _Integration
34− , _REST
35− -- *** Messages
36− , HasMessage (..)
37− -- *** Fields
38− , HasErrors (..)
39− -- *** Integration
40− , IntegrationError
41− , status
42− -- *** REST
43− , RESTError
44− , Code
45− , code
46− , description
47−
48− -- ** Authentication
49− , Security (..)
50− , Auth (..)
51−
52− -- ** Keys
53− , Key
54− , mkKey
55− -- *** Aliases
56− , ServiceKey
57− , IncidentKey
58−
59− -- ** Identifiers
60− , Id
61− , mkId
62− -- *** Aliases
63− , AlertId
64− , ContactId
65− , EmailFilterId
66− , EscalationPolicyId
67− , EscalationRuleId
68− , IncidentId
69− , LogEntryId
70− , NoteId
71− , NotificationRuleId
72− , OverrideId
73− , RequesterId
74− , ScheduleId
75− , ServiceId
76− , UserId
77− , VendorId
78− , WebhookId
79− , WindowId
80−
81− -- ** SubDomain
82− , SubDomain
83− , mkSubDomain
84−
85− -- ** Address
86− , Address
87− , mkAddress
88−
89− -- ** Miscellaneous
90− , Empty (..)
91− ) where
92−
93−import Network.PagerDuty.Internal.Types
stack.yamldeleted−7
@@ -1,7 +0,0 @@
1−resolver: lts-19.23
2−
3−packages:
4−- .
5−
6−nix:
7− packages: [zlib]