@igli.kokici/st-open-api
Version:
Generates API client SDKs from an OpenAPI specification written in OpenAPI version 3.x.x
79 lines (77 loc) • 3.56 kB
TypeScript
import { IExternalDocumentation } from "./i-external-documentation";
import { ITag } from "./i-tag";
import { IServer } from "./i-server";
import { IParameter } from "./i-parameter";
import { IReference } from "./i-reference";
import { IRequestBody } from "./i-request-body";
export interface IOperation {
/**
* A list of tags for API documentation control. Tags can be used for logical grouping of
* operations by resources or any other qualifier.
*/
tags?: Array<ITag>;
/**
* A short summary of what the operation does.
*/
summary?: string;
/**
* A verbose explanation of the operation behavior. CommonMark syntax MAY be used for
* rich text representation.
*/
description?: string;
/**
* Additional external documentation for this operation.
*/
externalDocs?: IExternalDocumentation;
/**
* Unique string used to identify the operation. The id MUST be unique among all operations
* described in the API. The operationId value is case-sensitive. Tools and libraries MAY use
* the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow
* common programming naming conventions.
*/
operationId?: string;
/**
* A list of parameters that are applicable for this operation.
* If a parameter is already defined at the Path Item, the new definition will override it but can
* never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined
* by a combination of a name and location. The list can use the Reference Object to link
* to parameters that are defined at the OpenAPI Object's components/parameters.
*/
parameters?: Array<IParameter>;
/**
* The request body applicable for this operation. The requestBody is only supported in HTTP methods
* where the HTTP 1.1 specification RFC7231 has explicitly defined semantics for request bodies.
* In other cases where the HTTP spec is vague, requestBody SHALL be ignored by consumers.
*/
requestBody?: IRequestBody | IReference;
/**
* REQUIRED. The list of possible responses as they are returned from executing this operation.
*/
responses: {};
/**
* A map of possible out-of band callbacks related to the parent operation.
* The key is a unique identifier for the Callback Object. Each value in the map is a Callback Object
* that describes a request that may be initiated by the API provider and the expected responses.
*/
callbacks?: {};
/**
* Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the
* declared operation. Default value is false.
*/
deprecated?: boolean;
/**
* A declaration of which security mechanisms can be used for this operation.
* 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.
* To make security optional, an empty security requirement ({}) can be included in the array.
* This definition overrides any declared top-level security. To remove a top-level security
* declaration, an empty array can be used.
*/
security?: [];
/**
* An alternative server array to service this operation.
* If an alternative server object is specified at the Path Item Object or Root level,
* it will be overridden by this value.
*/
servers?: Array<IServer>;
}