package Ġcom . cj bo oms . fab ri kt . generators . client Ċ Ċ import Ġcom . cj bo oms . fab ri kt . configurations . Packages Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . add Optional Parameter Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . first Response Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . function Name Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . getHeader Params Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . getPath Params Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . get Primary Content MediaType Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . get Primary Content MediaType Key Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . get QueryParams Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . has Multiple Content Media Types Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . primary Properties Constructor Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to Body Parameter Spec Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to Body Request Schema Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to ClassName Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to K Code Name Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to K doc Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to Parameter Spec Ċ import Ġcom . cj bo oms . fab ri kt . generators . Generator Utils . to Var Name Ċ import Ġcom . cj bo oms . fab ri kt . generators . Type Factory Ċ import Ġcom . cj bo oms . fab ri kt . generators . client . Client Generator Utils . ACCEPT _ HEADER _ VARIABLE _ NAME Ċ import Ġcom . cj bo oms . fab ri kt . generators . client . Client Generator Utils . AD DITION AL _ HEADERS _ PARAMETER _ NAME Ċ import Ġcom . cj bo oms . fab ri kt . generators . client . Client Generator Utils . simple Client Name Ċ import Ġcom . cj bo oms . fab ri kt . generators . client . Client Generator Utils . to Client ReturnType Ċ import Ġcom . cj bo oms . fab ri kt . model . Client Type Ċ import Ġcom . cj bo oms . fab ri kt . model . Dest inations Ċ import Ġcom . cj bo oms . fab ri kt . model . Generated File Ċ import Ġcom . cj bo oms . fab ri kt . model . Handle bars Templates Ċ import Ġcom . cj bo oms . fab ri kt . model . Kotlin TypeInfo Ċ import Ġcom . cj bo oms . fab ri kt . model . Source Api Ċ import Ġcom . cj bo oms . fab ri kt . util . Ka izen Parser Extensions . route To Paths Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . github . jav ap ar ser . utils . Code Generation Utils Ċ import Ġcom . re pre zen . ka izen . o as parser . model 3 . Operation Ċ import Ġcom . squareup . kotlin po et . Annotation Spec Ċ import Ġcom . squareup . kotlin po et . Code Block Ċ import Ġcom . squareup . kotlin po et . Fun Spec Ċ import Ġcom . squareup . kotlin po et . K Modifier Ċ import Ġcom . squareup . kotlin po et . Parameter Spec Ċ import Ġcom . squareup . kotlin po et . Property Spec Ċ import Ġcom . squareup . kotlin po et . Type Spec Ċ import Ġcom . squareup . kotlin po et . as TypeName Ċ Ċ class ĠOk Http Simple Client Generator ( ĊĠĠĠ Ġprivate Ġval Ġpackages : ĠPackages , ĊĠĠĠ Ġprivate Ġval Ġapi : ĠSource Api Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġgenerate Dynamic Client Code (): ĠCollection < Client Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi . open Api 3 . route To Paths (). map Ġ{ Ġ( resourceName , Ġpaths ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfunc Specs : ĠList < Fun Spec > Ġ= Ġpaths . flatMap Ġ{ Ġ( resource , Ġpath ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath . operations . map Ġ{ Ġ( verb , Ġoperation ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFun Spec ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder ( function Name ( resource , Ġverb )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( K Modifier . PUBLIC ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add K doc ( operation . to K doc ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Spec . builder ( Throws :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Member ("% T :: class ", Ġ" ApiException ". to ClassName ( packages . client )). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameters ( operation . request Body . to Body Parameter Spec ( packages . base )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameters ( operation . parameters . map Ġ{ Ġit . to Parameter Spec ( packages . base ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Optional Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Spec . builder ( ACCEPT _ HEADER _ VARIABLE _ NAME , ĠString :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue ("% S ", Ġoperation . get Primary Content MediaType Key ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . has Multiple Content Media Types () Ġ== Ġtrue Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! operation . parameters . any Ġ{ Ġheader Ġ-> Ġheader . name Ġ== Ġ" Accept " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Spec . builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠADD ITION AL _ HEADERS _ PARAMETER _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠType Factory . create Map Of StringTo Type ( String :: class . as TypeName ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue (" empty Map () ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Code ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Client Operation Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). to Statement () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( operation . to Client ReturnType ( packages )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Type Ġ= ĠType Spec . class Builder ( simple Client Name ( resourceName )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. primary Properties Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" object Mapper ", ĠObjectMapper :: class . as TypeName (), ĠK Modifier . PRIVATE ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" baseUrl ", ĠString :: class . as TypeName (), ĠK Modifier . PRIVATE ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" client ", Ġ" Ok HttpClient ". to ClassName (" okhttp 3 "), ĠK Modifier . PRIVATE ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( Annotation Spec . builder ( Suppress :: class ). add Member ("% S ", Ġ" unused "). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Functions ( func Specs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠClient Type ( client Type , Ġpackages . base ) ĊĠĠĠĠĠĠĠ Ġ}. toSet () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Library (): ĠCollection < Generated File > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcode Dir Ġ= ĠDest inations . MAIN _ KT _ SRC . resolve ( Code Generation Utils . package To Path ( packages . base )) ĊĠĠĠĠĠĠĠ Ġval Ġclient Dir Ġ= Ġcode Dir . resolve (" client ") ĊĠĠĠĠĠĠĠ Ġreturn Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . apply Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . client Api Models , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Api Models . kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . apply Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . client Http Utils , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Http Util . kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . apply Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . client OAuth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" OAuth . kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . apply Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandle bars Templates . client Logging Interceptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Logging Interceptor . kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSimple Client Operation Statement ( ĊĠĠĠ Ġprivate Ġval Ġpackages : ĠPackages , ĊĠĠĠ Ġprivate Ġval Ġresource : ĠString , ĊĠĠĠ Ġprivate Ġval Ġverb : ĠString , ĊĠĠĠ Ġprivate Ġval Ġoperation : ĠOperation Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġto Statement (): ĠCode Block Ġ= ĊĠĠĠĠĠĠĠ ĠCode Block . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Url Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Path Param Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParam Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header Param Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Request Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Request Execution Statement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Url Statement (): ĠCode Block . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . add (" val Ġhttp Url : Ġ% T Ġ= Ġ\"% L \"", Ġ" Http Url ". to ClassName (" okhttp 3 "), Ġ"\ $ baseUrl $ resource ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Path Param Statement (): ĠCode Block . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoperation . getPath Params (). map Ġ{ Ġthis . add ("\ n . path Param (% S Ġto Ġ% N )", Ġ"{ ${ it . name }} ", Ġit . name . to K Code Name ()) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n .% T ()\ n . newBuilder ()", Ġ" to Http Url ". to ClassName (" okhttp 3 . Http Url . Companion ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOnly Ġsupports Ġ` form ` Ġstyle Ġquery Ġparams Ġwith Ġeither Ġexplode Ġtrue Ġor Ġfalse . ĠSee Ġ[ Open ĠAPI Ġ 3 . 0 ĊĠĠĠĠ Ġ* Ġserialization ]( https :// swagger . io / docs / specification / serialization ) Ġquery Ġparameters Ġstyle Ġvalues ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add QueryParam Statement (): ĠCode Block . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoperation . get QueryParams (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( Kotlin TypeInfo . from ( it . schema )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠKotlin TypeInfo . Array Ġ-> Ġthis . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n .% T (% S , Ġ% N , Ġ% L )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" query Param ". to ClassName ( packages . client ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . to K Code Name (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . explode Ġ== Ġnull Ġ|| Ġit . explode Ġ== Ġtrue ) Ġ" true " Ġelse Ġ" false " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthis . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n .% T (% S , Ġ% N )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" query Param ". to ClassName ( packages . client ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . to K Code Name () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . add ("\ n . build ()\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Header Param Statement (): ĠCode Block . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n val Ġheader Builder Ġ= ĠHeaders . Builder () ") ĊĠĠĠĠĠĠĠ Ġvar Ġis Accept Set Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoperation . getHeader Params (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . name Ġ== Ġ" Accept ") Ġis Accept Set Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Info Ġ= ĠKotlin TypeInfo . from ( it . schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n .% T (% S , Ġ% L )", Ġ" header ". to ClassName ( packages . client ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . to K Code Name () Ġ+ Ġif Ġ( type Info Ġis ĠKotlin TypeInfo . Enum ) Ġ" ?. value " Ġelse Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! is Accept Set ) Ġoperation . first Response ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . has Multiple Content Media Types ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add ("\ n .% T (% S , Ġ% L )", Ġ" header ". to ClassName ( packages . client ), Ġ" Accept ", ĠAC CEPT _ HEADER _ VARIABLE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n .% T (% S , Ġ% S )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" header ". to ClassName ( packages . client ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Accept ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation . get Primary Content MediaType Key () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n additional Headers . forEach Ġ{ Ġheader Builder . header ( it . key , Ġit . value ) Ġ} ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . add ("\ n val Ġhttp Headers : Ġ% T Ġ= Ġheader Builder . build ()\ n ", Ġ" Headers ". to ClassName (" okhttp 3 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Request Statement (): ĠCode Block . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n val Ġrequest : Ġ% T Ġ= ĠRequest . Builder ()", Ġ" Request ". to ClassName (" okhttp 3 ")) ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n . url ( http Url )\ n . headers ( http Headers )") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġop Ġ= Ġverb . toUpperCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" PUT " Ġ-> Ġthis . add Request Serializer Statement (" put ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" POST " Ġ-> Ġthis . add Request Serializer Statement (" post ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" PATCH " Ġ-> Ġthis . add Request Serializer Statement (" patch ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" HEAD " Ġ-> Ġthis . add ("\ n . head () ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" GET " Ġ-> Ġthis . add ("\ n . get () ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" DELETE " Ġ-> Ġthis . add ("\ n . delete () ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠNotImplementedError (" API Ġoperation Ġ$ op Ġis Ġnot Ġsupported ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . add ("\ n . build ()\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Request Execution Statement () Ġ= ĊĠĠĠĠĠĠĠ Ġthis . add ("\ n return Ġrequest . execute ( client , ĠobjectMapper , Ġj ack son Type Ref ()) ") ĊĊĠĠĠ Ġprivate Ġfun ĠCode Block . Builder . add Request Serializer Statement ( verb : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġoperation . request Body ĊĠĠĠĠĠĠĠ Ġrequest Body . to Body Request Schema (). first OrNull ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n .% N ( object Mapper . writeValue AsString (% N ). % T (% S .% T ())) ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverb , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Var Name (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" to RequestBody ". to ClassName (" okhttp 3 . RequestBody . Companion "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body . get Primary Content MediaType ()?. key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" to MediaType ". to ClassName (" okhttp 3 . MediaType . Companion ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthis . add ("\ n % N ()", Ġverb ) ĊĠĠĠ Ġ} Ċ } Ċ