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 recentNonCompliantFindings; // Summaries of key issues // Could also include links to full reports involving this asset private List 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; } }