@azure-tools/codemodel-v3
Version:
AutoRest code model library
192 lines • 6.9 kB
TypeScript
import { Components, Example, ExternalDocumentation, ImplementationDetails, ImplementationLocation, IOperation, IOperationBase, IParameter, LanguageDetails, Link, ParameterDetails, ResponseDetails, SecurityRequirement, Server } from './components';
import { Extensions } from './extensions';
import { Schema } from './schema';
import { SecurityScheme } from './security-scheme';
import { DeepPartial } from '@azure-tools/codegen';
import { Dictionary } from '@azure-tools/linq';
export interface HttpOperationDetails extends ImplementationDetails {
}
/**
* An encoding attribute is introduced to give you control over the serialization of parts of multipart request bodies.
* This attribute is only applicable to multipart and application/x-www-form-urlencoded request bodies.
*/
export declare class Encoding extends Extensions implements Encoding {
key: string;
headers: Header[];
constructor(key: string, initializer?: DeepPartial<Encoding>);
}
export declare class Header extends Extensions implements Header {
content: MediaType[];
constructor(initializer?: DeepPartial<Header>);
}
export declare class MediaType extends Extensions implements MediaType {
key: string;
encoding: Encoding[];
accepts: string[];
constructor(key: string, initializer?: DeepPartial<MediaType>);
}
export declare class RequestBody extends Extensions implements RequestBody {
constructor(initializer?: DeepPartial<RequestBody>);
}
export declare class Response extends Extensions implements Response {
description: string;
content: Dictionary<MediaType>;
links: Dictionary<Link>;
headers: Header[];
constructor(description: string, initializer?: DeepPartial<Response>);
}
export declare enum ParameterLocation {
Uri = "uri",
Query = "query",
Header = "header",
Cookie = "cookie",
Path = "path"
}
export declare enum EncodingStyle {
Matrix = "matrix",
Label = "label",
Simple = "simple",
Form = "form",
SpaceDelimited = "spaceDelimited",
PipeDelimited = "pipeDelimited",
DeepObject = "deepObject"
}
export declare type QueryEncodingStyle = EncodingStyle.Form | EncodingStyle.SpaceDelimited | EncodingStyle.PipeDelimited | EncodingStyle.DeepObject;
export declare type PathEncodingStyle = EncodingStyle.Matrix | EncodingStyle.Label | EncodingStyle.Simple;
export interface Encoding extends Extensions {
key: string;
contentType?: string;
headers: Array<Header>;
style?: QueryEncodingStyle;
explode?: boolean;
allowReserved?: boolean;
}
export interface Header extends Extensions {
key: string;
schema: Schema;
explode?: boolean;
examples: Dictionary<Example>;
description?: string;
required: boolean;
deprecated: boolean;
allowEmptyValue: boolean;
allowReserved: boolean;
}
export interface MediaType extends Extensions {
key: string;
accepts: Array<string>;
examples: Array<Example>;
encoding: Array<Encoding>;
schema?: Schema;
}
export interface RequestBody extends Extensions {
description?: string;
contentType: string;
schema: Schema;
required: boolean;
}
export interface Response extends Extensions {
description: string;
headers: Array<Header>;
content: Dictionary<MediaType>;
links: Dictionary<Link>;
}
export interface HttpParameterDetails extends ParameterDetails {
location: ImplementationLocation;
}
export declare enum HttpMethod {
Get = "get",
Put = "put",
Post = "post",
Delete = "delete",
Options = "options",
Head = "head",
Patch = "patch",
Trace = "trace"
}
export interface NewResponse {
details: LanguageDetails<ResponseDetails>;
responseCode: string;
description: string;
headers: Array<Header>;
headerSchema?: Schema;
mimeTypes: Array<string>;
schema?: Schema;
}
export declare class NewResponse extends Extensions implements NewResponse {
responseCode: string;
description: string;
mimeTypes: Array<string>;
details: LanguageDetails<ResponseDetails>;
constructor(responseCode: string, description: string, mimeTypes: Array<string>, objectInitializer?: DeepPartial<NewResponse>);
}
export declare class HttpOperation extends Extensions implements HttpOperation {
baseUrl: string;
path: string;
method: HttpMethod;
details: LanguageDetails<HttpOperationDetails>;
tags: string[];
parameters: HttpOperationParameter[];
responses: Dictionary<NewResponse[]>;
callbacks: Dictionary<Callback>;
security: SecurityRequirement[];
servers: Server[];
deprecated: boolean;
constructor(operationId: string, baseUrl: string, path: string, method: HttpMethod, initializer?: DeepPartial<HttpOperation>);
}
export interface HttpOperation extends IOperation<HttpOperationParameter>, Extensions {
details: LanguageDetails<HttpOperationDetails>;
tags: Array<string>;
summary?: string;
externalDocs?: ExternalDocumentation;
parameters: Array<HttpOperationParameter>;
requestBody?: RequestBody;
responses: Dictionary<Array<NewResponse>>;
callbacks: Dictionary<Callback>;
deprecated: boolean;
security: Array<SecurityRequirement>;
servers: Array<Server>;
path: string;
baseUrl: string;
method: HttpMethod;
pathDescription?: string;
pathSummary?: string;
pathExtensions?: Dictionary<any>;
}
export interface HttpOperationParameter extends IParameter {
in: ParameterLocation;
explode?: boolean;
encoding?: Array<Encoding>;
mediaType?: string;
style: EncodingStyle;
examples?: Dictionary<any>;
allowReserved?: boolean;
}
export declare class HttpOperationParameter extends Extensions implements HttpOperationParameter {
name: string;
details: LanguageDetails<HttpParameterDetails>;
deprecated: boolean;
required: boolean;
allowEmptyValue: boolean;
constructor(name: string, inWhere: ParameterLocation, implementation: ImplementationLocation, initializer?: DeepPartial<HttpOperationParameter>);
}
export declare function isHttpOperation(operation: IOperationBase): operation is HttpOperation;
export declare class Callback implements Callback {
constructor();
}
export interface Callback extends Dictionary<HttpOperation> {
}
export interface HttpComponents extends Components<HttpOperation, HttpOperationParameter> {
examples: Dictionary<Example>;
securitySchemes: Dictionary<SecurityScheme>;
links: Dictionary<Link>;
callbacks: Dictionary<Callback>;
}
export declare class HttpComponents extends Components<HttpOperation, HttpOperationParameter> implements HttpComponents {
examples: Dictionary<Example>;
securitySchemes: Dictionary<SecurityScheme>;
links: Dictionary<Link>;
callbacks: Dictionary<Callback>;
constructor(initializer?: DeepPartial<HttpComponents>);
}
//# sourceMappingURL=http-operation.d.ts.map