st-open-api
Version:
Generates API client SDKs from an OpenAPI specification written in OpenAPI version 3.x.x
54 lines (53 loc) • 2.17 kB
TypeScript
import { IPaths } from "./i-paths";
import { IExternalDocumentation } from "./i-external-documentation";
import { ITag } from "./i-tag";
import { IComponents } from "./i-components";
export interface IOpenApi {
/**
* REQUIRED. This string MUST be the semantic version number of the OpenAPI Specification
* version that the OpenAPI document uses. The openapi field SHOULD be used by tooling
* specifications and clients to interpret the OpenAPI document. This is not related
* to the API info.version string.
*/
openapi: string;
/**
* REQUIRED. Provides metadata about the API. The metadata MAY
* be used by tooling as required.
*/
info: {};
/**
* An array of Server Objects, which provide connectivity information to a target server.
* If the servers property is not provided, or is an empty array, the default value
* would be a Server Object with a url value of /
*/
servers?: [{}];
/**
* REQUIRED. The available paths and operations for the API.
*/
paths: IPaths;
/**
* An element to hold various schemas for the specification.
*/
components?: IComponents;
/**
* A declaration of which security mechanisms can be used across the API.
* The list of values includes alternative security requirement
* objects that can be used. Only one of the security requirement
* objects need to be satisfied to authorize a request.
* Individual operations can override this definition. To make security optional,
* an empty security requirement ({}) can be included in the array.
*/
security?: {};
/**
* A list of tags used by the specification with additional metadata.
* The order of the tags can be used to reflect on their order by the parsing tools.
* Not all tags that are used by the Operation Object must be declared.
* The tags that are not declared MAY be organized randomly or based on the tools' logic.
* Each tag name in the list MUST be unique.
*/
tags?: Array<ITag>;
/**
* Additional external documentation.
*/
externalDocs?: IExternalDocumentation;
}