@autorest/openapi-to-typespec
Version:
Autorest plugin to scaffold a Typespec definition from an OpenAPI document
64 lines • 2.81 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;
IsTrackedResourceWithOptionalLocation: boolean;
IsManagementGroupResource: boolean;
ScopeType: ScopeType;
IsSingletonResource: boolean;
}
export type ScopeType = "NA" | "Scope" | "Tenant" | "Subscription" | "ResourceGroup" | "ManagementGroup" | "Extension";
export declare function isExtensionScopeType(scopeType: ScopeType): 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