package Ġcom . netflix . spin n aker . ke el . test Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . netflix . spin n aker . ke el . api . ApiVersion Ċ import Ġcom . netflix . spin n aker . ke el . api . Mon iker ed Ċ import Ġcom . netflix . spin n aker . ke el . api . Resource Ċ import Ġcom . netflix . spin n aker . ke el . api . Resource Kind Ċ import Ġcom . netflix . spin n aker . ke el . api . Resource Spec Ċ import Ġcom . netflix . spin n aker . ke el . api . SP IN NA KER _ API _ V 1 Ċ import Ġcom . netflix . spin n aker . ke el . plugin . Resource Handler Ċ import Ġcom . netflix . spin n aker . ke el . plugin . Resource Normalizer Ċ import Ġcom . netflix . spin n aker . ke el . serialization . configured ObjectMapper Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util . UUID Ċ Ċ val ĠTEST _ API Ġ= ĠSP IN NA KER _ API _ V 1 . sub Api (" test ") Ċ Ċ fun Ġresource ( ĊĠ ĠapiVersion : ĠApi Version Ġ= ĠTEST _ API , ĊĠ Ġkind : ĠString Ġ= Ġ" wh atever ", ĊĠ Ġid : ĠString Ġ= Ġrandom String (), ĊĠ Ġapplication : ĠString Ġ= Ġ" fn ord " Ċ ): ĠResource < Dummy Resource Spec > Ġ= ĊĠ ĠDummy Resource Spec ( id Ġ= Ġid , Ġapplication Ġ= Ġapplication ) ĊĠĠĠ Ġ. let Ġ{ Ġspec Ġ-> ĊĠĠĠĠĠ Ġresource ( ĊĠĠĠĠĠĠĠ ĠapiVersion Ġ= ĠapiVersion , ĊĠĠĠĠĠĠĠ Ġkind Ġ= Ġkind , ĊĠĠĠĠĠĠĠ Ġspec Ġ= Ġspec , ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġspec . id , ĊĠĠĠĠĠĠĠ Ġapplication Ġ= Ġapplication ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ fun Ġ< T Ġ: ĠMon iker ed > Ġresource ( ĊĠ ĠapiVersion : ĠApi Version Ġ= ĠTEST _ API , ĊĠ Ġkind : ĠString Ġ= Ġ" wh atever ", ĊĠ Ġspec : ĠT Ċ ): ĠResource < T > Ġ= Ġresource ( ĊĠ ĠapiVersion Ġ= ĠapiVersion , ĊĠ Ġkind Ġ= Ġkind , ĊĠ Ġspec Ġ= Ġspec , ĊĠ Ġid Ġ= Ġspec . mon iker . name , ĊĠ Ġapplication Ġ= Ġspec . application Ċ ) Ċ Ċ fun Ġ< T Ġ: ĠResource Spec > Ġresource ( ĊĠ ĠapiVersion : ĠApi Version Ġ= ĠTEST _ API , ĊĠ Ġkind : ĠString Ġ= Ġ" wh atever ", ĊĠ Ġspec : ĠT , ĊĠ Ġid : ĠString Ġ= Ġspec . id , ĊĠ Ġapplication : ĠString Ġ= Ġ" fn ord " Ċ ): ĠResource < T > Ġ= ĊĠ ĠResource ( ĊĠĠĠ ĠapiVersion Ġ= ĠapiVersion , ĊĠĠĠ Ġkind Ġ= Ġkind , ĊĠĠĠ Ġspec Ġ= Ġspec , ĊĠĠĠ Ġmetadata Ġ= Ġmap Of ( ĊĠĠĠĠĠ Ġ" id " Ġto Ġ"${ apiVersion . prefix }: $ kind :$ id ", ĊĠĠĠĠĠ Ġ" application " Ġto Ġapplication , ĊĠĠĠĠĠ Ġ" service Account " Ġto Ġ" ke el @ spin n aker " ĊĠĠĠ Ġ) ĊĠ Ġ) Ċ Ċ data Ġclass ĠDummy Resource Spec ( ĊĠ Ġoverride Ġval Ġid : ĠString Ġ= Ġrandom String (), ĊĠ Ġval Ġdata : ĠString Ġ= Ġrandom String (), ĊĠ Ġoverride Ġval Ġapplication : ĠString Ġ= Ġ" fn ord " Ċ ) Ġ: ĠResource Spec Ċ Ċ data Ġclass ĠDummy Resource ( ĊĠ Ġval Ġid : ĠString Ġ= Ġrandom String (), ĊĠ Ġval Ġdata : ĠString Ġ= Ġrandom String () Ċ ) Ġ{ ĊĠ Ġconstructor ( spec : ĠDummy Resource Spec ) Ġ: Ġthis ( spec . id , Ġspec . data ) Ċ } Ċ Ċ fun Ġrandom String ( length : ĠInt Ġ= Ġ 8 ) Ġ= ĊĠ ĠUUID . randomUUID () ĊĠĠĠ Ġ. toString () ĊĠĠĠ Ġ. map Ġ{ Ġit . toInt (). toString ( 1 6 ) Ġ} ĊĠĠĠ Ġ. join ToString ("") ĊĠĠĠ Ġ. substring ( 0 Ġuntil Ġlength ) Ċ Ċ object ĠDummy Resource Handler Ġ: ĠResource Handler < Dummy Resource Spec > Ġ{ ĊĠ Ġoverride Ġval ĠapiVersion : ĠApi Version Ġ= ĠSP IN NA KER _ API _ V 1 . sub Api (" test ") ĊĊĠ Ġoverride Ġval Ġsupported Kind : ĠPair < Resource Kind , ĠClass < Dummy Resource Spec >> Ġ= ĊĠĠĠ ĠResource Kind (" test ", Ġ" wh atever ", Ġ" wh ate vers ") Ġto ĠDummy Resource Spec :: class . java ĊĊĠ Ġoverride Ġval ĠobjectMapper : ĠObjectMapper Ġ= Ġconfigured ObjectMapper () ĊĊĠ Ġoverride Ġval Ġnormal izers : ĠList < Resource Normalizer <* >> Ġ= Ġempty List () ĊĊĠ Ġoverride Ġsuspend Ġfun Ġcurrent ( resource : ĠResource < Dummy Resource Spec >): ĠDummy Resource Spec ? Ġ{ ĊĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġsuspend Ġfun Ġdelete ( resource : ĠResource < Dummy Resource Spec >) Ġ{ ĊĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġlog : ĠLogger Ġby Ġlazy Ġ{ ĠLoggerFactory . getLogger ( java Class ) Ġ} Ċ } Ċ