package Ġno . sk at te et aten . aur ora . go bo . integration . b oo ber Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġmu . Kotlin Logging Ċ import Ġno . sk at te et aten . aur ora . go bo . graphql . application deployment . Application Deployment Ref Ċ import Ġno . sk at te et aten . aur ora . go bo . graphql . application deployment . Delete Application Deployment Input Ċ import Ġno . sk at te et aten . aur ora . go bo . graphql . aur or acon fig . Application Deployment Spec Ċ import Ġno . sk at te et aten . aur ora . go bo . integration . Response Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{ Ġ} Ċ Ċ @ Service Ċ class ĠApplication Deployment Service ( private Ġval Ġb oo ber Web Client : ĠB oo ber Web Client ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġdelete Application Deployment ( ĊĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠ Ġinput : ĠDelete Application Deployment Input ĊĠĠĠ Ġ) Ġ= Ġdelete Application Deployments ( token , ĠlistOf ( input )) ĊĊĠĠĠ Ġsuspend Ġfun Ġdelete Application Deployments ( token : ĠString , Ġapplication Refs : ĠList < Delete Application Deployment Input >) Ġ= ĊĠĠĠĠĠĠĠ Ġb oo ber Web Client . post < B oo ber Delete Response >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"/ v 1 / application deployment / delete ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġtoken , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġmap Of (" application Refs " Ġto Ġapplication Refs ) ĊĠĠĠĠĠĠĠ Ġ). responses (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug Ġ{ Ġ" Response Ġfrom Ġb oo ber Ġdelete Ġapplication Ġdeployment : Ġ$ it " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġdeploy ( ĊĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠ Ġa ur ora Config : ĠString , ĊĠĠĠĠĠĠĠ Ġreference : ĠString , ĊĠĠĠĠĠĠĠ Ġpayload : ĠApply Payload ĊĠĠĠ Ġ): ĠResponse < Deploy Resource > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"/ v 1 / apply /{ aur ora Config }? reference ={ reference }" ĊĠĠĠĠĠĠĠ Ġreturn Ġb oo ber Web Client ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= Ġmap Of (" aur ora Config " Ġto Ġa ur ora Config , Ġ" reference " Ġto Ġreference ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġpayload , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġthis Ġshould Ġsupport Ġ Ġa Ġlist Ġof Ġapplication Spec Commands Ġthat Ġalso Ġtakes Ġin Ġresponse Type Ġand ĠDefaults . ĊĠĠĠ Ġ// ĠTODO ĠShould Ġwe Ġmove Ġthe Ġdefault / formatting Ġcode Ġhere Ġinstead Ġof Ġin Ġb oo ber ? ĊĠĠĠ Ġsuspend Ġfun Ġget Spec ( ĊĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠ Ġa ur ora Config Name : ĠString , ĊĠĠĠĠĠĠĠ Ġa ur ora Config Reference : ĠString , ĊĠĠĠĠĠĠĠ Ġapplication Deployment Reference List : ĠList < Application Deployment Ref > ĊĠĠĠ Ġ): ĠList < Application Deployment Spec > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġad rs Ġ= Ġapplication Deployment Reference List . join ToString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ it . environment }/${ it . application }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġb oo ber Web Client . get < JsonNode >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"/ v 1 / aur or ade ploys pec /{ aur ora Config }? adr ={ adr }& reference ={ aur ora Config Reference }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= Ġmap Of (" aur ora Config " Ġto Ġa ur ora Config Name , Ġ" adr " Ġto Ġad rs , Ġ" aur ora Config Reference " Ġto Ġa ur ora Config Reference ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġtoken ĊĠĠĠĠĠĠĠ Ġ). responses (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Deployment Spec ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠDeploy Resource ( ĊĠĠĠ Ġval Ġa ur ora Config Ref : ĠA ur ora Config Ref Resource , ĊĠĠĠ Ġval Ġapplication Deployment Id : ĠString , ĊĠĠĠ Ġval Ġdeployment Spec : ĠJsonNode , ĊĠĠĠ Ġval Ġdeploy Id : ĠString , ĊĠĠĠ Ġval Ġopen Shift Responses : ĠList < JsonNode >, ĊĠĠĠ Ġval Ġsuccess : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġval Ġreason : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġtag Response : ĠJsonNode ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġproject Exist : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġwarnings : ĠList < String > Ġ= Ġempty List () Ċ ) Ġ{ ĊĠĠĠ Ġval Ġsuccess String Ġ= Ġif Ġ( success ) Ġ" DEPLOY ED " Ġelse Ġ" FAILED " Ċ } Ċ Ċ data Ġclass ĠA ur ora Config Ref Resource ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġref Name : ĠString , ĊĠĠĠ Ġval Ġresolved Ref : ĠString Ċ ) Ċ Ċ data Ġclass ĠB oo ber Exists Response ( ĊĠĠĠ Ġval Ġapplication Ref : ĠB oo ber Application Ref , ĊĠĠĠ Ġval Ġexists : ĠBoolean , ĊĠĠĠ Ġval Ġsuccess : ĠBoolean , ĊĠĠĠ Ġval Ġmessage : ĠString Ċ ) Ċ Ċ data Ġclass ĠB oo ber Delete Response ( ĊĠĠĠ Ġval Ġapplication Ref : ĠB oo ber Application Ref , ĊĠĠĠ Ġval Ġsuccess : ĠBoolean , ĊĠĠĠ Ġval Ġreason : ĠString Ċ ) Ċ Ċ data Ġclass ĠB oo ber Application Ref ( val Ġnamespace : ĠString , Ġval Ġname : ĠString ) Ċ