package Ġru . qi wi . devops . mission . control . model Ċ Ċ import Ġru . qi wi . devops . mission . control . messages . Message Ċ import Ġjava . time . Instant Ċ Ċ data Ġclass ĠResource Status Info ( ĊĠĠĠ Ġval Ġvalue : ĠResource Status Level , ĊĠĠĠ Ġval Ġmessages : ĠList < Resource StatusMessage > Ġ= Ġempty List () Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠOK Ġ= ĠResource Status Info ( Resource Status Level . OK ) ĊĊĠĠĠĠĠĠĠ Ġval ĠUNKNOWN Ġ= ĠResource Status Info ( Resource Status Level . IN ACTIVE ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild ( fn : ĠBuilder . () Ġ-> ĠUnit ): ĠResource Status Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( Resource Status Level . OK ). apply ( fn ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuilder ( ĊĠĠĠĠĠĠĠ Ġval Ġdefault Level : ĠResource Status Level ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmessages Ġ= Ġmutable ListOf < Resource StatusMessage >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġwarn ( message : ĠMessage , Ġcl arity : ĠResource StatusMessage Cl arity Ġ= ĠResource StatusMessage Cl arity . NO , ĠdateTime : ĠInstant Ġ= ĠInstant . now ()): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġadd ( Resource Status Level . WARN , Ġcl arity , Ġmessage , ĠdateTime ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġerror ( message : ĠMessage , Ġcl arity : ĠResource StatusMessage Cl arity Ġ= ĠResource StatusMessage Cl arity . LOW , ĠdateTime : ĠInstant Ġ= ĠInstant . now ()): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġadd ( Resource Status Level . ERROR , Ġcl arity , Ġmessage , ĠdateTime ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġinfo ( message : ĠMessage , Ġcl arity : ĠResource StatusMessage Cl arity Ġ= ĠResource StatusMessage Cl arity . NO , ĠdateTime : ĠInstant Ġ= ĠInstant . now ()): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġadd ( Resource Status Level . OK , Ġcl arity , Ġmessage , ĠdateTime ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġadd ( level : ĠResource Status Level , Ġcl arity : ĠResource StatusMessage Cl arity , Ġmessage : ĠMessage , ĠdateTime : ĠInstant Ġ= ĠInstant . now ()): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessages . add ( Resource StatusMessage ( level , Ġcl arity , ĠdateTime , Ġmessage )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠResource Status Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Level Ġ= Ġmessages . max By Ġ{ Ġit . level Ġ} ?. level Ġ?: Ġdefault Level ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResource Status Info ( max Level , Ġmessages ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }