@itwin/core-common
Version:
iTwin.js components common to frontend and backend
141 lines • 3.72 kB
TypeScript
/** @packageDocumentation
* @module RpcInterface
*/
import { WebAppRpcProtocol } from "./WebAppRpcProtocol";
/** An OpenAPI 3.0 root document object.
* @internal
*/
export interface OpenAPIDocument {
openapi: "3.0.0";
info: OpenAPIInfo;
paths: OpenAPIPaths;
}
/** An OpenAPI 3.0 info object.
* @public
* @deprecated in 3.6 - might be removed in next major version. The RPC system will be significantly refactored (or replaced) in the future.
*/
export interface OpenAPIInfo {
title: string;
version: string;
}
/** An OpenAPI 3.0 paths object.
* @internal
*/
export interface OpenAPIPaths {
[index: string]: OpenAPIPathItem;
}
/** An OpenAPI 3.0 path item object.
* @internal
*/
export interface OpenAPIPathItem {
summary?: string;
get?: OpenAPIOperation;
put?: OpenAPIOperation;
post?: OpenAPIOperation;
delete?: OpenAPIOperation;
options?: OpenAPIOperation;
head?: OpenAPIOperation;
patch?: OpenAPIOperation;
trace?: OpenAPIOperation;
parameters?: OpenAPIParameter[];
}
/** An OpenAPI 3.0 operation object.
* @internal
*/
export interface OpenAPIOperation {
summary?: string;
operationId?: string;
parameters?: OpenAPIParameter[];
requestBody?: OpenAPIRequestBody;
responses: OpenAPIResponses;
}
/** An OpenAPI 3.0 content map.
* @internal
*/
export interface OpenAPIContentMap {
[index: string]: OpenAPIMediaType;
}
/** An OpenAPI 3.0 parameter object.
* @internal
*/
export interface OpenAPIParameter {
name: string;
in: "query" | "header" | "path" | "cookie";
description?: string;
required?: boolean;
allowEmptyValue?: boolean;
style?: "matrix" | "label" | "form" | "simple" | "spaceDelimited" | "pipeDelimited" | "deepObject";
explode?: boolean;
allowReserved?: boolean;
schema?: OpenAPISchema;
content?: OpenAPIContentMap;
}
/** An OpenAPI 3.0 media type object.
* @internal
*/
export interface OpenAPIMediaType {
schema?: OpenAPISchema;
}
/** An OpenAPI 3.0 schema object.
* @internal
*/
export interface OpenAPISchema {
type?: "boolean" | "object" | "array" | "number" | "string";
nullable?: boolean;
description?: string;
}
/** An OpenAPI 3.0 encoding object.
* @internal
*/
export interface OpenAPIEncoding {
contentType?: string;
style?: string;
explode?: boolean;
allowReserved?: boolean;
}
/** An OpenAPI 3.0 parameter object.
* @internal
*/
export interface OpenAPIRequestBody {
description?: string;
content: OpenAPIContentMap;
required?: boolean;
}
/** An OpenAPI 3.0 responses object.
* @internal
*/
export interface OpenAPIResponses {
default?: OpenAPIResponse;
"200"?: OpenAPIResponse;
"301"?: OpenAPIResponse;
"302"?: OpenAPIResponse;
"400"?: OpenAPIResponse;
"404"?: OpenAPIResponse;
"500"?: OpenAPIResponse;
}
/** An OpenAPI 3.0 response object.
* @internal
*/
export interface OpenAPIResponse {
description: string;
content?: {
[index: string]: OpenAPIMediaType;
};
}
/** An OpenAPI-compatible description of an RPC protocol.
* @internal
*/
export declare class RpcOpenAPIDescription {
/** The protocol for this description. */
readonly protocol: WebAppRpcProtocol;
/** The OpenAPI paths object for the protocol. */
get paths(): OpenAPIPaths;
/** An OpenAPI 3.0 (Swagger) description of the RESTful API that is exposed through the protocol. */
get document(): OpenAPIDocument;
/** Creates an OpenAPI description of an RPC protocol. */
constructor(protocol: WebAppRpcProtocol);
/** Converts to JSON. */
toJSON(): OpenAPIDocument;
private generateDescription;
}
//# sourceMappingURL=OpenAPI.d.ts.map