package Ġcom . cap y bara . core . model Ċ Ċ import Ġcom . cap y bara . core . dsl . Resource Builder Ċ Ċ open Ġclass ĠResource ( builder Body : ĠResource Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġresource Builder Ġ= ĠResource Builder (). apply Ġ{ Ġbuilder Body () Ġ} ĊĊĠĠĠ Ġval Ġname Ġ= Ġresource Builder . name ĊĠĠĠ Ġval Ġmethods Ġ= Ġresource Builder . methods ĊĠĠĠ Ġval Ġproperties Ġ= Ġresource Builder . properties ĊĠĠĠ Ġval Ġbackend Ġ= Ġresource Builder . backend Ċ } Ċ Ċ abstract Ġclass ĠMethod ( val Ġname : ĠString ) Ċ Ċ object ĠGet Ġ: ĠMethod (" GET ") Ċ Ċ object ĠPost Ġ: ĠMethod (" POST ") Ċ Ċ object ĠDelete Ġ: ĠMethod (" DELETE ") Ċ Ċ object ĠPut Ġ: ĠMethod (" PUT ") Ċ Ċ data Ġclass ĠProperty ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġtype : ĠProperty Type Ċ ) Ċ Ċ open Ġclass ĠProperty Type Ċ Ċ object ĠText Type Ġ: ĠProperty Type () ĊĊ Ċ interface ĠBackend Ċ Ċ data Ġclass ĠMongo Db Backend ( ĊĠĠĠ Ġval Ġcollection Name : ĠString , ĊĠĠĠ Ġval Ġdatabase : ĠString , ĊĠĠĠ Ġval Ġhost : ĠString , ĊĠĠĠ Ġval Ġport : ĠInt Ċ ) Ġ: ĠBackend