1818 */
1919package org .dependencytrack .resources .v1 .vo ;
2020
21+ import com .fasterxml .jackson .annotation .JsonInclude ;
2122import com .fasterxml .jackson .annotation .JsonProperty ;
2223import io .swagger .v3 .oas .annotations .media .Schema ;
2324import org .dependencytrack .model .AnalysisState ;
3940///
4041/// @since 5.1.0
4142@ NullMarked
43+ @ JsonInclude (JsonInclude .Include .NON_NULL )
4244@ Schema (name = "Finding" , description = "A vulnerability finding for a project component" )
4345public record FindingResponse (
4446 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) Component component ,
@@ -66,7 +68,8 @@ public static FindingResponse of(final Finding finding) {
6668 Boolean .TRUE .equals (component .get ("hasOccurrences" )),
6769 enumValue (component , "scope" , Scope .class ),
6870 value (component , "projectName" , String .class ),
69- value (component , "projectVersion" , String .class )),
71+ value (component , "projectVersion" , String .class ),
72+ value (component , "latestVersion" , String .class )),
7073 new VulnerabilityDetails (
7174 value (vulnerability , "uuid" , UUID .class ),
7275 enumValue (vulnerability , "source" , Source .class ),
@@ -150,6 +153,7 @@ private static Set<Alias> aliases(final @Nullable Object value) {
150153 }
151154
152155 @ Schema (name = "FindingComponent" )
156+ @ JsonInclude (JsonInclude .Include .NON_NULL )
153157 public record Component (
154158 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) UUID uuid ,
155159 @ Nullable String name ,
@@ -162,10 +166,12 @@ public record Component(
162166 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) boolean hasOccurrences ,
163167 @ Nullable Scope scope ,
164168 @ Nullable String projectName ,
165- @ Nullable String projectVersion ) {
169+ @ Nullable String projectVersion ,
170+ @ Nullable String latestVersion ) {
166171 }
167172
168173 @ Schema (name = "FindingVulnerability" )
174+ @ JsonInclude (JsonInclude .Include .NON_NULL )
169175 public record VulnerabilityDetails (
170176 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) UUID uuid ,
171177 @ Nullable Source source ,
@@ -196,12 +202,14 @@ public record VulnerabilityDetails(
196202 }
197203
198204 @ Schema (name = "FindingCwe" )
205+ @ JsonInclude (JsonInclude .Include .NON_NULL )
199206 public record Cwe (
200207 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) int cweId ,
201208 @ Nullable String name ) {
202209 }
203210
204211 @ Schema (name = "FindingVulnerabilityAlias" )
212+ @ JsonInclude (JsonInclude .Include .NON_NULL )
205213 public record Alias (
206214 @ Nullable String cveId ,
207215 @ Nullable String ghsaId ,
@@ -212,13 +220,15 @@ public record Alias(
212220 }
213221
214222 @ Schema (name = "FindingAnalysis" )
223+ @ JsonInclude (JsonInclude .Include .NON_NULL )
215224 public record Analysis (
216225 @ Nullable AnalysisState state ,
217226 @ JsonProperty ("isSuppressed" )
218227 @ Schema (requiredMode = Schema .RequiredMode .REQUIRED ) boolean isSuppressed ) {
219228 }
220229
221230 @ Schema (name = "FindingAttribution" )
231+ @ JsonInclude (JsonInclude .Include .NON_NULL )
222232 public record Attribution (
223233 @ Nullable String analyzerIdentity ,
224234 @ Schema (type = "integer" , format = "int64" , description = "Attribution timestamp in milliseconds since the Unix epoch" )
0 commit comments