/** * Connection DTOs * * Data Transfer Objects for federation connection API. */ import { IsString, IsUrl, IsOptional, IsObject, IsNumber } from "class-validator"; /** * DTO for initiating a connection */ export class InitiateConnectionDto { @IsUrl() remoteUrl!: string; } /** * DTO for accepting a connection */ export class AcceptConnectionDto { @IsOptional() @IsObject() metadata?: Record; } /** * DTO for rejecting a connection */ export class RejectConnectionDto { @IsString() reason!: string; } /** * DTO for disconnecting a connection */ export class DisconnectConnectionDto { @IsOptional() @IsString() reason?: string; } /** * DTO for incoming connection request (from remote instance) */ export class IncomingConnectionRequestDto { @IsString() instanceId!: string; @IsUrl() instanceUrl!: string; @IsString() publicKey!: string; @IsObject() capabilities!: Record; @IsNumber() timestamp!: number; @IsString() signature!: string; }