src/verifier/presentations/dto/resolved-schema-metadata-response.dto.ts

Index

Properties

Properties

Optional frameworkType
Type : string
Decorators :
@ApiPropertyOptional({description: 'Trust framework type'})
Optional isLoTE
Type : boolean
Decorators :
@ApiPropertyOptional({description: 'Whether the authority is LoTE'})
Optional value
Type : string
Decorators :
@ApiPropertyOptional({description: 'Trust-framework-specific value'})
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";

export class ResolvedSchemaMetadataReferenceDto {
    @ApiProperty({ description: "Resolved reference format" })
    format!: string;

    @ApiProperty({ description: "Resolved reference URI" })
    uri!: string;

    @ApiPropertyOptional({ description: "Integrity hash for the reference" })
    integrity?: string;

    @ApiPropertyOptional({
        type: "object",
        additionalProperties: true,
        description: "Additional metadata attached to the reference",
    })
    meta?: Record<string, unknown>;

    @ApiPropertyOptional({
        type: "object",
        additionalProperties: true,
        description: "Parsed schema document for the reference",
    })
    parsedSchema?: Record<string, unknown>;
}

export class ResolvedSchemaMetadataSchemaUriDto {
    @ApiPropertyOptional({ description: "Optional format identifier" })
    formatIdentifier?: string;

    @ApiProperty({ description: "Schema URI" })
    uri!: string;
}

export class ResolvedSchemaMetadataTrustedAuthorityDto {
    @ApiPropertyOptional({ description: "Trust framework type" })
    frameworkType?: string;

    @ApiPropertyOptional({ description: "Trust-framework-specific value" })
    value?: string;

    @ApiPropertyOptional({ description: "Whether the authority is LoTE" })
    isLoTE?: boolean;
}

export class ResolvedSchemaMetadataSchemaDto {
    @ApiProperty({ description: "Schema metadata identifier" })
    id!: string;

    @ApiPropertyOptional({ description: "Schema metadata version" })
    version?: string;

    @ApiPropertyOptional({ description: "Human-readable name" })
    name?: string;

    @ApiPropertyOptional({ description: "Human-readable description" })
    description?: string;

    @ApiPropertyOptional({ description: "Category label" })
    category?: string;

    @ApiPropertyOptional({ type: [String], description: "Free-form tags" })
    tags?: string[];

    @ApiProperty({
        type: [String],
        description: "Supported credential formats",
    })
    supportedFormats!: string[];

    @ApiProperty({
        type: [ResolvedSchemaMetadataSchemaUriDto],
        description: "Resolved schema URIs",
    })
    schemaURIs!: ResolvedSchemaMetadataSchemaUriDto[];

    @ApiProperty({
        type: [ResolvedSchemaMetadataTrustedAuthorityDto],
        description: "Trusted authorities resolved from the schema metadata",
    })
    trustedAuthorities!: ResolvedSchemaMetadataTrustedAuthorityDto[];

    @ApiProperty({
        type: [ResolvedSchemaMetadataReferenceDto],
        description: "Resolved referenced schemas",
    })
    resolvedReferences!: ResolvedSchemaMetadataReferenceDto[];

    @ApiProperty({
        type: "object",
        additionalProperties: true,
        description: "Derived DCQL query",
    })
    dcqlQuery!: Record<string, unknown>;
}

export class ResolvedSchemaMetadataResponseDto {
    @ApiProperty({ description: "Signed JWT returned by the resolver" })
    signedJwt!: string;

    @ApiProperty({ type: ResolvedSchemaMetadataSchemaDto })
    schema!: ResolvedSchemaMetadataSchemaDto;
}

results matching ""

    No results matching ""