package Ġuk . gov . just ice . l aa . architecture Ċ Ċ import Ġcom . struct ur izr . model . Container Ċ import Ġcom . struct ur izr . model . Model Ċ import Ġcom . struct ur izr . model . Software System Ċ import Ġcom . struct ur izr . view . Automatic Layout Ċ import Ġcom . struct ur izr . view . ViewSet Ċ Ċ class ĠC CC D Ġprivate Ġconstructor () Ġ{ ĊĠ Ġcompanion Ġobject Ġ: ĠLA AS o ftware System Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġsystem : ĠSoftware System ĊĠĠĠ Ġlateinit Ġvar Ġweb : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġsq s CC R : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġsq s C CL F : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġsq s Process Response : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġsns : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġredis : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġside ki q : ĠContainer ĊĠĠĠ Ġlateinit Ġvar Ġdb : ĠContainer ĊĊĠĠĠ Ġoverride Ġfun Ġdefine Model Entities ( model : ĠModel ) Ġ{ ĊĠĠĠĠĠ Ġsystem Ġ= Ġmodel . add Software System ( ĊĠĠĠĠĠĠĠ Ġ" Claim Ġfor Ġc rown Ġcourt Ġdef ence ", ĊĠĠĠĠĠĠĠ Ġ" Service Ġfor Ġthe Ġre mun er ating Ġof Ġadv oc ates Ġand Ġlit ig ators Ġby Ġthe ĠLeg al ĠA id ĠAg ency Ġfor Ġwork Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠ Ġ" done Ġon Ġbehalf Ġof Ġdef endants Ġin Ġc rim inal Ġpro ceedings ." ĊĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠTags . CR IME . addTo ( this ) ĊĠĠĠĠĠĠĠ ĠTags . GET _ PA ID . addTo ( this ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġweb Ġ= Ġsystem . add Container ( ĊĠĠĠĠĠĠĠ Ġ" Claim Ġfor Ġc rown Ġcourt Ġdef ence Âł UI ", ĊĠĠĠĠĠĠĠ Ġ" Interface Ġfor ĠPro viders Ġto Ġsubmit Ġclaims Ġand Ġfor ĠBilling Ġcase Ġworkers Ġaccess Ġclaims ", ĊĠĠĠĠĠĠĠ Ġ" Ruby Ġon ĠRails " ĊĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset Url (" https :// github . com / min ist ry of just ice / Claim - for - C rown - Cour t - Def ence ") ĊĠĠĠĠĠĠĠ ĠTags . WEB _ BROWSER . addTo ( this ) ĊĠĠĠĠĠĠĠ ĠCloud Platform . kubernetes . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġdb Ġ= Ġsystem . add Container ( ĊĠĠĠĠĠĠĠ Ġ" Claim Ġfor Ġc rown Ġcourt Ġdef ence ĠDatabase ", Ġ" Stores Ġclaims Ġfor ĠC rown ĠCour t Ġcases ", Ġ" PostgreSQL " ĊĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠTags . DATABASE . addTo ( this ) ĊĠĠĠĠĠĠĠ ĠCloud Platform . rds . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġside ki q Ġ= Ġsystem . add Container (" Side ki q ", Ġ" List ens Ġto Ġqueued Ġevents Ġand Ġprocesses Ġthem ", Ġ" Side ki q "). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠCloud Platform . kubernetes . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġredis Ġ= Ġsystem . add Container ( ĊĠĠĠĠĠĠĠ Ġ" In ĠMemory ĠData ĠStore ", Ġ" Key - value Ġstore Ġused Ġfor Ġscheduling Ġjobs Ġvia ĠSide ki q Ġand ĠC aching ", Ġ" Redis " ĊĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠTags . DATABASE . addTo ( this ) ĊĠĠĠĠĠĠĠ ĠCloud Platform . elastic ache . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġsns Ġ= Ġsystem . add Container (" S NS ĠFilter ", Ġ" Simple ĠNotification ĠService ", Ġ" AWS "). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠCloud Platform . sns . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġsq s CC R Ġ= Ġsystem . add Container (" SQ S ĠC CR ", Ġ" Simple ĠQueue ĠService ", Ġ" AWS "). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠCloud Platform . sqs . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġsq s C CL F Ġ= Ġsystem . add Container (" SQ S ĠC CL F ", Ġ" Simple ĠQueue ĠService ", Ġ" AWS "). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠCloud Platform . sqs . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġsq s Process Response Ġ= Ġsystem . add Container (" SQ S ĠResponse ", Ġ" Simple ĠQueue ĠService ", Ġ" AWS "). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠCloud Platform . sqs . add ( this ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefine Internal Container Relationships () Ġ{ ĊĠĠĠĠĠ Ġweb . uses ( db , Ġ" Connect s Ġto ") ĊĠĠĠĠĠ Ġweb . uses ( redis , Ġ" Caches ĠAPI ĠCalls ") ĊĠĠĠĠĠ Ġweb . uses ( redis , Ġ" Queues Ġjobs Ġto ") ĊĠĠĠĠĠ Ġweb . uses ( sns , Ġ" P ushes Ġclaim Ġwhen Ġit Ġhas Ġbeen Ġreceived ") ĊĠĠĠĠĠ Ġweb . uses ( sqs Process Response , Ġ" Processes Ġjob Ġto Ġsee Ġif Ġclaim Ġis Ġsuccessful Ġor Ġnot ") ĊĊĠĠĠĠĠ Ġside ki q . uses ( redis , Ġ" Processes Ġqueued Ġjobs Ġfrom ") ĊĊĠĠĠĠĠ Ġsns . uses ( sqs CC R , Ġ" Queues Ġjob Ġfor ĠC CR Ġto Ġprocess Ġclaim ") ĊĠĠĠĠĠ Ġsns . uses ( sqs C CL F , Ġ" Queues Ġjob Ġfor ĠC CL F Ġto Ġprocess Ġclaim ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefine Relationships () Ġ{ ĊĠĠĠĠĠ Ġweb . uses ( ĊĠĠĠĠĠĠĠ ĠF ee Calculator . api , ĊĠĠĠĠĠĠĠ Ġ" Uses ĠAPI Ġto Ġcalculate Ġfees ", ĊĠĠĠĠĠĠĠ Ġ" REST ", ĊĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠ Ġtags To Argument ( Tags . CR IME ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefine External Relationships () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefine User Relationships () Ġ{ ĊĠĠĠĠĠ ĠLeg al A id Ag ency Users . billing Case Worker . uses ( ĊĠĠĠĠĠĠĠ Ġweb , Ġ" Starts Ġa Ġclaim Ġassessment ", Ġnull , Ġnull , Ġtags To Argument ( Tags . CR IME ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ ĠLeg al A id Ag ency Users . provider . uses ( ĊĠĠĠĠĠĠĠ Ġweb , Ġ" Submit s Ġa Ġclaim ", Ġnull , Ġnull , Ġtags To Argument ( Tags . CR IME ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdefine Views ( views : ĠView Set ) Ġ{ ĊĠĠĠĠĠ Ġ// Ġdeclare Ġviews Ġhere ĊĠĠĠĠĠ Ġviews . create System Context View ( system , Ġ" cc cd - context ", Ġnull ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Default Elements () ĊĠĠĠĠĠĠĠ Ġenable Automatic Layout ( Automatic Layout . Rank Direction . Top Bottom , Ġ 3 0 0 , Ġ 3 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġviews . create Container View ( system , Ġ" cc cd - container ", Ġnull ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Default Elements () ĊĠĠĠĠĠĠĠ Ġset External Software System Bound aries Visible ( true ) ĊĠĠĠĠĠĠĠ Ġenable Automatic Layout ( Automatic Layout . Rank Direction . Top Bottom , Ġ 3 0 0 , Ġ 3 0 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ