/** Ċ Ġ* ĠCopyright Ġ( C ) 2 0 2 0 Ġ- ĠCard inal ĠHealth Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . card inal health . con course . ver ac ode Ċ Ċ import Ġcom . fasterxml . jackson . annotation . Json Format Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Properties Ċ import Ġcom . fasterxml . jackson . data format . xml . annotation . Jack son XmlElement Wrapper Ċ import Ġcom . fasterxml . jackson . data format . xml . annotation . Jack son Xml Property Ċ import Ġjavax . xml . bind . annotation . Xml Root Element Ċ Ċ @ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) Ċ @ Xml Root Element ( name Ġ= Ġ" detailed report ") Ċ data Ġclass ĠD eta iled Report ( ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" app _ name ") ĊĠĠĠĠĠĠĠ Ġval Ġapplication : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" version ") ĊĠĠĠĠĠĠĠ Ġval Ġscan Version : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" policy _ compliance _ status ") ĊĠĠĠĠĠĠĠ Ġval Ġpolicy Compliance Stat ue : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" policy _ rules _ status ") ĊĠĠĠĠĠĠĠ Ġval Ġpolicy Rules Status : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" severity ") ĊĠĠĠĠĠĠĠ Ġval Ġseverity : ĠList < Severity >, ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" static - analysis ") ĊĠĠĠĠĠĠĠ Ġval Ġstatic Analysis : ĠStatic Analysis , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" software _ composition _ analysis ") ĊĠĠĠĠĠĠĠ Ġval Ġsoftware Composition Analysis : ĠS CA ?) Ġ{ ĊĊĊĠĠĠ Ġfun Ġun mit ig ated Fl aws By Severity Level ( level : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġseverity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Ġ{ Ġit . level Ġ== Ġlevel Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. category ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . cw es Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . static Fl aws . fl aws Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . mit igation Status Ġ!= Ġ" accepted " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġ! " fixed ". equals ( it . re medi ation Status , Ġignore Case Ġ= Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sum By Ġ{ Ġit . count Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Scan Title (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst ModuleName : ĠString ? Ġ= Ġstatic Analysis . modules ?. first ()?. name ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" Scan Ġof Ġ" Ġ+ Ġ( first ModuleName Ġ?: Ġscan Version ) Ġ+ Ġ" Ġcomplete " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsca V ulnerabilities By Severity Level ( level : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsoftware Composition Analysis ?. v ulner able Components ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . flatMap Ġ{ Ġit . v ulnerabilities . or Empty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter Ġ{ Ġ( it Ġas ĠLinkedHashMap < String , ĠString >) [" severity "] ?. toInt () Ġ== Ġlevel Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . size Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠStatic ĠAnalysis ĠProperties ĊĠĠĠĠ Ġ**/ ĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠSeverity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" level ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel : ĠInt , ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" category ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory : ĠList < Category > Ġ= Ġempty List () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠCategory ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" category name ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Name : ĠString , ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" c we ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcw es : ĠList < CWE > Ġ= Ġempty List ()) ĊĊĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠStatic Analysis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" modules ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodules : ĠList < Ver ac ode Module > ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠVer ac ode Module ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" name ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠĠĠĠ ĠSoftware ĠComp osition ĠAnalysis ĠProperties ĊĠĠĠĠ Ġ**/ ĊĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠS CA ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json Format ( with Ġ= ĠarrayOf ( Json Format . Feature . ACCEPT _ SINGLE _ VALUE _ AS _ ARRAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" v ulner able _ components ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvulner able Components : ĠList < Component >? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠComponent ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json Format ( with Ġ= ĠarrayOf ( Json Format . Feature . ACCEPT _ SINGLE _ VALUE _ AS _ ARRAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" v ulnerabilities ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvulner abilities : ĠList < Any >? ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠĠĠĠ ĠStatic ĠAnalysis ĠProperties Ċ Ġ**/ Ċ Ċ @ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) Ċ data Ġclass ĠCWE ( ĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" static fl aws ") ĊĠĠĠĠĠĠĠ Ġval Ġstatic Fl aws : ĠStatic Fl aws Ċ Ċ ) Ċ Ċ @ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) Ċ data Ġclass ĠStatic Fl aws ( ĊĠĠĠĠĠĠĠ Ġ@ Jack son XmlElement Wrapper ( use Wr apping Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" fl aw ") ĊĠĠĠĠĠĠĠ Ġval Ġfl aws : ĠList < Fl aw > Ġ= Ġempty List () Ċ ) Ċ Ċ @ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) Ċ data Ġclass ĠFl aw ( ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" count ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġcount : ĠInt , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" mit igation _ status ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġmit igation Status : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ Jack son Xml Property ( local Name Ġ= Ġ" re medi ation _ status ", Ġis Attribute Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġre medi ation Status : ĠString Ċ Ċ ) Ċ