@ardatan/openapi-to-graphql
Version:
Generates a GraphQL schema for a given OpenAPI Specification (OAS)
231 lines (230 loc) • 6.07 kB
TypeScript
/**
* Type definitions for the OpenAPI Specification 3.
*/
declare type ExternalDocumentationObject = {
description?: string;
url: string;
};
export declare type SchemaObject = {
$ref?: string;
title?: string;
type?: 'string' | 'number' | 'object' | 'array' | 'boolean' | 'integer';
format?: string;
nullable?: boolean;
description?: string;
properties?: {
[key: string]: SchemaObject | ReferenceObject;
};
required?: string[];
default?: any;
additionalProperties?: SchemaObject | ReferenceObject;
items?: SchemaObject | ReferenceObject;
additionalItems?: boolean | string[];
enum?: string[];
allOf?: (SchemaObject | ReferenceObject)[];
anyOf?: (SchemaObject | ReferenceObject)[];
oneOf?: (SchemaObject | ReferenceObject)[];
not?: (SchemaObject | ReferenceObject)[];
};
export declare type ReferenceObject = {
$ref: string;
};
declare type ExampleObject = {
summary?: string;
description?: string;
value?: any;
externalValue?: string;
};
declare type HeaderObject = {
name?: string;
in?: 'query' | 'header' | 'path' | 'cookie';
description?: string;
required?: boolean;
deprecated?: boolean;
allowEmptyValue?: boolean;
};
declare type EncodingObject = {
contentType?: string;
headers?: {
[key: string]: HeaderObject | ReferenceObject;
};
style?: string;
explode?: boolean;
allowReserved?: boolean;
};
export declare type MediaTypeObject = {
schema?: SchemaObject | ReferenceObject;
example?: any;
examples?: {
[key: string]: ExampleObject | ReferenceObject;
};
encoding?: {
[key: string]: EncodingObject;
};
};
export declare type ParameterObject = {
name: string;
in: 'query' | 'header' | 'path' | 'cookie';
description?: string;
required?: boolean;
deprecated?: boolean;
allowEmptyValue?: boolean;
style?: 'form' | 'simple';
explode?: boolean;
allowReserved?: boolean;
schema?: SchemaObject | ReferenceObject;
example?: any;
examples?: {
[key: string]: ExampleObject | ReferenceObject;
};
content?: {
[key: string]: MediaTypeObject;
};
};
export declare type MediaTypesObject = {
[key: string]: MediaTypeObject;
};
export declare type ServerObject = {
url: string;
description?: string;
variables?: object;
};
export declare type RequestBodyObject = {
description?: string;
content: {
[key: string]: MediaTypeObject;
};
required?: boolean;
};
export declare type LinkObject = {
operationRef?: string;
operationId?: string;
parameters?: {
[key: string]: any;
};
requestBody?: any;
description?: string;
server?: ServerObject;
};
export declare type LinksObject = {
[key: string]: LinkObject | ReferenceObject;
};
export declare type ResponseObject = {
description: string;
headers?: {
[key: string]: HeaderObject | ReferenceObject;
};
content?: MediaTypesObject;
links?: LinksObject;
};
export declare type ResponsesObject = {
[key: string]: ResponseObject | ReferenceObject;
};
export declare type SecurityRequirementObject = {
[key: string]: string[];
};
export declare type OperationObject = {
tags?: string[];
summary?: string;
description?: string;
externalDocs?: ExternalDocumentationObject;
operationId?: string;
parameters?: Array<ParameterObject | ReferenceObject>;
requestBody?: RequestBodyObject | ReferenceObject;
responses?: ResponsesObject;
callbacks?: any;
deprecated?: boolean;
security?: SecurityRequirementObject[];
servers?: ServerObject[];
};
export declare type PathItemObject = {
$ref?: string;
summary?: string;
description: string;
[key: string]: any;
servers?: ServerObject[];
parameters?: [ParameterObject | ReferenceObject];
};
declare type PathsObject = {
[key: string]: PathItemObject;
};
declare type OAuthFlowObject = {
authorizationUrl?: string;
tokenUrl?: string;
refreshUrl?: string;
scopes?: {
[key: string]: string;
};
};
declare type OAuthFlowsObject = {
implicit?: OAuthFlowObject;
password?: OAuthFlowObject;
clientCredentials?: OAuthFlowObject;
authorizationCode?: OAuthFlowObject;
};
export declare type SecuritySchemeObject = {
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
description?: string;
name?: string;
in?: string;
scheme?: string;
bearerFormat?: string;
flows?: OAuthFlowsObject;
openIdConnectUrl?: string;
};
export declare type SecuritySchemesObject = {
[key: string]: SecuritySchemeObject | ReferenceObject;
};
declare type ComponentsObject = {
schemas?: {
[key: string]: SchemaObject | ReferenceObject;
};
responses?: ResponsesObject;
parameters?: {
[key: string]: ParameterObject | ReferenceObject;
};
examples?: {
[key: string]: ExampleObject | ReferenceObject;
};
requestBodies?: {
[key: string]: RequestBodyObject | ReferenceObject;
};
headers?: {
[key: string]: HeaderObject | ReferenceObject;
};
securitySchemes?: SecuritySchemesObject;
links?: LinksObject;
callbacks?: {
[key: string]: object | ReferenceObject;
};
};
declare type TagObject = {
name: string;
description?: string;
externalDocs?: ExternalDocumentationObject;
};
export declare type Oas3 = {
openapi: string;
info: {
title: string;
description?: string;
termsOfService?: string;
contact?: {
name?: string;
url?: string;
email?: string;
};
license?: {
name: string;
url?: string;
};
version: string;
};
servers?: ServerObject[];
paths: PathsObject;
components?: ComponentsObject;
security?: SecurityRequirementObject[];
tags?: TagObject[];
externalDocs?: ExternalDocumentationObject;
};
export {};