// ĠCopyright Ġ 2 0 1 8 ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġsoftware . aws . tool k its . jetbrains . services . lambda . upload Ċ Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . openapi . action System . Lang Data Keys Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġicons . Aws Icons Ċ import Ġsoftware . amazon . aw ssdk . services . lambda . model . Runtime Ċ import Ġsoftware . aws . tool k its . jetbrains . core . Aws Client Manager Ċ import Ġsoftware . aws . tool k its . jetbrains . services . lambda . Lambda Pack ager Ċ import Ġsoftware . aws . tool k its . jetbrains . services . lambda . runtime Group Ċ import Ġsoftware . aws . tool k its . jetbrains . utils . notify Error Ċ import Ġsoftware . aws . tool k its . jetbrains . utils . notify Info Ċ import Ġsoftware . aws . tool k its . resources . message Ċ Ċ class ĠUpload Lambda Function ( private Ġval Ġhandler Name : ĠString ) Ġ: ĠAn Action ( message (" lambda . create _ new "), Ġnull , ĠAws Icons . Actions . L AMBDA _ FUNCTION _ NEW ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( event : ĠAn ActionEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġevent ?. getData ( Lang Data Keys . MODULE ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpsi File Ġ= Ġevent . getData ( Lang Data Keys . P SI _ FILE ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpack ager Ġ= Ġpsi File . language . runtime Group ?. let Ġ{ ĠLambda Pack ager . getInstance ( it ) Ġ} Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġmodule . project ĊĠĠĠĠĠĠĠ Ġval Ġlambda Creator Ġ= ĠLambda Creator Factory . create ( Aws Client Manager . getInstance ( project ), Ġpack ager ) ĊĠĠĠĠĠĠĠ ĠUpload To Lambda Modal ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpack ager . determine Runtime ( module , Ġpsi File ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler Name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpload To Lambda Validator () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġperform Upload ( module , Ġpsi File , Ġlambda Creator , Ġit ) Ġ}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġperform Upload ( module : ĠModule , Ġpsi File : ĠPsi File , Ġcreator : ĠLambda Creator , Ġfunction Details : ĠFunction Upload Details ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreator . create Lambda ( function Details , Ġmodule , Ġpsi File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. when Complete Ġ{ Ġfunction , Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage (" lambda . function _ created . notification ", Ġfunction Details . name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Ġ= Ġmodule . project ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġis ĠException Ġ-> Ġerror . notify Error ( title Ġ= Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠFunction Upload Details ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġhandler : ĠString , ĊĠĠĠ Ġval Ġiam Role : ĠI am Role , ĊĠĠĠ Ġval Ġs 3 Bucket : ĠString , ĊĠĠĠ Ġval Ġruntime : ĠRuntime , ĊĠĠĠ Ġval Ġdescription : ĠString ?, ĊĠĠĠ Ġval Ġenv Vars : ĠMap < String , ĠString >, ĊĠĠĠ Ġval Ġtimeout : ĠInt Ċ ) Ċ Ċ data Ġclass ĠI am Role ( val Ġname : ĠString , Ġval Ġar n : ĠString ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} Ċ }