src/compliance/dto/policy.dto.ts
Properties |
| controls |
Type : CompliancePolicyControl[]
|
Decorators :
@IsNotEmpty()
|
|
Defined in src/compliance/dto/policy.dto.ts:50
|
| description |
Type : string
|
Decorators :
@IsNotEmpty()
|
|
Defined in src/compliance/dto/policy.dto.ts:38
|
| jurisdiction |
Type : Jurisdiction
|
Decorators :
@IsNotEmpty()
|
|
Defined in src/compliance/dto/policy.dto.ts:43
|
| name |
Type : string
|
Decorators :
@IsNotEmpty()
|
|
Defined in src/compliance/dto/policy.dto.ts:33
|
| source |
Type : CompliancePolicySource
|
Default value : CompliancePolicySource.INTERNAL
|
Decorators :
@ApiProperty()
|
|
Defined in src/compliance/dto/policy.dto.ts:54
|
import { ApiProperty, PartialType } from "@nestjs/swagger";
import {
IsArray,
IsEnum,
IsNotEmpty,
IsOptional,
IsString,
ValidateNested,
} from "class-validator";
import { Type } from "class-transformer";
import { Jurisdiction } from "../compliance.constants";
import {
ComplianceStatus,
ComplianceRiskCategory,
ComplianceRiskSeverity,
CompliancePolicySource,
} from "../entities/compliance.types";
export class CompliancePolicyControl {
// These are stored as ComplianceRules in the database
id?: number;
name: string;
description: string;
countermeasure: string;
category: ComplianceRiskCategory;
severity?: ComplianceRiskSeverity;
}
export class CompliancePolicyDto {
@IsNotEmpty()
@IsString()
@ApiProperty({ required: true })
name: string;
@IsNotEmpty()
@IsString()
@ApiProperty({ required: true })
description: string;
@IsNotEmpty()
@ApiProperty({ required: true })
@IsEnum(Jurisdiction, { each: true })
jurisdiction: Jurisdiction;
@IsNotEmpty()
@ApiProperty({ required: true })
@IsArray()
@ValidateNested({ each: true })
@Type(() => CompliancePolicyControl)
controls: CompliancePolicyControl[];
@ApiProperty()
@IsEnum(Jurisdiction, { each: true })
source: CompliancePolicySource = CompliancePolicySource.INTERNAL;
}
export class UpdateCompliancePolicyDto extends PartialType(
CompliancePolicyDto,
) {
@IsEnum(ComplianceStatus, { each: true })
@ApiProperty({ required: false })
@IsOptional()
status?: string;
}