UNPKG

@azure-tools/typespec-java

Version:

TypeSpec library for emitting Java client from the TypeSpec REST protocol binding

76 lines 3.63 kB
import { ApiVersion, Aspect, Metadata, Parameter, Response } from "@autorest/codemodel"; import { DeepPartial } from "@azure-tools/codegen"; import { LongRunningMetadata } from "./long-running-metadata.js"; /** represents a single callable endpoint with a discrete set of inputs, and any number of output possibilities (responses or exceptions) */ export interface Operation extends Aspect { /** * Original Operation ID if present. * This can be used to identify the original id of an operation before it is styled. * THIS IS NOT the name of the operation that should be used in the generator. Use `.language.default.name` for this */ operationId?: string; /** common parameters when there are multiple requests */ parameters?: Array<Parameter>; /** a common filtered list of parameters that is (assumably) the actual method signature parameters */ signatureParameters?: Array<Parameter>; /** * Mapping of all the content types available for this operation to the coresponding request. */ requestMediaTypes?: Record<string, Request>; /** * List of headers that parameters should not handle as parameters but with special logic. * See https://github.com/Azure/autorest/tree/main/packages/extensions/modelerfour for configuration `skip-special-headers` to exclude headers. */ specialHeaders?: string[]; /** the different possibilities to build the request. */ requests?: Array<Request>; /** responses that indicate a successful call */ responses?: Array<Response>; /** responses that indicate a failed call */ exceptions?: Array<Response>; /** the apiVersion to use for a given profile name */ profile?: Record<string, ApiVersion>; /** the name of convenience API */ convenienceApi?: ConvenienceApi; /** generate protocol api or not */ generateProtocolApi?: boolean; /** genrate as internal API */ internalApi?: boolean; /** the long-running operation metadata */ lroMetadata?: LongRunningMetadata; } export declare class ConvenienceApi extends Metadata { constructor(name: string, initializer?: DeepPartial<ConvenienceApi>); requests?: Array<Request>; } export interface Request extends Metadata { /** the parameter inputs to the operation */ parameters?: Array<Parameter>; /** a filtered list of parameters that is (assumably) the actual method signature parameters */ signatureParameters?: Array<Parameter>; } export declare class Request extends Metadata implements Request { constructor(initializer?: DeepPartial<Request>); addParameter(parameter: Parameter): Parameter; updateSignatureParameters(): void; } export declare class Operation extends Aspect implements Operation { constructor($key: string, description: string, initializer?: DeepPartial<Operation>); /** add a request to the operation */ addRequest(request: Request): Request; addParameter(parameter: Parameter): Parameter; updateSignatureParameters(): void; addResponse(response: Response): Response; addException(exception: Response): Response; addProfile(profileName: string, apiVersion: ApiVersion): this; } /** an operation group represents a container around set of operations */ export interface OperationGroup extends Metadata { $key: string; operations: Array<Operation>; } export declare class OperationGroup extends Metadata implements OperationGroup { constructor(name: string, objectInitializer?: DeepPartial<OperationGroup>); addOperation(operation: Operation): Operation; } //# sourceMappingURL=operation.d.ts.map