package Ġcom . b sel zer . gw 2 . v 2 . client . client Ċ Ċ import Ġcom . b sel zer . gw 2 . v 2 . client . extension . bearer Ċ import Ġcom . b sel zer . gw 2 . v 2 . model . account . token . Sub Token Ċ import Ġcom . b sel zer . gw 2 . v 2 . model . account . token . Token Info Ċ import Ġcom . b sel zer . gw 2 . v 2 . scope . core . Permission Ċ import Ġcom . b sel zer . gw 2 . v 2 . scope . core . Requirement Ċ import Ġcom . b sel zer . gw 2 . v 2 . scope . core . Scope Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġkotlinx . datetime . Instant Ċ Ċ /** Ċ Ġ* ĠThe Ġtoken Ġclient . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// wiki . guild w ars 2 . com / wiki / API : 2 / token info "> token info Ġon Ġthe Ġwiki </ a > Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// wiki . guild w ars 2 . com / wiki / API : 2 / creates ub token "> creates ub token Ġon Ġthe Ġwiki </ a > Ċ Ġ*/ Ċ @ Scope ( Requirement . REQUIRED , ĠPermission . ACCOUNT ) Ċ class ĠToken Client ( httpClient : ĠHttpClient , Ġconfiguration : ĠG w 2 Client Configuration ) Ġ: ĠBase Client ( httpClient , Ġconfiguration ) Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTOKEN _ INFO Ġ= Ġ" token info " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCREATE _ SUB TOKEN Ġ= Ġ" creates ub token " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġtoken Ġinformation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġtoken Ġmust Ġeither Ġbe Ġdefined Ġin Ġthe Ġconfiguration Ġor Ġby Ġ[ token ]. ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġtoken Ġinformation ĊĠĠĠĠ Ġ* Ġ@ see Ġ< a Ġhref =" https :// wiki . guild w ars 2 . com / wiki / API : 2 / token info "> token info Ġon Ġthe Ġwiki </ a > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Scope ( Requirement . REQUIRED , ĠPermission . ACCOUNT ) ĊĠĠĠ Ġsuspend Ġfun Ġinformation ( token : ĠString ? Ġ= Ġnull ): ĠToken Info Ġ= Ġforce Get Single ( path Ġ= ĠTOKEN _ INFO ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbe arer ( token ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġsub - token Ġthat Ġexpires Ġat Ġ[ expiration ], Ġthat Ġis Ġable Ġto Ġaccess Ġthe Ġendpoints Ġassociated Ġwith Ġthe Ġ[ permissions ] Ġor Ġdefined Ġby Ġthe Ġ[ urls ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġtoken Ġmust Ġeither Ġbe Ġdefined Ġin Ġthe Ġconfiguration Ġor Ġby Ġ[ token ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġsub - token Ġid ĊĠĠĠĠ Ġ* Ġ@ see Ġ< a Ġhref =" https :// wiki . guild w ars 2 . com / wiki / API : 2 / creates ub token "> creates ub token Ġon Ġthe Ġwiki </ a > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Scope ( Requirement . REQUIRED , ĠPermission . ACCOUNT ) ĊĠĠĠ Ġsuspend Ġfun Ġcreate Sub Token ( ĊĠĠĠĠĠĠĠ Ġexpiration : ĠInstant , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġurls : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġtoken : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠSub Token Ġ= Ġforce Get Single ( path Ġ= ĠCREATE _ SUB TOKEN ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbe arer ( token ) ĊĠĠĠĠĠĠĠ Ġparameter (" expire ", Ġexpiration ) ĊĠĠĠĠĠĠĠ Ġparameter (" permissions ", Ġpermissions . join ToString ()) ĊĠĠĠĠĠĠĠ Ġparameter (" urls ", Ġurls . join ToString ()) ĊĠĠĠ Ġ} Ċ }