import { autoserializeAs, Command, inheritSerialization, serializable, Validators } from '@my-devkit/core'; import { QueuingSystem } from '@we-scrum/enums'; export class UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThresholdCustom { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public topic: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public subscription: string = null; @Validators.IsNotEmpty() @Validators.IsNumber() @Validators.Min(10) @autoserializeAs(Number) public threshold: number = null; } export class UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThreshold { @Validators.IsNotEmpty() @Validators.IsNumber() @Validators.Min(10) @autoserializeAs(Number) public default: number = null; @Validators.ValidateNested() @Validators.IsNotEmpty() @Validators.IsArray() @autoserializeAs(UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThresholdCustom) public custom: UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThresholdCustom[] = []; } @serializable @inheritSerialization(Command) export class UpdateEnvironmentQueuingSystemCommand extends Command { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public environmentId: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(QueuingSystem) @autoserializeAs(QueuingSystem) public queuingSystem: QueuingSystem = null; @Validators.IsOptionalIf((o) => o.queuingSystem === QueuingSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public endpoint: string = null; @Validators.IsOptionalIf((o) => o.queuingSystem === QueuingSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public sharedAccessKeyName: string = null; @Validators.IsOptionalIf((o) => o.queuingSystem === QueuingSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public sharedAccessKey: string = null; @Validators.ValidateNested() @Validators.IsOptionalIf((o) => o.queuingSystem === QueuingSystem.None) @Validators.IsNotEmpty() @autoserializeAs(UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThreshold) public activeMessageCountAlertThreshold: UpdateEnvironmentQueuingSystemCommandActiveMessageCountAlertThreshold = null; constructor() { super('UpdateEnvironmentQueuingSystemCommand'); } }