@@ -1,13 +1,12 @@
1−{-# LANGUAGE DataKinds #-}
1+{-# LANGUAGE DataKinds #-}
2−{-# LANGUAGE ExtendedDefaultRules #-}
2+{-# LANGUAGE ExtendedDefaultRules #-}
3−{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE TemplateHaskell #-}
4+{-# LANGUAGE TemplateHaskell #-}
5−{-# LANGUAGE TypeFamilies #-}
7{-# OPTIONS_GHC -fno-warn-type-defaults #-}
6{-# OPTIONS_GHC -fno-warn-type-defaults #-}
9-- Module : Network.PagerDuty.REST.Services
8-- Module : Network.PagerDuty.REST.Services
10−-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
9+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
11-- License : This Source Code Form is subject to the terms of
10-- License : This Source Code Form is subject to the terms of
12-- the Mozilla Public License, v. 2.0.
11-- the Mozilla Public License, v. 2.0.
13-- A copy of the MPL can be found in the LICENSE file or
12-- A copy of the MPL can be found in the LICENSE file or
@@ -24,16 +23,14 @@
24-- When a service is shown inlined in other resources, a deleted service will
23-- When a service is shown inlined in other resources, a deleted service will
25-- have its @html_url@ attribute set to 'Nothing'.
24-- have its @html_url@ attribute set to 'Nothing'.
27−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services>
26+-- See: <http://developer.pagerduty.com/documentation/rest/services>
28module Network.PagerDuty.REST.Services
27module Network.PagerDuty.REST.Services
30 -- * List Services
29 -- * List Services
32− , listServices
30+ listServices
33 , lsTimeZone
31 , lsTimeZone
35 -- * Create Service
33 -- * Create Service
37 , createService
34 , createService
39 , csDescription
36 , csDescription
@@ -48,7 +45,6 @@ module Network.PagerDuty.REST.Services
48 , getService
45 , getService
50 -- * Update Service
47 -- * Update Service
52 , updateService
48 , updateService
54 , usEscalationPolicyId
50 , usEscalationPolicyId
@@ -72,6 +68,7 @@ module Network.PagerDuty.REST.Services
72 -- * Types
68 -- * Types
73 , EmailFilterMode (..)
69 , EmailFilterMode (..)
74 , EmailIncidentCreation (..)
70 , EmailIncidentCreation (..)
75 , ServiceStatus (..)
72 , ServiceStatus (..)
76 , ServiceType (..)
73 , ServiceType (..)
77 , SeverityFilter (..)
74 , SeverityFilter (..)
@@ -82,6 +79,15 @@ module Network.PagerDuty.REST.Services
82 , cntResolved
79 , cntResolved
83 , cntTotal
80 , cntTotal
85 , PolicyInfo
91 , PolicyInfo
87 , pinfoName
93 , pinfoName
@@ -106,16 +112,15 @@ module Network.PagerDuty.REST.Services
106 , svcSeverityFilter
112 , svcSeverityFilter
109−import Control.Lens hiding (Empty)
115+import Control.Lens
110−import Data.Aeson.Lens
116+import Data.Aeson.Lens
111−import Data.Text (Text)
117+import Data.ByteString.Builder (Builder)
112−import Data.Time
118+import Data.Text (Text)
113−import Network.HTTP.Types
119+import Network.HTTP.Types
114−import Network.PagerDuty.Internal.TH
120+import Network.PagerDuty.TH
115−import Network.PagerDuty.Internal.Types
121+import Network.PagerDuty.Types
116−import Network.PagerDuty.REST.Services.EmailFilters
118−default (Path)
123+default (Builder)
120services :: Path
125services :: Path
121services = "services"
126services = "services"
@@ -133,7 +138,8 @@ data IncidentCounts = IncidentCounts
133 , _cntTotal :: !Int
138 , _cntTotal :: !Int
134 } deriving (Eq, Show)
139 } deriving (Eq, Show)
141+deriveJSON ''IncidentCounts
136−deriveRecord ''IncidentCounts
142+makeLenses ''IncidentCounts
138data EmailIncidentCreation
144data EmailIncidentCreation
139 = OnNewEmail
145 = OnNewEmail
@@ -144,7 +150,7 @@ data EmailIncidentCreation
144 -- ^ Open a new incident only if an open incident does not already exist.
150 -- ^ Open a new incident only if an open incident does not already exist.
145 deriving (Eq, Show)
151 deriving (Eq, Show)
147−deriveNullary ''EmailIncidentCreation
153+deriveJSON ''EmailIncidentCreation
149data EmailFilterMode
155data EmailFilterMode
150 = AllEmail
156 = AllEmail
@@ -155,7 +161,7 @@ data EmailFilterMode
155 -- ^ Accept email only if it matches ALL of the rules below
161 -- ^ Accept email only if it matches ALL of the rules below
156 deriving (Eq, Show)
162 deriving (Eq, Show)
158−deriveNullaryWith hyphenated ''EmailFilterMode
164+deriveJSONWith hyphenated ''EmailFilterMode
160data ServiceStatus
166data ServiceStatus
@@ -171,7 +177,7 @@ data ServiceStatus
171 -- ^ The service is disabled and will not have any new triggered incidents.
177 -- ^ The service is disabled and will not have any new triggered incidents.
172 deriving (Eq, Show)
178 deriving (Eq, Show)
174−deriveNullary ''ServiceStatus
180+deriveJSON ''ServiceStatus
176data ServiceType
182data ServiceType
177 = CloudKick
183 = CloudKick
@@ -184,14 +190,72 @@ data ServiceType
184 | SqlMonitor
190 | SqlMonitor
185 deriving (Eq, Show)
191 deriving (Eq, Show)
187−deriveNullary ''ServiceType
193+deriveJSON ''ServiceType
189data PolicyInfo = PolicyInfo
195data PolicyInfo = PolicyInfo
190− { _pinfoId :: EscalationPolicyId
196+ { _pinfoId :: PolicyId
191 , _pinfoName :: Text
197 , _pinfoName :: Text
192 } deriving (Eq, Show)
198 } deriving (Eq, Show)
194−deriveRecord ''PolicyInfo
200+makeLenses ''PolicyInfo
201+deriveJSON ''PolicyInfo
209+deriveJSONWith hyphenated ''MatchMode
211+-- FIXME: Tighten up this type! Make the regex required for match/no-match.
212+data EmailFilters = EmailFilters
213+ { _efsId :: EmailFilterId
214+ , _efsSubjectMode :: Maybe MatchMode
215+ , _efsSubjectRegex :: Maybe Text
216+ , _efsBodyMode :: Maybe MatchMode
217+ , _efsBodyRegex :: Maybe Text
218+ , _efsFromEmailMode :: Maybe MatchMode
219+ , _efsFromEmailRegex :: Maybe Text
220+ } deriving (Eq, Show)
222+deriveJSON ''EmailFilters
224+-- | The email filter ID.
225+makeLens "_efsId" ''EmailFilters
227+-- | One of always, match, no-match, which, respectively, means to not filter
228+-- the email trigger by subject, filter it if the email subject matches the
229+-- given regex, or filter if it doesn't match the given regex.
231+-- Defaults to always.
232+makeLens "_efsSubjectMode" ''EmailFilters
234+-- | The regex to be used when subject_mode is match or no-match.
235+-- It is a required parameter on such cases.
236+makeLens "_efsSubjectRegex" ''EmailFilters
238+-- | One of always, match, no-match, which, respectively, means to not filter
239+-- the email trigger by body, filter it if the body email matches the given regex,
240+-- or filter if it doesn't match the given regex.
242+-- Defaults to always.
243+makeLens "_efsBodyMode" ''EmailFilters
245+-- | The regex to be used when body_mode is match or no-match.
246+-- It is a required parameter on such cases.
247+makeLens "_efsBodyRegex" ''EmailFilters
249+-- | One of always, match, no-match, which, respectively, means to not filter
250+-- the email trigger by its from address, filter it if the email from address
251+-- matches the given regex, or filter if it doesn't match the given regex.
253+-- Defaults to always.
254+makeLens "_efsFromEmailMode" ''EmailFilters
256+-- | The regex to be used when from_email_mode is match or no-match.
257+-- It is a required parameter on such cases.
258+makeLens "_efsFromEmailRegex" ''EmailFilters
196data SeverityFilter
260data SeverityFilter
197 = SevCritical
261 = SevCritical
@@ -206,7 +270,7 @@ data SeverityFilter
206 -- ^ SQL Monitor: Incidents are created for with high or medium severity
270 -- ^ SQL Monitor: Incidents are created for with high or medium severity
207 deriving (Eq, Show)
271 deriving (Eq, Show)
209−deriveNullaryWith (dropped 3 underscored) ''SeverityFilter
273+deriveJSONWith (dropped 3 underscored) ''SeverityFilter
211data Service = Service
275data Service = Service
212 { _svcId :: ServiceId
276 { _svcId :: ServiceId
@@ -223,8 +287,8 @@ data Service = Service
223 , _svcIncidentCounts :: IncidentCounts
287 , _svcIncidentCounts :: IncidentCounts
224 , _svcEmailFilterMode :: EmailFilterMode
288 , _svcEmailFilterMode :: EmailFilterMode
225 , _svcType :: ServiceType
289 , _svcType :: ServiceType
226− , _svcEscalationPolicy :: Maybe PolicyInfo -- FIXME: extract from inline.
290+ , _svcEscalationPolicy :: Maybe PolicyInfo -- FIXME: extract from inline.
227− , _svcEmailFilters :: Maybe [EmailFilterInfo] -- FIXME: extract from inline.
291+ , _svcEmailFilters :: Maybe EmailFilters -- FIXME: extract from inline.
228 , _svcSeverityFilter :: Maybe SeverityFilter
292 , _svcSeverityFilter :: Maybe SeverityFilter
229 } deriving (Eq, Show)
293 } deriving (Eq, Show)
@@ -256,17 +320,13 @@ makeLens "_svcAutoResolveTimeout" ''Service
256makeLens "_svcAcknowledgementTimeout" ''Service
320makeLens "_svcAcknowledgementTimeout" ''Service
258-- | The date/time when this service was created.
322-- | The date/time when this service was created.
259−svcCreatedAt :: Lens' Service UTCTime
323+makeLens "_svcCreatedAt" ''Service
260−svcCreatedAt = lens _svcCreatedAt (\s x -> s { _svcCreatedAt = x }) . _D
262-- | The current state of the Service.
325-- | The current state of the Service.
263makeLens "_svcStatus" ''Service
326makeLens "_svcStatus" ''Service
265-- | The date/time when the most recent incident was created for this service.
328-- | The date/time when the most recent incident was created for this service.
266−svcLastIncidentTimestamp :: Lens' Service (Maybe UTCTime)
329+makeLens "_svcLastIncidentTimestamp" ''Service
267−svcLastIncidentTimestamp =
268− lens _svcLastIncidentTimestamp
269− (\s x -> s { _svcLastIncidentTimestamp = x }) . mapping _D
271-- | If the service is a Generic Email service, this describes what kind of
331-- | If the service is a Generic Email service, this describes what kind of
272-- emails create an incident.
332-- emails create an incident.
@@ -294,35 +354,36 @@ makeLens "_svcEmailFilters" ''Service
294makeLens "_svcSeverityFilter" ''Service
354makeLens "_svcSeverityFilter" ''Service
296newtype ListServices = ListServices
356newtype ListServices = ListServices
297− { _lsTimeZone' :: Maybe TZ
357+ { _lsTimeZone' :: Maybe TimeZone
298 } deriving (Eq, Show)
358 } deriving (Eq, Show)
300instance Paginate ListServices
360instance Paginate ListServices
302−queryRequest ''ListServices
362+deriveJSON ''ListServices
303−
363+makeLenses ''ListServices
304−-- | Time zone in which dates in the result will be rendered.
306−-- /Default:/ account default time zone.
307−lsTimeZone :: Lens' (Request ListServices s r) (Maybe TimeZone)
308−lsTimeZone = upd.lsTimeZone'.mapping _TZ
310-- | List existing services.
365-- | List existing services.
312-- @GET \/services@
367-- @GET \/services@
314−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/list>
369+-- See: <http://developer.pagerduty.com/documentation/rest/services/list>
315listServices :: Request ListServices s [Service]
370listServices :: Request ListServices s [Service]
316listServices =
371listServices =
317 mk ListServices
372 mk ListServices
318 { _lsTimeZone' = Nothing
373 { _lsTimeZone' = Nothing
319 } & path .~ services
374 } & path .~ services
320− & query .~ includes
375+ & query <>~ includes
321 & unwrap .~ key "escalation_policies"
376 & unwrap .~ key "escalation_policies"
378+-- | Time zone in which dates in the result will be rendered.
380+-- Defaults to account default time zone.
381+lsTimeZone :: Lens' (Request ListServices s r) (Maybe TimeZone)
382+lsTimeZone = upd.lsTimeZone'
323data CreateService = CreateService
384data CreateService = CreateService
324 { _csName' :: Text
385 { _csName' :: Text
325− , _csEscalationPolicyId' :: EscalationPolicyId
386+ , _csEscalationPolicyId' :: PolicyId
326 , _csType' :: !ServiceType
387 , _csType' :: !ServiceType
327 , _csVendorId' :: Maybe VendorId
388 , _csVendorId' :: Maybe VendorId
328 , _csDescription' :: Maybe Text
389 , _csDescription' :: Maybe Text
@@ -331,7 +392,30 @@ data CreateService = CreateService
331 , _csSeverityFilter' :: Maybe SeverityFilter
392 , _csSeverityFilter' :: Maybe SeverityFilter
332 } deriving (Eq, Show)
393 } deriving (Eq, Show)
334−jsonRequest ''CreateService
395+deriveJSON ''CreateService
396+makeLenses ''CreateService
398+-- | Creates a new service.
402+-- See: <http://developer.pagerduty.com/documentation/rest/services/create>
403+createService :: Text
406+ -> Request CreateService s Service
407+createService n p t =
410+ , _csEscalationPolicyId' = p
412+ , _csVendorId' = Nothing
413+ , _csDescription' = Nothing
414+ , _csAcknowledgementTimeout' = Nothing
415+ , _csAutoResolveTimeout' = Nothing
416+ , _csSeverityFilter' = Nothing
417+ } & path .~ services
418+ & unwrap .~ key "service"
336-- | The name of the service.
420-- | The name of the service.
337csName :: Lens' (Request CreateService s r) Text
421csName :: Lens' (Request CreateService s r) Text
@@ -351,19 +435,19 @@ csVendorId :: Lens' (Request CreateService s r) (Maybe VendorId)
351csVendorId = upd.csVendorId'
435csVendorId = upd.csVendorId'
353-- | The id of the escalation policy to be used by this service.
437-- | The id of the escalation policy to be used by this service.
354−csEscalationPolicyId :: Lens' (Request CreateService s r) EscalationPolicyId
438+csEscalationPolicyId :: Lens' (Request CreateService s r) PolicyId
355csEscalationPolicyId = upd.csEscalationPolicyId'
439csEscalationPolicyId = upd.csEscalationPolicyId'
357-- | The duration in seconds before an incidents acknowledged in this service
441-- | The duration in seconds before an incidents acknowledged in this service
358-- become triggered again.
442-- become triggered again.
360−-- /Default:/ 30 minutes.
444+-- Defaults to 30 minutes.
361csAcknowledgementTimeout :: Lens' (Request CreateService s r) (Maybe Int)
445csAcknowledgementTimeout :: Lens' (Request CreateService s r) (Maybe Int)
362csAcknowledgementTimeout = upd.csAcknowledgementTimeout'
446csAcknowledgementTimeout = upd.csAcknowledgementTimeout'
364-- | The duration in seconds before a triggered incident auto-resolves itself.
448-- | The duration in seconds before a triggered incident auto-resolves itself.
366−-- /Default:/ 4 hours.
450+-- Defaults to 4 hours.
367csAutoResolveTimeout :: Lens' (Request CreateService s r) (Maybe Int)
451csAutoResolveTimeout :: Lens' (Request CreateService s r) (Maybe Int)
368csAutoResolveTimeout = upd.csAutoResolveTimeout'
452csAutoResolveTimeout = upd.csAutoResolveTimeout'
@@ -371,33 +455,11 @@ csAutoResolveTimeout = upd.csAutoResolveTimeout'
371csSeverityFilter :: Lens' (Request CreateService s r) (Maybe SeverityFilter)
455csSeverityFilter :: Lens' (Request CreateService s r) (Maybe SeverityFilter)
372csSeverityFilter = upd.csSeverityFilter'
456csSeverityFilter = upd.csSeverityFilter'
374−-- | Creates a new service.
378−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/create>
379−createService :: Text
380− -> EscalationPolicyId
382− -> Request CreateService s Service
383−createService n p t =
386− , _csEscalationPolicyId' = p
388− , _csVendorId' = Nothing
389− , _csDescription' = Nothing
390− , _csAcknowledgementTimeout' = Nothing
391− , _csAutoResolveTimeout' = Nothing
392− , _csSeverityFilter' = Nothing
393− } & path .~ services
394− & unwrap .~ key "service"
396-- | Get details about an existing service.
458-- | Get details about an existing service.
398-- @GET services\/\:id@
460-- @GET services\/\:id@
400−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/show>
462+-- See: <http://developer.pagerduty.com/documentation/rest/services/show>
401getService :: ServiceId -> Request Empty s Service
463getService :: ServiceId -> Request Empty s Service
402getService i = empty
464getService i = empty
403 & path .~ services % i
465 & path .~ services % i
@@ -407,13 +469,32 @@ getService i = empty
407data UpdateService = UpdateService
469data UpdateService = UpdateService
408 { _usName' :: Maybe Text
470 { _usName' :: Maybe Text
409 , _usDescription' :: Maybe Text
471 , _usDescription' :: Maybe Text
410− , _usEscalationPolicyId' :: Maybe EscalationPolicyId
472+ , _usEscalationPolicyId' :: Maybe PolicyId
411 , _usAcknowledgementTimeout' :: Maybe Int
473 , _usAcknowledgementTimeout' :: Maybe Int
412 , _usAutoResolveTimeout' :: Maybe Int
474 , _usAutoResolveTimeout' :: Maybe Int
413 , _usSeverityFilter' :: Maybe SeverityFilter
475 , _usSeverityFilter' :: Maybe SeverityFilter
414 } deriving (Eq, Show)
476 } deriving (Eq, Show)
478+deriveJSON ''UpdateService
416−jsonRequest ''UpdateService
479+makeLenses ''UpdateService
481+-- | Update an existing service.
483+-- @PUT services\/\:id@
485+-- See: <http://developer.pagerduty.com/documentation/rest/services/update>
486+updateService :: ServiceId -> Request UpdateService s Service
489+ { _usName' = Nothing
490+ , _usEscalationPolicyId' = Nothing
491+ , _usDescription' = Nothing
492+ , _usAcknowledgementTimeout' = Nothing
493+ , _usAutoResolveTimeout' = Nothing
494+ , _usSeverityFilter' = Nothing
496+ & path .~ services % i
497+ & unwrap .~ key "service"
418-- | The name of the service.
499-- | The name of the service.
419usName :: Lens' (Request UpdateService s r) (Maybe Text)
500usName :: Lens' (Request UpdateService s r) (Maybe Text)
@@ -424,19 +505,19 @@ usDescription :: Lens' (Request UpdateService s r) (Maybe Text)
424usDescription = upd.usDescription'
505usDescription = upd.usDescription'
426-- | The id of the escalation policy to be used by this service.
507-- | The id of the escalation policy to be used by this service.
427−usEscalationPolicyId :: Lens' (Request UpdateService s r) (Maybe EscalationPolicyId)
508+usEscalationPolicyId :: Lens' (Request UpdateService s r) (Maybe PolicyId)
428usEscalationPolicyId = upd.usEscalationPolicyId'
509usEscalationPolicyId = upd.usEscalationPolicyId'
430-- | The duration in seconds before an incidents acknowledged in this service
511-- | The duration in seconds before an incidents acknowledged in this service
431-- become triggered again.
512-- become triggered again.
433−-- /Default:/ 30 minutes.
514+-- Defaults to 30 minutes.
434usAcknowledgementTimeout :: Lens' (Request UpdateService s r) (Maybe Int)
515usAcknowledgementTimeout :: Lens' (Request UpdateService s r) (Maybe Int)
435usAcknowledgementTimeout = upd.usAcknowledgementTimeout'
516usAcknowledgementTimeout = upd.usAcknowledgementTimeout'
437-- | The duration in seconds before a triggered incident auto-resolves itself.
518-- | The duration in seconds before a triggered incident auto-resolves itself.
439−-- /Default:/ 4 hours.
520+-- Defaults to 4 hours.
440usAutoResolveTimeout :: Lens' (Request UpdateService s r) (Maybe Int)
521usAutoResolveTimeout :: Lens' (Request UpdateService s r) (Maybe Int)
441usAutoResolveTimeout = upd.usAutoResolveTimeout'
522usAutoResolveTimeout = upd.usAutoResolveTimeout'
@@ -444,31 +525,13 @@ usAutoResolveTimeout = upd.usAutoResolveTimeout'
444usSeverityFilter :: Lens' (Request UpdateService s r) (Maybe SeverityFilter)
525usSeverityFilter :: Lens' (Request UpdateService s r) (Maybe SeverityFilter)
445usSeverityFilter = upd.usSeverityFilter'
526usSeverityFilter = upd.usSeverityFilter'
447−-- | Update an existing service.
449−-- @PUT services\/\:id@
451−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/update>
452−updateService :: ServiceId -> Request UpdateService s Service
455− { _usName' = Nothing
456− , _usEscalationPolicyId' = Nothing
457− , _usDescription' = Nothing
458− , _usAcknowledgementTimeout' = Nothing
459− , _usAutoResolveTimeout' = Nothing
460− , _usSeverityFilter' = Nothing
462− & path .~ services % i
463− & unwrap .~ key "service"
465-- | Delete an existing service. Once the service is deleted, it will not be
528-- | Delete an existing service. Once the service is deleted, it will not be
466-- accessible from the web UI and new incidents won't be able to be created
529-- accessible from the web UI and new incidents won't be able to be created
467-- for this service.
530-- for this service.
469-- @DELETE \/services/:id@
532-- @DELETE \/services/:id@
471−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/delete>
534+-- See: <http://developer.pagerduty.com/documentation/rest/services/delete>
472deleteService :: ServiceId -> Request Empty s Empty
535deleteService :: ServiceId -> Request Empty s Empty
473deleteService i = empty & meth .~ DELETE & path .~ services % i
536deleteService i = empty & meth .~ DELETE & path .~ services % i
@@ -476,14 +539,13 @@ deleteService i = empty & meth .~ DELETE & path .~ services % i
477-- @PUT services\/\:id\/enable@
540-- @PUT services\/\:id\/enable@
479−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/enable>
542+-- See: <http://developer.pagerduty.com/documentation/rest/services/enable>
480enableService :: RequesterId -> ServiceId -> Request Empty s Empty
543enableService :: RequesterId -> ServiceId -> Request Empty s Empty
482− auth (enableServiceBasic i) & query .~ [("requester_id", r)]
544+enableService r i = auth (enableServiceBasic i) & query .~ [("requester_id", r)]
484-- | A version of 'enableService' which uses HTTP Basic authentication and
546-- | A version of 'enableService' which uses HTTP Basic authentication and
485-- doesn't require a 'RequesterId'.
547-- doesn't require a 'RequesterId'.
486−enableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
548+enableServiceBasic :: ServiceId -> Request Empty Basic Empty
487enableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "enable"
549enableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "enable"
489-- | Disable a service. Once a service is disabled, it will not be able to
551-- | Disable a service. Once a service is disabled, it will not be able to
@@ -491,14 +553,13 @@ enableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "enable"
492-- @PUT services\/\:id\/disable@
554-- @PUT services\/\:id\/disable@
494−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/disable>
556+-- See: <http://developer.pagerduty.com/documentation/rest/services/disable>
495disableService :: RequesterId -> ServiceId -> Request Empty s Empty
557disableService :: RequesterId -> ServiceId -> Request Empty s Empty
497− auth (disableServiceBasic i) & query .~ [("requester_id", r)]
558+disableService r i = auth (disableServiceBasic i) & query .~ [("requester_id", r)]
499-- | A version of 'disableService' which uses HTTP Basic authentication and
560-- | A version of 'disableService' which uses HTTP Basic authentication and
500-- doesn't require a 'RequesterId'.
561-- doesn't require a 'RequesterId'.
501−disableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
562+disableServiceBasic :: ServiceId -> Request Empty Basic Empty
502disableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "disable"
563disableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "disable"
504-- | Regenerate a new service key for an existing service.
565-- | Regenerate a new service key for an existing service.
@@ -508,6 +569,6 @@ disableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "disable"
509-- @POST services\/\:id\/regenerate_key@
570-- @POST services\/\:id\/regenerate_key@
511−-- /See:/ <http://developer.pagerduty.com/documentation/rest/services/regenerate_key>
572+-- See: <http://developer.pagerduty.com/documentation/rest/services/regenerate_key>
512regenerateKey :: ServiceId -> Request Empty s Service
573regenerateKey :: ServiceId -> Request Empty s Service
513regenerateKey i = empty & meth .~ POST & path .~ services % i % "regenerate_key"
574regenerateKey i = empty & meth .~ POST & path .~ services % i % "regenerate_key"