package Ġorg . jetbrains . plugins . http x . code Insight Ċ Ċ import Ġorg . apache . tools . ant . types . Command line Ċ import Ġorg . jetbrains . plugins . http x . json . Json Utils Ċ import Ġorg . jetbrains . plugins . http x . rest Client . execution . aliyun . Product Ċ Ċ class ĠAli yun Cli Parser ( val Ġtext : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġservice Code : ĠString ĊĠĠĠ Ġprivate Ġval Ġaction Name : ĠString ĊĠĠĠ Ġprivate Ġval Ġparams : ĠArray < String >? ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġali yun Ġal id ns ĠAdd G tm Address Pool Ġ-- region Ġcn - q ing dao Ġ-- InstanceId Ġxxx ĊĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġtext . split (' Ġ', Ġignore Case Ġ= Ġfalse , Ġlimit Ġ= Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġservice Code Ġ= Ġparts [ 1 ] ĊĠĠĠĠĠĠĠ Ġaction Name Ġ= Ġparts [ 2 ] ĊĠĠĠĠĠĠĠ Ġparams Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parts . size Ġ> Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand line . translate Command line ( parts [ 3 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠhttpRequest Code ( product : ĠProduct ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbuilder . append ('\ n ') ĊĠĠĠĠĠĠĠ Ġbuilder . append (" ### Ġali yun Ġrequest Ġconverted Ġfrom Ġcli : Ġ"). append ( text ). append ('\ n ') ĊĠĠĠĠĠĠĠ Ġval Ġparams Map Ġ= Ġif Ġ( params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġparams . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Map Ġ= Ġmutable Map Of < String , ĠAny >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlen Ġstep Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġname Ġ= Ġparams [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name . startsWith ("-- ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname . substring ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġif Ġ( len Ġ> Ġi Ġ+ Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [ i Ġ+ Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . matches ("[ 1 - 9 ]\\ d { 0 , 8 }". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Map [ name ] Ġ= Ġvalue . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Map [ name ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Map ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Map Of () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġregion Id Ġ= Ġif Ġ( params Map . containsKey (" region ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams Map . remove (" region ") Ġas ĠString ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġproduct . find Endpoint By Region ( region Id ) ĊĠĠĠĠĠĠĠ Ġbuilder . append (" ALI Y UN Ġ"). append ( host ). append (" ? Action =" ). append ( action Name ). append ('\ n ') ĊĠĠĠĠĠĠĠ Ġif Ġ( region Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" X - Region - Id : Ġ"). append ( region Id ). append ('\ n ') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( params Map . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġclean Ġsub Ġparams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Params : ĠMutable Map < String , ĠMutable Map < Int , ĠMutable Map < String , ĠAny >>> Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremoved Keys Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams Map . filter Ġ{ Ġit . key . contains (".") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( name , Ġvalue ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġname . split ('.', Ġignore Case Ġ= Ġfalse , Ġlimit Ġ= Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Name Ġ= Ġparts [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġparts [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Name Ġ= Ġparts [ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sub Params . containsKey ( main Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Params [ main Name ] Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sub Params [ main Name ] !!. containsKey ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Params [ main Name ] ! ![ position ] Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Params [ main Name ] ! ![ position ] ! ![ sub Name ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremoved Keys . add ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremoved Keys . forEach Ġ{ Ġparams Map . remove ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Params . forEach Ġ{ Ġ( name , Ġsub Params Pairs ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams List Ġ= Ġmutable ListOf < Map < String , ĠAny >>() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Params Pairs . keys . to Sorted Set (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams List . add ( sub Params Pairs [ it ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Map [ name ] Ġ= Ġparams List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" Content - Type : Ġapplication / json "). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( Json Utils . object Mapper . writer WithDefault PrettyPrinter (). writeValue AsString ( params Map )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('\ n ') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} Ċ Ċ }