UNPKG

@microsoft.azure/autorest.incubator

Version:
354 lines 12.3 kB
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