Spaces:
Build error
Build error
File size: 6,079 Bytes
9373c61 5cfe5c4 |
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
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.
*/
@NotBlank(message = "Policy rules content is required")
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
*/
@NotBlank(message = "Analysis type is required")
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;
}
}
} |