File size: 1,389 Bytes
688925d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.dalab.autocompliance.dto;

import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * DTO representing the compliance status of a specific asset.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AssetComplianceStatusDTO {
    private String assetId;
    private String assetType; // e.g., GCP_COMPUTE_INSTANCE, AWS_S3_BUCKET
    private String assetName; // User-friendly name if available
    private String overallComplianceStatus; // e.g., COMPLIANT, NON_COMPLIANT, PARTIALLY_COMPLIANT, UNKNOWN
    private LocalDateTime lastEvaluatedAt;
    private int totalChecksApplied;
    private int compliantChecks;
    private int nonCompliantChecks;
    private List<ComplianceFindingSummaryDTO> recentNonCompliantFindings; // Summaries of key issues

    // Could also include links to full reports involving this asset
    private List<String> relevantReportIds;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ComplianceFindingSummaryDTO {
        private String checkId;
        private String description;
        private String severity;
        private String reportId; // Report where this finding was detailed
        private LocalDateTime findingTimestamp;
    }
}