/** Ċ Ġ* Ġme ili - k tr Ġ- ĠMulti platform ĠKotlin Ġclient Ġfor ĠMe ili Search ĠAPI . Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠJon athan xD Ġ< jh rl dev @ gmail . com > Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġcom . k ores framework . me il ik tr Ċ Ċ import Ġcom . k ores framework . me il ik tr . request . Index CreateRequest Ċ import Ġcom . k ores framework . me il ik tr . request . Index Update Request Ċ import Ġcom . k ores framework . me il ik tr . response . Delete Response Ċ import Ġcom . k ores framework . me il ik tr . response . Index Response Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ Ċ class ĠIndexes ( val Ġme ili Client : ĠMe ili Client ) Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= ĠSettings ( this . me ili Client ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġan Ġindex Ġwith Ġprovided Ġ[ uid ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprimary Key ĠPrimary ĠKey Ġof Ġdocuments ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġcreate Index ( uid : ĠString , Ġprimary Key : ĠString ? Ġ= Ġnull ): ĠIndex Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . me ili Client . httpClient . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ("/ indexes ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= ĠIndex CreateRequest ( uid , Ġprimary Key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġthe Ġindex Ġwith Ġprovided Ġ[ uid ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprimary Key ĠPrimary ĠKey Ġof Ġdocuments ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġupdate Index ( uid : ĠString , Ġprimary Key : ĠString ? Ġ= Ġnull ): ĠIndex Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . me ili Client . httpClient . put Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Path Ġ= Ġ"/ indexes " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= ĠIndex Update Request ( uid , Ġprimary Key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġthe Ġindex Ġwith Ġprovided Ġ[ uid ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġdelete Index ( uid : ĠString ): ĠDelete Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdelete Ġ= Ġthis . me ili Client . httpClient . delete < HttpResponse > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Path Ġ= Ġ"/ indexes /${ uid . encode URL Path () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠDelete Response ( uid , Ġdelete . status Ġ== ĠHttpStatusCode . No Content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġall Ġindexes . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget Indexes (): ĠList < Index Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . me ili Client . httpClient . get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Path Ġ= Ġ"/ indexes " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġindex Ġwith Ġspecific Ġ[ uid ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget Index ( uid : ĠString ): ĠIndex Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . me ili Client . httpClient . get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoded Path Ġ= Ġ"/ indexes /${ uid . encode URL Path () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }