package Ġio . micro services . canvas . model ; Ċ Ċ data Ġclass ĠOperation ( val Ġname Ġ: ĠString , Ġval Ġtype Ġ: ĠOperation Type , Ġval Ġendpoints Ġ: ĠMutable List < Operation Endpoint >) Ġ{ ĊĠĠĠ Ġfun Ġadd ( endpoint : ĠOperation Endpoint ) Ġ{ ĊĠĠĠĠĠĠĠ Ġendpoints . add ( endpoint ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠOperation Type Ġ{ ĠCOMMAND , ĠQUERY Ġ}; Ċ Ċ interface ĠOperation Endpoint Ġ{ ĊĠĠĠ Ġval Ġtype Ġ: ĠOperation Endpoint Type Ċ } Ċ Ċ enum Ġclass ĠOperation Endpoint Type Ġ{ ĊĠĠĠ ĠSYN CH RON O US , ĠAS YN CH RON O US Ċ } Ċ Ċ data Ġclass ĠS ynchronous Operation Endpoint ( val Ġmethod Ġ: ĠString , Ġval Ġpath Ġ: ĠString ) Ġ: ĠOperation Endpoint Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠOperation Endpoint Type . SYN CH RON O US Ċ } Ċ Ċ data Ġclass ĠAs ynchronous Operation Endpoint ( val Ġchannel Ġ: ĠString ) Ġ: ĠOperation Endpoint Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠOperation Endpoint Type . ASY N CH RON O US Ċ } ĊĊĊ