UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

119 lines 4.27 kB
import { AssetInfo } from "../../lfs/models/asset-info.model.js"; import { Project } from "../../lfs/models/project.model.js"; import { VCSProject } from "../../vcs/models/vcs-project.model.js"; import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js"; import { FormViewTableData } from "../../component-models/models/form-view-table-data.model.js"; import { Metadata } from "../../common/models/base-asset.model.js"; import { FileAccessType } from "../interfaces/api-spec-handler.interface.js"; export interface ApiMockInfo extends AssetInfo { project: Project | VCSProject; apiFileHandle: FileSystemFileHandle | VCSFileInfo; enableMocking: boolean; } export type ApiMockStoreModel = { apiMock: ApiMockInfo | null; data: ApiMockingSpec; routeFileHandle: FileSystemFileHandle | VCSFileInfo | null; activeResourcePath: string; activeResourceMethod: string; isValidPolicySequenceArray: { state: boolean; reason: string; }; isValidRouteArrayInPolicySequence: { state: boolean; reason: string; }; }; interface ApiResponse { $ref: string; } interface ConditionalResponse { condition: string; statusCode: number; response: ApiResponse; } interface MethodResponses { defaultResponse: { [statusCode: number]: { response: ApiResponse; }; }; conditionalResponse?: ConditionalResponse[]; } interface Paths { [path: string]: { [method: string]: MethodResponses; }; } interface ApiMockingSpec { paths: Paths; } export interface ResponseHeader extends FormViewTableData { Key: string; Value: string; } export interface ResponseBody extends FormViewTableData { 'Content-type': string; 'payload': string; } export interface ApiMockingStoreActions { addApiMock: (scopeInfo: ApiMockInfo) => Promise<void>; setRouteFileHandle: (fileHandle: FileSystemFileHandle | VCSFileInfo | null) => void; setApiMock: (apiMock: ApiMockInfo | null) => void; setValidPolicySequenceArray: (data: { state: boolean; reason: string; }) => void; setValidRouteArrayInPolicySequence: (data: { state: boolean; reason: string; }) => void; setData: (data: { paths: Record<string, any>; }) => void; setActiveResourcePath: (path: string) => void; setActiveResourceMethod: (method: string) => void; setEnableMocking: (bool: boolean) => void; addStaticResponse: (statuscode: string, responseDetails: { name: string; namespace: string; version: string; project: string; tags: string[]; }, headerData: ResponseHeader[], body: ResponseBody[]) => Promise<void>; addConditionalResponse: (condition: string, statuscode: string, responseDetails: { name: string; namespace: string; version: string; project: string; tags: string[]; }, headerData: ResponseHeader[], body: ResponseBody[]) => Promise<void>; updateStaticResponse: (prevStatusCode: string, statuscode: string, responseDetails: { name: string; namespace: string; version: string; project: string; tags: string[]; }, headerData: ResponseHeader[], body: ResponseBody[]) => Promise<void>; deleteStaticResponse: (statuscode: string) => Promise<void>; updateConditionalResponse: (condition: string, index: number, statuscode: string, responseDetails: { name: string; namespace: string; version: string; project: string; tags: string[]; }, headerData: ResponseHeader[], body: ResponseBody[]) => Promise<void>; deleteConditionalResponse: (index: number) => Promise<void>; refreshData: () => Promise<void>; updateEndpointMetadata: (metadata: Metadata) => Promise<void>; updateMockResponse: (statuscode: string, responseDetails: { name: string; namespace: string; version: string; project: string; tags: string[]; }, headerData: ResponseHeader[], body: ResponseBody[], mockResponseFile: FileAccessType, mockResponseProject: Project | VCSProject, condition?: string) => Promise<void>; } export {}; //# sourceMappingURL=api-mocking-store.model.d.ts.map