File size: 3,245 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.dalab.autocompliance.service;

import com.dalab.autocompliance.dto.ComplianceReportDefinitionDTO;
import com.dalab.autocompliance.dto.ReportGenerationRequestDTO;
import com.dalab.autocompliance.dto.ReportGenerationResponseDTO;
import com.dalab.autocompliance.dto.ReportJobStatusDTO;
import com.dalab.autocompliance.dto.ComplianceReportDTO;
import com.dalab.autocompliance.dto.AssetComplianceStatusDTO;
import com.dalab.autocompliance.dto.ComplianceControlDTO;
import com.dalab.autocompliance.dto.ControlEvaluationRequestDTO;
import com.dalab.autocompliance.dto.ControlEvaluationResponseDTO;
// Future DTOs:
// import com.dalab.autocompliance.dto.ReportGenerationRequestDTO;
// import com.dalab.autocompliance.dto.ReportGenerationResponseDTO;
// import com.dalab.autocompliance.dto.ReportJobStatusDTO;

import java.util.List;

public interface IComplianceService {

    /**
     * Lists all available compliance report definitions.
     * @return A list of ComplianceReportDefinitionDTOs.
     */
    List<ComplianceReportDefinitionDTO> listAvailableReportDefinitions();

    /**
     * Initiates the generation of a specific compliance report.
     * @param reportType The type of report to generate.
     * @param request DTO containing parameters for report generation.
     * @return A response DTO with the job ID and status.
     */
    ReportGenerationResponseDTO generateComplianceReport(String reportType, ReportGenerationRequestDTO request);

    /**
     * Retrieves the status of a specific compliance report generation job.
     * @param jobId The ID of the job.
     * @return A DTO with the job status details.
     */
    ReportJobStatusDTO getReportGenerationJobStatus(String jobId);

    /**
     * Retrieves a generated compliance report by its ID.
     * @param reportId The ID of the generated report.
     * @return The ComplianceReportDTO or null if not found.
     */
    ComplianceReportDTO getGeneratedReport(String reportId);

    /**
     * Retrieves the overall compliance status for a specific asset.
     * @param assetId The ID of the asset.
     * @return AssetComplianceStatusDTO or null if asset not found or no status available.
     */
    AssetComplianceStatusDTO getAssetComplianceStatus(String assetId);

    /**
     * Lists all available (and typically enabled) compliance controls.
     * @return A list of ComplianceControlDTOs.
     */
    List<ComplianceControlDTO> listAvailableControls();

    /**
     * Initiates the evaluation of a specific compliance control.
     * @param controlId The ID of the control to evaluate.
     * @param request DTO containing parameters for the evaluation.
     * @return A response DTO with the job ID and status.
     */
    ControlEvaluationResponseDTO evaluateControl(String controlId, ControlEvaluationRequestDTO request);

    // TODO: Add method to get status of a control evaluation job
    // ControlEvaluationJobStatusDTO getControlEvaluationJobStatus(String jobId);

    // Methods to be added later:
    // ReportGenerationResponseDTO generateComplianceReport(String reportType, ReportGenerationRequestDTO request);
    // ReportJobStatusDTO getReportGenerationJobStatus(String jobId);
    // ... and others for controls and asset status
}