UNPKG

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

Version:

TypeSpec Azure Resource Manager library

105 lines 5.68 kB
import { DecoratorContext, Model, Operation, Program } from "@typespec/compiler"; import { HttpOperation } from "@typespec/http"; import { ArmResourceActionDecorator, ArmResourceCheckExistenceDecorator, ArmResourceCollectionActionDecorator, ArmResourceCreateOrUpdateDecorator, ArmResourceDeleteDecorator, ArmResourceListDecorator, ArmResourceReadDecorator, ArmResourceUpdateDecorator } from "../generated-defs/Azure.ResourceManager.js"; import { ArmOperationOptions, ArmOperationRouteDecorator, RenamePathParameterDecorator } from "../generated-defs/Azure.ResourceManager.Legacy.js"; export type ArmLifecycleOperationKind = "read" | "createOrUpdate" | "update" | "delete" | "checkExistence"; 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; checkExistence?: ArmResourceOperation; } export interface ArmResourceLifecycleOperations { read?: ArmResourceOperation[]; createOrUpdate?: ArmResourceOperation[]; update?: ArmResourceOperation[]; delete?: ArmResourceOperation[]; checkExistence?: 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; resourceModelName: string; resourceName?: string; resourceKind?: "legacy" | "legacy-extension"; } /** Identifying information for an arm operation */ export interface ArmOperationIdentifier { name: string; kind: ArmOperationKind; operationGroup: string; operation: Operation; resource?: Model; resourceName?: string; resourceKind?: "legacy" | "legacy-extension"; } export interface ArmLifecycleOperationData { read?: ArmResourceOperationData; createOrUpdate?: ArmResourceOperationData; update?: ArmResourceOperationData; delete?: ArmResourceOperationData; checkExistence?: ArmResourceOperationData; } export interface ArmResourceOperationsData { lifecycle: ArmLifecycleOperationData; lists: { [key: string]: ArmResourceOperationData; }; actions: { [key: string]: ArmResourceOperationData; }; } export declare function getArmResourceOperations(program: Program, resourceType: Model): ArmResourceOperationsData; 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 $armResourceCheckExistence: ArmResourceCheckExistenceDecorator; 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; /** * Renames a path parameter in an Azure Resource Manager operation. * @param context The decorator context. * @param target The operation to modify. * @param sourceParameterName The name of the parameter to rename. * @param targetParameterName The new name for the parameter. * @returns */ export declare const $renamePathParameter: RenamePathParameterDecorator; export declare function getDefaultLegacyExtensionResourceName(path: string, resourceName: string, operationKind: ArmOperationKind): string; export declare function getResourceNameForOperation(program: Program, operation: ArmResourceOperationData, operationPath: string): string | undefined; export {}; //# sourceMappingURL=operations.d.ts.map