Spaces:
Build error
Build error
| package com.dalab.policyengine.dto; | |
| import java.util.List; | |
| import java.util.Map; | |
| import jakarta.validation.constraints.NotBlank; | |
| /** | |
| * DTO for requesting policy impact analysis preview. | |
| * This allows users to see what assets would be affected by policy changes before implementation. | |
| */ | |
| public class PolicyImpactRequestDTO { | |
| /** | |
| * The policy rules content to analyze for impact (JSON format). | |
| * Required field containing the policy rules that need impact analysis. | |
| */ | |
| private String rulesContent; | |
| /** | |
| * Type of analysis to perform: FULL, QUICK, or TARGETED. | |
| * - FULL: Comprehensive analysis across all assets | |
| * - QUICK: Fast analysis with sampling | |
| * - TARGETED: Analysis for specific asset types/groups | |
| */ | |
| private String analysisType; | |
| /** | |
| * Optional scope limitations for targeted analysis. | |
| * Can include asset types, data sources, or specific asset IDs. | |
| */ | |
| private PolicyImpactScopeDTO scope; | |
| /** | |
| * Include estimated performance impact in the analysis. | |
| * When true, includes estimates for processing time and resource usage. | |
| */ | |
| private Boolean includePerformanceEstimate = false; | |
| /** | |
| * Include cost impact analysis in the preview. | |
| * When true, estimates potential costs of policy enforcement. | |
| */ | |
| private Boolean includeCostImpact = false; | |
| /** | |
| * Include compliance impact analysis. | |
| * When true, shows how this policy affects compliance with other policies. | |
| */ | |
| private Boolean includeComplianceImpact = false; | |
| /** | |
| * Additional context parameters for policy evaluation. | |
| * Flexible map for custom analysis parameters. | |
| */ | |
| private Map<String, Object> contextParameters; | |
| // Constructors | |
| public PolicyImpactRequestDTO() {} | |
| public PolicyImpactRequestDTO(String rulesContent, String analysisType) { | |
| this.rulesContent = rulesContent; | |
| this.analysisType = analysisType; | |
| } | |
| // Getters and Setters | |
| public String getRulesContent() { | |
| return rulesContent; | |
| } | |
| public void setRulesContent(String rulesContent) { | |
| this.rulesContent = rulesContent; | |
| } | |
| public String getAnalysisType() { | |
| return analysisType; | |
| } | |
| public void setAnalysisType(String analysisType) { | |
| this.analysisType = analysisType; | |
| } | |
| public PolicyImpactScopeDTO getScope() { | |
| return scope; | |
| } | |
| public void setScope(PolicyImpactScopeDTO scope) { | |
| this.scope = scope; | |
| } | |
| public Boolean getIncludePerformanceEstimate() { | |
| return includePerformanceEstimate; | |
| } | |
| public void setIncludePerformanceEstimate(Boolean includePerformanceEstimate) { | |
| this.includePerformanceEstimate = includePerformanceEstimate; | |
| } | |
| public Boolean getIncludeCostImpact() { | |
| return includeCostImpact; | |
| } | |
| public void setIncludeCostImpact(Boolean includeCostImpact) { | |
| this.includeCostImpact = includeCostImpact; | |
| } | |
| public Boolean getIncludeComplianceImpact() { | |
| return includeComplianceImpact; | |
| } | |
| public void setIncludeComplianceImpact(Boolean includeComplianceImpact) { | |
| this.includeComplianceImpact = includeComplianceImpact; | |
| } | |
| public Map<String, Object> getContextParameters() { | |
| return contextParameters; | |
| } | |
| public void setContextParameters(Map<String, Object> contextParameters) { | |
| this.contextParameters = contextParameters; | |
| } | |
| /** | |
| * Nested DTO for defining analysis scope limitations. | |
| */ | |
| public static class PolicyImpactScopeDTO { | |
| /** | |
| * Specific asset types to include in analysis (e.g., "database", "file", "api"). | |
| */ | |
| private List<String> assetTypes; | |
| /** | |
| * Specific data sources to include (e.g., connection IDs or source names). | |
| */ | |
| private List<String> dataSources; | |
| /** | |
| * Specific asset IDs to analyze (for targeted analysis). | |
| */ | |
| private List<String> assetIds; | |
| /** | |
| * Include only assets with specific labels. | |
| */ | |
| private List<String> requiredLabels; | |
| /** | |
| * Exclude assets with specific labels. | |
| */ | |
| private List<String> excludedLabels; | |
| /** | |
| * Maximum number of assets to analyze (for performance control). | |
| */ | |
| private Integer maxAssets; | |
| // Constructors | |
| public PolicyImpactScopeDTO() {} | |
| // Getters and Setters | |
| public List<String> getAssetTypes() { | |
| return assetTypes; | |
| } | |
| public void setAssetTypes(List<String> assetTypes) { | |
| this.assetTypes = assetTypes; | |
| } | |
| public List<String> getDataSources() { | |
| return dataSources; | |
| } | |
| public void setDataSources(List<String> dataSources) { | |
| this.dataSources = dataSources; | |
| } | |
| public List<String> getAssetIds() { | |
| return assetIds; | |
| } | |
| public void setAssetIds(List<String> assetIds) { | |
| this.assetIds = assetIds; | |
| } | |
| public List<String> getRequiredLabels() { | |
| return requiredLabels; | |
| } | |
| public void setRequiredLabels(List<String> requiredLabels) { | |
| this.requiredLabels = requiredLabels; | |
| } | |
| public List<String> getExcludedLabels() { | |
| return excludedLabels; | |
| } | |
| public void setExcludedLabels(List<String> excludedLabels) { | |
| this.excludedLabels = excludedLabels; | |
| } | |
| public Integer getMaxAssets() { | |
| return maxAssets; | |
| } | |
| public void setMaxAssets(Integer maxAssets) { | |
| this.maxAssets = maxAssets; | |
| } | |
| } | |
| } |