package Ġde . f aw e izz . topic service . service . audit logging Ċ Ċ import Ġde . f aw e izz . topic service . adjacent . kafka . Kafka Client Ċ import Ġde . f aw e izz . topic service . service . transformation . serialize Ċ import Ġorg . apache . avro . Schema Builder Ċ import Ġorg . apache . avro . generic . Generic Record Builder Ċ Ċ class ĠAudit Logger ( ĊĠĠĠ Ġprivate Ġval Ġkafka Client : ĠKafka Client Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġlog Resource Creation ( name : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" resource creation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" name ", Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . resource - creation ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Data Sharing Request ( id : ĠString , Ġresource Name : ĠString , Ġto Confirm By Act ors : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" dat ash aring request ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" resourceName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" to Confirm By Act ors ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" resourceName ", Ġresource Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" to Confirm By Act ors ", Ġto Confirm By Act ors . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . data - sharing - request ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Data Sharing Request Accept ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" dat ash aring request accept ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . data - sharing - request - accept ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Data Sharing Request Decl ine ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" dat ash aring request decl ine ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . data - sharing - request - decl ine ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Client Creation ( ĊĠĠĠĠĠĠĠ Ġclient Name : ĠString , ĊĠĠĠĠĠĠĠ Ġactor Name : ĠString , ĊĠĠĠĠĠĠĠ Ġinput Resources : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġoutput Resources : ĠList < String > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" client creation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" client Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" input Resources ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" output Resources ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" client Name ", Ġclient Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" input Resources ", Ġinput Resources . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" output Resources ", Ġoutput Resources . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . client - creation ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Creation ( resourceName : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource creation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" resourceName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" resourceName ", Ġresource Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - creation ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Join Request ( ĊĠĠĠĠĠĠĠ Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġresource Name : ĠString , ĊĠĠĠĠĠĠĠ Ġactor Name : ĠString , ĊĠĠĠĠĠĠĠ Ġto Confirm By Act ors : ĠList < String > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource join request ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" resourceName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" to Confirm By Act ors ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" resourceName ", Ġresource Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" to Confirm By Act ors ", Ġto Confirm By Act ors . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - join - request ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Join Request Accept ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource join request accept ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - join - request - accept ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Join Request Decl ine ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource join request decl ine ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - join - request - decl ine ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Compute Request ( id : ĠString , Ġactor Name : ĠString , Ġto Confirm By Act ors : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource comp ut ere quest ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" to Confirm By Act ors ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" to Confirm By Act ors ", Ġto Confirm By Act ors . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - compute - request ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Compute Request Accept ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource comp ut ere quest accept ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - compute - request - accept ", Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Joined Resource Compute Request Decl ine ( id : ĠString , Ġactor Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Builder . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. record (" joined resource comp ut ere quest decl ine ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fields () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. required String (" actor Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Record () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGeneric Record Builder ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set (" actor Name ", Ġactor Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize () ĊĊĠĠĠĠĠĠĠ Ġkafka Client . send (" internal . joined - resource - compute - request - decl ine ", Ġmessage ) ĊĠĠĠ Ġ} Ċ }