@tsed/openspec
Version:
OpenSpec2 and OpenSpec3 interfaces declarations for TypeScript application
50 lines (49 loc) • 1.4 kB
TypeScript
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;