/* Ċ Ġ* ĠCopyright Ġ 2 0 1 7 ĠNet flix , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġ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 . netflix . spin n aker . testing . api Ċ Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . http . Body Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . POST Ċ import Ġretrofit 2 . http . Path Ċ Ċ interface ĠSp inn aker Client Ġ{ ĊĠ Ġ@ GET ("/ health ") ĊĠ Ġfun Ġhealth (): ĠCall < Map < String , ĠAny >> ĊĊĠ Ġ@ POST ("/ tasks ") ĊĠ Ġfun Ġsubmit Task (@ Body Ġtask : ĠTask ): ĠCall < Submitted Task > ĊĊĠ Ġ@ GET ("/ applications /{ application }/ server Groups ") ĊĠ Ġfun Ġget Server Groups For Application (@ Path (" application ") Ġapplication : ĠString ): ĠCall < List < Server Group >> ĊĊĠ Ġ@ GET ("/ applications /{ application }/ server Group Managers ") ĊĠ Ġfun Ġget Server Group Managers For Application (@ Path (" application ") Ġapplication : ĠString ): ĠCall < List < Server Group Manager >> ĊĊĠ Ġ@ GET ("/ applications /{ application }/ tasks ") ĊĠ Ġfun Ġget Tasks For Application (@ Path (" application ") Ġapplication : ĠString ): ĠCall < List < Task Result >> ĊĊĠ Ġ@ GET ("/ tasks /{ taskId }") ĊĠ Ġfun Ġget Task (@ Path (" taskId ") ĠtaskId : ĠString ): ĠCall < Task Result > Ċ } Ċ Ċ data Ġclass ĠServer Group ( val Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregion : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcloud Provider : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreated Time : ĠLong ) Ċ Ċ data Ġclass ĠServer Group Manager ( val Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregion : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcloud Provider : ĠString ) Ċ Ċ data Ġclass ĠTask ( val Ġjob : ĠList < Map < String , ĠAny >>, Ġval Ġapplication : ĠString , Ġval Ġdescription : ĠString ) Ċ Ċ data Ġclass ĠSub mitted Task ( val Ġref : ĠString ) Ċ Ċ data Ġclass ĠTask Result ( val Ġid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvariables : ĠList < Task Variable >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Time : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartTime : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠendTime : ĠLong ) Ġ{ ĊĠ Ġfun Ġget Variable ( key : ĠString ): ĠTask Variable ? Ġ= Ġvariables . find Ġ{ Ġit . key Ġ== Ġkey Ġ} ĊĠ Ġfun Ġget Duration () Ġ= Ġ( endTime Ġ- ĠstartTime ) Ġ/ Ġ 1 0 0 0 ĊĠ Ġfun Ġget Lag () Ġ= Ġ( startTime Ġ- Ġbuild Time ) Ġ/ Ġ 1 0 0 0 Ċ } Ċ Ċ data Ġclass ĠTask Variable ( val Ġkey : ĠString , Ġval Ġvalue : ĠAny ?) Ċ