@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
172 lines • 4.47 kB
TypeScript
import type { Oas3SecurityScheme, ApiKeyAuth, BasicAuth, BearerAuth, OpenIDAuth, OAuth2Auth, MutualTLSAuth } from './openapi.js';
export interface InfoObject {
title: string;
description?: string;
summary?: string;
version: string;
}
export interface OpenAPISourceDescription {
name: string;
type: 'openapi';
url: string;
'x-serverUrl'?: string;
}
export interface ArazzoSourceDescription {
name: string;
type: 'arazzo';
url: string;
}
export type SourceDescription = OpenAPISourceDescription | ArazzoSourceDescription;
export interface Parameter {
in?: 'header' | 'query' | 'path' | 'cookie';
name: string;
value: string | number | boolean;
reference?: string;
}
export type ExtendedSecurity = {
schemeName: string;
values: Record<string, string>;
} | {
scheme: Oas3SecurityScheme;
values: Record<string, string>;
};
export type ResolvedSecurity = {
scheme: ApiKeyAuth;
values: {
apiKey: string;
};
} | {
scheme: BasicAuth;
values: {
username: string;
password: string;
};
} | {
scheme: BearerAuth;
values: {
token: string;
};
} | {
scheme: OAuth2Auth;
values: {
accessToken: string;
};
} | {
scheme: OpenIDAuth;
values: {
accessToken: string;
};
} | {
scheme: MutualTLSAuth;
values: Record<string, unknown>;
};
export interface ExtendedOperation {
url: string;
method: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options' | 'trace' | 'connect' | 'query' | 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' | 'QUERY';
}
export interface Replacement {
target: string;
value: string | object | any[];
}
export interface RequestBody {
contentType?: string;
payload: string | object | any[];
encoding?: string;
replacements?: Replacement[];
}
export interface CriteriaObject {
condition: string;
context?: string;
type?: 'regex' | 'jsonpath' | 'simple' | 'xpath' | {
type: 'jsonpath';
version: 'draft-goessner-dispatch-jsonpath-00';
} | {
type: 'xpath';
version: 'xpath-30' | 'xpath-20' | 'xpath-10';
};
}
export interface OnSuccessObject {
name: string;
type: 'goto' | 'end';
stepId?: string;
workflowId?: string;
criteria?: CriteriaObject[];
}
export interface OnFailureObject {
name: string;
type: 'goto' | 'retry' | 'end';
workflowId?: string;
stepId?: string;
retryAfter?: number;
retryLimit?: number;
criteria?: CriteriaObject[];
}
export interface Step {
stepId: string;
description?: string;
operationId?: string;
operationPath?: string;
workflowId?: string;
parameters?: Parameter[];
successCriteria?: CriteriaObject[];
onSuccess?: OnSuccessObject[];
onFailure?: OnFailureObject[];
outputs?: {
[key: string]: string | object | any[] | boolean | number;
};
'x-operation'?: ExtendedOperation;
'x-security'?: ExtendedSecurity[];
requestBody?: RequestBody;
}
export interface Workflow {
workflowId: string;
summary?: string;
description?: string;
parameters?: Parameter[];
dependsOn?: string[];
inputs?: {
type: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
properties?: {
[key: string]: any;
};
required?: string[];
items?: {
[key: string]: any;
};
};
outputs?: {
[key: string]: string;
};
steps: Step[];
successActions?: OnSuccessObject[];
failureActions?: OnFailureObject[];
'x-security'?: ExtendedSecurity[];
}
export interface ArazzoDefinition {
arazzo: '1.0.1';
info: InfoObject;
sourceDescriptions: SourceDescription[];
workflows: Workflow[];
components?: {
inputs?: {
[key: string]: {
type: string;
properties?: {
[key: string]: any;
};
};
};
parameters?: {
[key: string]: Parameter;
};
successActions?: {
[key: string]: OnSuccessObject;
};
failureActions?: {
[key: string]: OnFailureObject;
};
};
}
export declare const VERSION_PATTERN: RegExp;
export declare const ARAZZO_VERSIONS_SUPPORTED_BY_RESPECT: string[];
//# sourceMappingURL=arazzo.d.ts.map