UNPKG

@tsed/openspec

Version:

OpenSpec2 and OpenSpec3 interfaces declarations for TypeScript application

59 lines (49 loc) 1.35 kB
import {OpenSpecHash} from "../common/OpenSpecHash.js"; export interface OS2SecurityBase { /** * The type of the security scheme */ type: "basic" | "apiKey" | "oauth2"; /** * */ description?: string; } export interface OS2SecurityBasic extends OS2SecurityBase { type: "basic"; } export interface OS2SecurityApiKey extends OS2SecurityBase { type: "apiKey"; name: string; in: "query" | "header"; } export interface OS2SecurityOAuth extends OS2SecurityBase { type: "oauth2"; flow: "accessCode" | "application" | "implicit" | "password"; /** * The available scopes for the OAuth2 security scheme. */ scopes: OpenSpecHash<string>; } export interface OS2FlowImplicit extends OS2SecurityOAuth { type: "oauth2"; flow: "implicit"; authorizationUrl: string; } export interface OS2FlowPassword extends OS2SecurityOAuth { type: "oauth2"; flow: "password"; tokenUrl: string; } export interface OS2FlowApplication extends OS2SecurityOAuth { type: "oauth2"; flow: "application"; tokenUrl: string; } export interface OS2FlowAccessCode extends OS2SecurityOAuth { type: "oauth2"; flow: "accessCode"; tokenUrl: string; authorizationUrl: string; } export type OS2Security = OS2SecurityBasic | OS2FlowAccessCode | OS2FlowApplication | OS2FlowImplicit | OS2FlowPassword | OS2SecurityApiKey;