/* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* Ċ Ġ* ĠThe ĠOpen Search ĠContributors Ġrequire Ġcontributions Ġmade Ġto Ċ Ġ* Ġthis Ġfile Ġbe Ġlicensed Ġunder Ġthe ĠApache - 2 . 0 Ġlicense Ġor Ġa Ċ Ġ* Ġcompatible Ġopen Ġsource Ġlicense . Ċ Ġ* Ċ Ġ* ĠMod ifications ĠCopyright ĠOpen Search ĠContributors . ĠSee Ċ Ġ* ĠGitHub Ġhistory Ġfor Ġdetails . Ċ Ġ*/ Ċ Ċ /* Ċ Ġ* ĠĠ ĠCopyright Ġ 2 0 1 9 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "). Ċ Ġ* ĠĠ ĠYou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠ ĠA Ġcopy Ġof Ġthe ĠLicense Ġis Ġlocated Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠ Ġor Ġin Ġthe Ġ" license " Ġfile Ġaccompanying Ġthis Ġfile . ĠThis Ġfile Ġis Ġdistributed Ċ Ġ* ĠĠ Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ċ Ġ* ĠĠ Ġexpress Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ċ Ġ* ĠĠ Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . amazon . opend ist ro fore lastic search . alert ing . rest handler Ċ Ċ import Ġcom . amazon . opend ist ro fore lastic search . alert ing . Alert ing Plugin Ċ import Ġcom . amazon . opend ist ro fore lastic search . alert ing . action . Execute Monitor Action Ċ import Ġcom . amazon . opend ist ro fore lastic search . alert ing . action . Execute Monitor Request Ċ import Ġcom . amazon . opend ist ro fore lastic search . alert ing . model . Monitor Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġorg . opense arch . client . node . Node Client Ċ import Ġorg . opense arch . common . unit . Time Value Ċ import Ġorg . opense arch . common . x content . X Content Parser . Token . START _ OBJECT Ċ import Ġorg . opense arch . common . x content . X Content Parser Utils . ensure Expected Token Ċ import Ġorg . opense arch . rest . Base Rest Handler Ċ import Ġorg . opense arch . rest . Base Rest Handler . Rest Channel Consumer Ċ import Ġorg . opense arch . rest . Rest Handler . Route Ċ import Ġorg . opense arch . rest . Rest Request Ċ import Ġorg . opense arch . rest . Rest Request . Method . POST Ċ import Ġorg . opense arch . rest . action . Rest To X Content Listener Ċ import Ġjava . time . Instant Ċ Ċ private Ġval Ġlog Ġ= ĠLog Manager . getLogger ( Rest Execute Monitor Action :: class . java ) Ċ Ċ class ĠRest Execute Monitor Action Ġ: ĠBase Rest Handler () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ= Ġ" execute _ monitor _ action " ĊĊĠĠĠ Ġoverride Ġfun Ġroutes (): ĠList < Route > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute ( POST , Ġ"${ Alert ing Plugin . MONITOR _ BASE _ URI }/{ monitor ID }/ _ execute "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute ( POST , Ġ"${ Alert ing Plugin . MONITOR _ BASE _ URI }/ _ execute ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprepare Request ( request : ĠRest Request , Ġclient : ĠNode Client ): ĠRest Channel Consumer Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug ("${ request . method ()} Ġ${ Alert ing Plugin . MONITOR _ BASE _ URI }/ _ execute ") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRest Channel Consumer Ġ{ Ġchannel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdry run Ġ= Ġrequest . param As Boolean (" dry run ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest End Ġ= Ġrequest . param As Time (" period _ end ", ĠTime Value ( Instant . now (). to Epoch Milli ())) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request . has Param (" monitor ID ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonitor Id Ġ= Ġrequest . param (" monitor ID ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexec Monitor Request Ġ= ĠExecute Monitor Request ( dry run , Ġrequest End , Ġmonitor Id , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . execute ( Execute Monitor Action . INSTANCE , Ġexec Monitor Request , ĠRest To X Content Listener ( channel )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx cp Ġ= Ġrequest . content Parser () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Expected Token ( START _ OBJECT , Ġx cp . nextToken (), Ġx cp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonitor Ġ= ĠMonitor . parse ( x cp , ĠMonitor . NO _ ID , ĠMonitor . NO _ VERSION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexec Monitor Request Ġ= ĠExecute Monitor Request ( dry run , Ġrequest End , Ġnull , Ġmonitor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . execute ( Execute Monitor Action . INSTANCE , Ġexec Monitor Request , ĠRest To X Content Listener ( channel )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresponse Params (): ĠSet < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġset Of (" dry run ", Ġ" period _ end ", Ġ" monitor ID ") ĊĠĠĠ Ġ} Ċ } Ċ