package Ġcom . cluster . api Ċ Ċ data Ġclass ĠAccount ( val Ġid : ĠString , Ġval Ġinitialized : ĠBoolean Ġ= Ġfalse , Ġval Ġloading : ĠBoolean Ġ= Ġfalse , Ġval Ġinfo : ĠMeta ? Ġ= Ġnull ){ ĊĠĠĠ Ġdata Ġclass ĠMeta ( val Ġadmins : ĠList < String > Ġ= Ġempty List (), Ġval Ġview ers : ĠList < String > Ġ= Ġempty List (), Ġval Ġpending Requests : ĠList < String > Ġ= Ġempty List ()) ĊĠĠĠ Ġenum Ġclass ĠAccess Level { ĠADMIN , ĠVIEW , ĠP ENDING , ĠNONE Ġ} ĊĠĠĠ Ġdata Ġclass ĠAlias ( val ĠaccountId : ĠString , Ġval Ġname : ĠString ) ĊĠĠĠ Ġdata Ġclass ĠUser ( val Ġusername : ĠString , Ġval Ġaccount Aliases : ĠList < Alias > Ġ= Ġempty List ()) ĊĊĠĠĠ Ġdata Ġclass ĠAws Auth ( val Ġaws Access KeyId : ĠString , Ġval Ġaws Secret AccessKey : ĠString , Ġval Ġaws Session Token : ĠString ? Ġ= Ġnull ) ĊĠĠĠ Ġdata Ġclass ĠResource Loader Request ( val ĠaccountId : ĠString , Ġval Ġresource : ĠString , Ġval Ġusername : ĠString , Ġval Ġcredentials : ĠAws Auth , Ġval Ġregion : ĠString ) ĊĊĠĠĠ Ġdata Ġclass ĠAlias Info ( val Ġalias : ĠAlias , Ġval Ġinitialized : ĠBoolean , Ġval Ġloading : ĠBoolean , Ġval Ġaccess Level : ĠAccess Level Ġ= ĠAccess Level . NONE ) ĊĠĠĠ Ġdata Ġclass ĠUser Alias Info ( val Ġusername : ĠString , Ġval Ġaccount Aliases : ĠList < Alias Info > Ġ= Ġempty List ()) ĊĊĠĠĠ Ġfun Ġaccess Level For ( username : ĠString ): ĠAccess Level { ĊĠĠĠĠĠĠĠ Ġval Ġmeta Ġ= Ġinfo Ġ?: ĠMeta () ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . admins . contains ( username ) Ġ-> ĠAccess Level . ADMIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . view ers . contains ( username ) Ġ-> ĠAccess Level . VIEW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . pending Requests . contains ( username ) Ġ-> ĠAccess Level . PENDING ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAccess Level . NONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }