openapi-to-graphql-harshith
Version:
Generates a GraphQL schema for a given OpenAPI Specification (OAS)
243 lines (242 loc) • 6.45 kB
TypeScript
/**
* Type definitions for the OpenAPI Specification 3.
*/
declare type ExternalDocumentationObject = {
description?: string;
url: string;
};
export declare type SchemaObject = {
title?: string;
type?: 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array';
format?: string;
nullable?: boolean;
description?: string;
properties?: {
[]: SchemaObject | ReferenceObject;
};
required?: string[];
default?: any;
additionalProperties?: SchemaObject | ReferenceObject | boolean;
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?: {
[]: HeaderObject | ReferenceObject;
};
style?: string;
explode?: boolean;
allowReserved?: boolean;
};
export declare type MediaTypeObject = {
schema?: SchemaObject | ReferenceObject;
example?: any;
examples?: {
[]: ExampleObject | ReferenceObject;
};
encoding?: {
[]: 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?: {
[]: ExampleObject | ReferenceObject;
};
content?: {
[]: MediaTypeObject;
};
};
export declare type MediaTypesObject = {
[]: MediaTypeObject;
};
export declare type ServerObject = {
url: string;
description?: string;
variables?: object;
};
export declare type RequestBodyObject = {
description?: string;
content: {
[]: MediaTypeObject;
};
required?: boolean;
};
export declare type LinkObject = {
operationRef?: string;
operationId?: string;
parameters?: {
[]: any;
};
requestBody?: any;
description?: string;
server?: ServerObject;
};
export declare type LinksObject = {
[]: LinkObject | ReferenceObject;
};
export declare type ResponseObject = {
description: string;
headers?: {
[]: HeaderObject | ReferenceObject;
};
content?: MediaTypesObject;
links?: LinksObject;
};
export declare type ResponsesObject = {
[]: ResponseObject | ReferenceObject;
};
export declare type SecurityRequirementObject = {
[]: 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?: CallbacksObject;
deprecated?: boolean;
security?: SecurityRequirementObject[];
servers?: ServerObject[];
};
export declare type PathItemObject = {
$ref?: string;
summary?: string;
description?: string;
get: OperationObject;
put: OperationObject;
post: OperationObject;
delete: OperationObject;
options: OperationObject;
head: OperationObject;
patch: OperationObject;
trace: OperationObject;
servers?: ServerObject[];
parameters?: [ParameterObject | ReferenceObject];
};
declare type PathsObject = {
[]: PathItemObject;
};
export declare type CallbackObject = {
[]: PathItemObject;
};
export declare type CallbacksObject = {
[]: CallbackObject | ReferenceObject;
};
declare type OAuthFlowObject = {
authorizationUrl?: string;
tokenUrl?: string;
refreshUrl?: string;
scopes?: {
[]: 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 = {
[]: SecuritySchemeObject | ReferenceObject;
};
declare type ComponentsObject = {
schemas?: {
[]: SchemaObject | ReferenceObject;
};
responses?: ResponsesObject;
parameters?: {
[]: ParameterObject | ReferenceObject;
};
examples?: {
[]: ExampleObject | ReferenceObject;
};
requestBodies?: {
[]: RequestBodyObject | ReferenceObject;
};
headers?: {
[]: HeaderObject | ReferenceObject;
};
securitySchemes?: SecuritySchemesObject;
links?: LinksObject;
callbacks?: {
[]: CallbackObject | 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 {};