@autorest/openapi-to-typespec
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
63 lines • 2.63 kB
TypeScript
import { CodeModel, ObjectSchema, Operation } from "@autorest/codemodel";
import { TypespecObject, TypespecEnum } from "../interfaces";
export interface _ArmResourceOperation {
Name: string;
Path: string;
Method: string;
OperationID: string;
IsLongRunning: boolean;
Description?: string;
PagingMetadata: _ArmPagingMetadata | null;
}
export interface _ArmPagingMetadata {
Method: string;
ItemName: string;
NextLinkName: string;
}
export interface Metadata {
Resources: Record<string, ArmResource[]>;
RenameMapping: Record<string, string>;
OverrideOperationName: Record<string, string>;
}
export interface ArmResource {
Name: string;
GetOperation?: _ArmResourceOperation;
ExistOperation?: _ArmResourceOperation;
CreateOperation?: _ArmResourceOperation;
UpdateOperation?: _ArmResourceOperation;
DeleteOperation?: _ArmResourceOperation;
ListOperations: _ArmResourceOperation[];
OperationsFromResourceGroupExtension: _ArmResourceOperation[];
OperationsFromSubscriptionExtension: _ArmResourceOperation[];
OperationsFromManagementGroupExtension: _ArmResourceOperation[];
OperationsFromTenantExtension: _ArmResourceOperation[];
OtherOperations: _ArmResourceOperation[];
Parents: string[];
SwaggerModelName: string;
ResourceType: string;
ResourceKey: string;
ResourceKeySegment: string;
IsTrackedResource: boolean;
IsTenantResource: boolean;
IsSubscriptionResource: boolean;
IsManagementGroupResource: boolean;
IsExtensionResource: boolean;
IsSingletonResource: boolean;
}
export interface OperationWithResourceOperationFlag extends Operation {
isResourceOperation?: boolean;
}
export declare function getResourceOperations(resource: ArmResource): Record<string, Operation>;
export declare function getSingletonResouceListOperation(resource: ArmResource): Operation | undefined;
export declare function getResourceExistOperation(resource: ArmResource): Operation | undefined;
export interface ArmResourceSchema extends ObjectSchema {
resourceMetadata: ArmResource[];
}
export interface ArmResourcePropertiesModel extends ObjectSchema {
isPropertiesModel: boolean;
}
export declare function tagSchemaAsResource(schema: ObjectSchema, metadata: Metadata): void;
export declare function isResourceSchema(schema: ObjectSchema): schema is ArmResourceSchema;
export declare function filterArmModels(codeModel: CodeModel, objects: TypespecObject[]): TypespecObject[];
export declare function filterArmEnums(enums: TypespecEnum[]): TypespecEnum[];
//# sourceMappingURL=resource-discovery.d.ts.map