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; /** * Additional external documentation. */ externalDocs?: IExternalDocumentation; }