@microsoft.azure/autorest.incubator
Version:
AutoRest incubator project
354 lines • 12.3 kB
TypeScript
import { Refable as Reference, Optional } from './common';
import { Dictionary } from '#common/dictionary';
/** Nearly all classes can support additional key-value pairs where the key starts with 'x-' */
export interface Extensions {
[key: string]: any;
}
/** Properties, Parameters, Operations and Schemas require additional support */
export interface Implementation<T> {
}
export interface Details {
}
/** Property References may have additional data that's not in the target reference */
export interface PropertyDetails extends Details, Extensions {
description?: string;
}
export interface ParameterDetails extends Details {
}
export interface SchemaDetails extends Details {
}
export interface HttpOperationDetails extends Details {
}
export declare function hasContent<T extends Partial<HasContent>>(parameter: T): parameter is HasContent & T;
export declare function hasSchema<T extends Partial<HasSchema>>(parameter: T): parameter is HasSchema & T;
export declare function hasExample<T extends HasExample>(parameter: T): parameter is HasExample & T;
export declare function hasExamples<T extends HasExamples>(parameter: T): parameter is HasExamples & T;
export declare function isCookieParameter(parameter: Parameter): parameter is InCookie & Parameter;
export declare function isHeaderParameter(parameter: Parameter): parameter is InHeader & Parameter;
export declare function isPathParameter(parameter: Parameter): parameter is InPath & Parameter;
export declare function isQueryParameter(parameter: Parameter): parameter is InQuery & Parameter;
/** Properties have additional data when referencing them */
export declare type PropertyReference<T> = PropertyDetails & (Reference<T>);
/**
* @description The location of the parameter.
*
* @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#user-content-parameterIn
*/
export declare enum ParameterLocation {
Query = "query",
Header = "header",
Cookie = "cookie",
Path = "path"
}
/**
* @description common ways of serializing simple parameters
* @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#style-values
*/
export declare enum EncodingStyle {
Matrix = "matrix",
Label = "label",
Simple = "simple",
Form = "form",
SpaceDelimited = "spaceDelimited",
PipeDelimited = "pipeDelimited",
DeepObject = "deepObject"
}
export declare enum JsonType {
Array = "array",
Boolean = "boolean",
Integer = "integer",
Number = "number",
Object = "object",
String = "string"
}
export declare enum Scheme {
Bearer = "bearer"
}
export declare enum SecurityType {
ApiKey = "apiKey",
Http = "http",
OAuth2 = "oauth2",
OpenIDConnect = "openIdConnect"
}
export interface Callback extends Dictionary<PathItem> {
}
export interface SecurityRequirement extends Dictionary<string> {
}
export declare type HTTPSecurityScheme = NonBearerHTTPSecurityScheme | BearerHTTPSecurityScheme;
export declare type SecurityScheme = APIKeySecurityScheme | HTTPSecurityScheme | OAuth2SecurityScheme | OpenIdConnectSecurityScheme;
export declare type QueryEncodingStyle = EncodingStyle.Form | EncodingStyle.SpaceDelimited | EncodingStyle.PipeDelimited | EncodingStyle.DeepObject;
export declare type PathEncodingStyle = EncodingStyle.Matrix | EncodingStyle.Label | EncodingStyle.Simple;
export interface Model extends Extensions {
paths: Dictionary<PathItem>;
openApi: string;
info: Info;
externalDocs?: ExternalDocumentation;
servers: Optional<Array<Server>>;
security: Optional<Array<SecurityRequirement>>;
tags: Optional<Array<Tag>>;
components: Optional<Components>;
}
export interface Components extends Extensions {
schemas: Optional<Dictionary<Reference<Schema>>>;
responses: Optional<Dictionary<Reference<Response>>>;
parameters: Optional<Dictionary<Reference<Parameter>>>;
examples: Optional<Dictionary<Reference<Example>>>;
requestBodies: Optional<Dictionary<Reference<RequestBody>>>;
headers: Optional<Dictionary<Reference<Header>>>;
securitySchemes: Optional<Dictionary<Reference<SecurityScheme>>>;
links: Optional<Dictionary<Reference<Link>>>;
callbacks: Optional<Dictionary<Reference<Callback>>>;
}
export interface APIKeySecurityScheme extends Extensions {
type: SecurityType.ApiKey;
name: string;
in: ParameterLocation;
description?: string;
}
export interface AuthorizationCodeOAuthFlow extends Extensions {
authorizationUrl: string;
tokenUrl: string;
refreshUrl?: string;
scopes: Optional<Dictionary<string>>;
}
export interface BearerHTTPSecurityScheme extends Extensions {
scheme: Scheme.Bearer;
bearerFormat?: string;
type: SecurityType.Http;
description?: string;
}
export interface ClientCredentialsFlow extends Extensions {
tokenUrl: string;
refreshUrl?: string;
scopes: Optional<Dictionary<string>>;
}
export interface Contact extends Extensions {
name?: string;
url?: string;
email?: string;
}
export interface Discriminator extends Extensions {
propertyName: string;
mapping: Optional<Dictionary<string>>;
}
export interface Encoding extends Extensions {
contentType?: string;
headers: Optional<Dictionary<Reference<Header>>>;
style?: QueryEncodingStyle;
explode?: boolean;
allowReserved?: boolean;
}
export interface Example extends Extensions {
summary?: string;
description?: string;
value?: any;
externalValue?: string;
}
export interface ExternalDocumentation extends Extensions {
description?: string;
url: string;
}
export interface Header extends Extensions, Partial<HasContent>, Partial<HasSchema>, Partial<HasExample>, Partial<HasExamples> {
description?: string;
required: Optional<boolean>;
deprecated: Optional<boolean>;
allowEmptyValue: Optional<boolean>;
allowReserved: Optional<boolean>;
}
export interface ImplicitOAuthFlow extends Extensions {
authorizationUrl: string;
refreshUrl?: string;
scopes: Dictionary<string>;
}
export interface Info extends Extensions {
title: string;
description?: string;
termsOfService?: string;
contact?: Contact;
license?: License;
version: string;
}
export interface License extends Extensions {
name: string;
url?: string;
}
export interface Link extends Extensions {
operationRef?: string;
operationId?: string;
parameters: Optional<Dictionary<string>>;
requestBody?: any;
description?: string;
server?: Server;
}
export interface MediaType extends Extensions, Partial<HasExample>, Partial<HasExamples> {
/** A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded. */
encoding: Optional<Dictionary<Encoding>>;
/** The schema defining the type used for the request body. */
schema?: Reference<Schema>;
}
export interface NonBearerHTTPSecurityScheme extends Extensions {
scheme: string;
description?: string;
type: SecurityType.Http;
}
export interface OAuth2SecurityScheme extends Extensions {
type: SecurityType.OAuth2;
flows: OAuthFlows;
description?: string;
}
export interface OAuthFlows extends Extensions {
implicit?: ImplicitOAuthFlow;
password?: PasswordOAuthFlow;
clientCredentials?: ClientCredentialsFlow;
authorizationCode?: AuthorizationCodeOAuthFlow;
}
export interface OpenIdConnectSecurityScheme extends Extensions {
type: SecurityType.OpenIDConnect;
openIdConnectUrl: string;
description?: string;
}
export interface HttpOperation extends Extensions, Implementation<HttpOperationDetails> {
tags: Optional<Array<string>>;
summary?: string;
description?: string;
externalDocs?: ExternalDocumentation;
operationId?: string;
parameters: Optional<Array<Reference<Parameter>>>;
requestBody?: Reference<RequestBody>;
responses: Dictionary<Reference<Response>>;
callbacks: Optional<Dictionary<Reference<Callback>>>;
deprecated?: boolean;
security: Optional<Array<SecurityRequirement>>;
servers: Optional<Array<Server>>;
}
export interface HasSchema {
schema: Reference<Schema>;
explode?: boolean;
}
export interface HasContent {
content: Dictionary<MediaType>;
}
export interface HasExample {
example: any;
}
export interface HasExamples {
examples: Dictionary<Reference<HasExample>>;
}
export interface InCookie extends HasSchema, Partial<HasExample>, Partial<HasExamples> {
in: ParameterLocation.Cookie;
style?: EncodingStyle.Form;
}
export interface InHeader extends HasSchema, Partial<HasExample>, Partial<HasExamples> {
in: ParameterLocation.Header;
style?: EncodingStyle.Simple;
}
export interface InPath extends HasSchema, Partial<HasExample>, Partial<HasExamples> {
in: ParameterLocation.Path;
style?: PathEncodingStyle;
}
export interface InQuery extends HasSchema, Partial<HasExample>, Partial<HasExamples> {
in: ParameterLocation.Query;
allowReserved?: boolean;
style?: QueryEncodingStyle;
}
export interface Parameter extends Partial<HasSchema>, Partial<HasContent>, Partial<HasExample>, Partial<HasExamples> {
name: string;
in: ParameterLocation;
description?: string;
allowEmptyValue: Optional<boolean>;
deprecated: Optional<boolean>;
required: Optional<boolean>;
style?: EncodingStyle;
allowReserved?: boolean;
}
export interface PasswordOAuthFlow extends Extensions {
tokenUrl: string;
refreshUrl?: string;
scopes: Optional<Dictionary<string>>;
}
export interface PathItem extends Extensions {
$ref?: string | PathItem;
summary?: string;
description?: string;
get?: HttpOperation;
put?: HttpOperation;
post?: HttpOperation;
delete?: HttpOperation;
options?: HttpOperation;
head?: HttpOperation;
patch?: HttpOperation;
trace?: HttpOperation;
servers: Optional<Array<Server>>;
parameters: Optional<Array<Reference<Parameter>>>;
}
export interface RequestBody extends Extensions {
description?: string;
content: Dictionary<MediaType>;
required: Optional<boolean>;
}
export interface Response extends Extensions {
description: string;
headers: Optional<Dictionary<Reference<Header>>>;
content: Optional<Dictionary<MediaType>>;
links: Optional<Dictionary<Reference<Link>>>;
}
export interface Schema extends Extensions, Implementation<SchemaDetails> {
type?: JsonType;
title?: string;
description?: string;
format?: string;
nullable: Optional<boolean>;
readOnly: Optional<boolean>;
writeOnly: Optional<boolean>;
deprecated: Optional<boolean>;
required: Optional<Array<string>>;
multipleOf?: number;
maximum?: number;
exclusiveMaximum?: boolean;
minimum?: number;
exclusiveMinimum?: boolean;
maxLength?: number;
minLength?: number;
pattern?: string;
maxItems?: number;
minItems?: number;
uniqueItems?: boolean;
maxProperties?: number;
minProperties?: number;
example?: any;
default?: any;
discriminator?: Discriminator;
externalDocs?: ExternalDocumentation;
xml?: XML;
enum: Optional<Array<any>>;
not?: Reference<Schema>;
allOf: Optional<Array<Reference<Schema>>>;
oneOf: Optional<Array<Reference<Schema>>>;
anyOf: Optional<Array<Reference<Schema>>>;
items?: Reference<Schema>;
properties: Optional<Dictionary<PropertyReference<Schema>>>;
additionalProperties?: boolean | Reference<Schema>;
}
export interface Server extends Extensions {
url: string;
description?: string;
variables: Optional<Dictionary<ServerVariable>>;
}
export interface ServerVariable extends Extensions {
enum: Optional<Array<string>>;
default: string;
description?: string;
}
export interface Tag extends Extensions {
name: string;
description?: string;
externalDocs?: ExternalDocumentation;
}
export interface XML extends Extensions {
name?: string;
namespace?: string;
prefix?: string;
attribute?: boolean;
wrapped?: boolean;
}
//# sourceMappingURL=oai3.d.ts.map