UNPKG

@azure-tools/typespec-azure-resource-manager

Version:

TypeSpec Azure Resource Manager library

69 lines 3.96 kB
import { DecoratorContext, Model, Operation, Program } from "@typespec/compiler"; import { HttpOperation } from "@typespec/http"; import { ArmResourceActionDecorator, ArmResourceCollectionActionDecorator, ArmResourceCreateOrUpdateDecorator, ArmResourceDeleteDecorator, ArmResourceListDecorator, ArmResourceReadDecorator, ArmResourceUpdateDecorator } from "../generated-defs/Azure.ResourceManager.js"; import { ArmOperationOptions, ArmOperationRouteDecorator } from "../generated-defs/Azure.ResourceManager.Legacy.js"; export type ArmLifecycleOperationKind = "read" | "createOrUpdate" | "update" | "delete"; export type ArmOperationKind = ArmLifecycleOperationKind | "list" | "action" | "other"; export interface ArmResourceOperation extends ArmResourceOperationData { path: string; httpOperation: HttpOperation; } export interface ArmLifecycleOperations { read?: ArmResourceOperation; createOrUpdate?: ArmResourceOperation; update?: ArmResourceOperation; delete?: ArmResourceOperation; } export interface ArmResourceLifecycleOperations { read?: ArmResourceOperation[]; createOrUpdate?: ArmResourceOperation[]; update?: ArmResourceOperation[]; delete?: ArmResourceOperation[]; } export interface ArmResolvedOperationsForResource { lifecycle: ArmResourceLifecycleOperations; lists: ArmResourceOperation[]; actions: ArmResourceOperation[]; } export interface ArmResourceOperations { lifecycle: ArmLifecycleOperations; lists: { [key: string]: ArmResourceOperation; }; actions: { [key: string]: ArmResourceOperation; }; } interface ArmResourceOperationData { name: string; kind: ArmOperationKind; operation: Operation; operationGroup: string; } /** Identifying information for an arm operation */ interface ArmOperationIdentifier { name: string; kind: ArmOperationKind; operationGroup: string; operation: Operation; resource?: Model; } export declare function resolveResourceOperations(program: Program, resourceType: Model): ArmResourceOperations; export declare const getArmOperationList: (program: Program, type: Model) => Set<ArmOperationIdentifier> | undefined, setArmOperationList: (program: Program, type: Model, value: Set<ArmOperationIdentifier>) => void; export declare function getArmResourceOperationList(program: Program, resourceType: Model): Set<ArmOperationIdentifier>; export declare function addArmResourceOperation(program: Program, resourceType: Model, operationData: ArmOperationIdentifier): void; export declare const getArmResourceOperationData: (program: Program, type: Operation) => ArmResourceOperationData | undefined, setArmResourceOperationData: (program: Program, type: Operation, value: ArmResourceOperationData) => void; export declare function setArmOperationIdentifier(program: Program, target: Operation, resourceType: Model, data: ArmResourceOperationData): void; export declare const $armResourceRead: ArmResourceReadDecorator; export declare const $armResourceCreateOrUpdate: ArmResourceCreateOrUpdateDecorator; export declare const $armResourceUpdate: ArmResourceUpdateDecorator; export declare const $armResourceDelete: ArmResourceDeleteDecorator; export declare const $armResourceList: ArmResourceListDecorator; export declare function armRenameListByOperationInternal(context: DecoratorContext, entity: Operation, resourceType: Model, parentTypeName?: string, parentFriendlyTypeName?: string, applyOperationRename?: boolean): void; export declare const $armResourceAction: ArmResourceActionDecorator; export declare const $armResourceCollectionAction: ArmResourceCollectionActionDecorator; export declare function isArmCollectionAction(program: Program, target: Operation): boolean; export declare const $armOperationRoute: ArmOperationRouteDecorator; export declare function getRouteOptions(program: Program, target: Operation): ArmOperationOptions; export {}; //# sourceMappingURL=operations.d.ts.map