@apistudio/apim-cli
Version:
CLI for API Management Products
165 lines (151 loc) • 5.11 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
import { VCSFileInfo } from '../../vcs/models/vcs-file-info.model.js';
import {
OpenApiDocumentObject,
OpenApiPathItemObject,
OpenAPISecurityRequirement,
OpenApiSpecComponents,
OpenAPISpecComponentsSchemaObject,
OpenApiSpecExampleObj,
OpenApiTagObject,
OpenAPIV2Components,
OpenAPIV2ComponentsObject,
OpenAPIV2HostPath,
} from '../interfaces/api-spec-handler.interface.js';
import {
APIAdditionalPropertyKeys,
ProjectAssetInfo,
SelectionItem,
} from './api-context.store.model.js';
import { AssetInfo } from '../../lfs/models/asset-info.model.js';
import { OpenApiTypesEnum } from '../models/openapi-types.enum.js';
import { APICFileInfo } from '../../apic-mode/models/apic-file-info.model.js';
export interface APIContextAction {
// loading info
startLoading: () => void;
finishLoading: () => void;
setData: (data: string | null) => void;
setContext: (
fileAccessor: FileSystemFileHandle | VCSFileInfo | APICFileInfo,
) => void;
setApiVersion: (version: OpenApiTypesEnum | null) => void;
reset: () => void;
setPolicySequences: (policySeqRefs: AssetInfo[]) => void;
setApiAdditionalProperties: (
key: APIAdditionalPropertyKeys,
asset?: ProjectAssetInfo,
) => void;
setActiveApiAdditionalProperty: (key?: APIAdditionalPropertyKeys) => void;
setIsDetailedPropertyFormViewOpen: (isDetailedFormViewOpen: boolean) => void;
updateInfo: (
info: OpenAPIV3.InfoObject | OpenAPIV3_1.InfoObject | OpenAPIV2.InfoObject,
) => Promise<void>;
addServer: (
server: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject,
) => Promise<void>;
updateServer: (
oldServer: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject,
newServer: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject,
) => Promise<void>;
deleteServer: (
server: OpenAPIV3.ServerObject | OpenAPIV3_1.ServerObject,
) => Promise<void>;
addComponentExample: (
Key: string,
ExampleObj: OpenApiSpecExampleObj,
) => Promise<void>;
updateComponentExample: (
PrevKey: string,
CurrentKey: string,
ExampleObj: OpenApiSpecExampleObj,
) => Promise<void>;
deleteComponentExample: (key: string) => Promise<void>;
addComponentSchema: (
key: string,
newSchema: OpenAPISpecComponentsSchemaObject,
) => Promise<void>;
updateComponentSchema: (
prevKey: string,
newKey: string,
updatedSchema: OpenAPISpecComponentsSchemaObject,
) => Promise<void>;
deleteComponentSchema: (key: string) => Promise<void>;
addPath: (key: string, pathItem: OpenApiPathItemObject) => Promise<void>;
updatePath: (
PrevKey: string,
CurrentKey: string,
pathObj: OpenApiPathItemObject,
) => Promise<void>;
deletePath: (key: string) => Promise<void>;
addTag: (tag: OpenApiTagObject) => Promise<void>;
updateTag: (prevKey: string, tag: OpenApiTagObject) => Promise<void>;
deleteTag: (tag: string) => Promise<void>;
addSecurity: (security: OpenAPISecurityRequirement[]) => Promise<void>;
updateSecurity: (
prevSecuityName: string,
security: OpenAPISecurityRequirement,
) => Promise<void>;
deleteSecurity: (securityName: string) => Promise<void>;
addOrUpdateDocument: (document: OpenApiDocumentObject) => Promise<void>;
deleteDocument: () => Promise<void>;
addComponent: (
key: string,
object: OpenApiSpecComponents,
typeOfComponent:
| keyof OpenAPIV3.ComponentsObject
| keyof OpenAPIV3_1.ComponentsObject,
) => Promise<void>;
updateComponent: (
prevKey: string,
currentKey: string,
object: OpenApiSpecComponents,
typeOfComponent:
| keyof OpenAPIV3.ComponentsObject
| keyof OpenAPIV3_1.ComponentsObject,
) => Promise<void>;
deleteComponent: (
key: string,
typeOfComponent:
| keyof OpenAPIV3.ComponentsObject
| keyof OpenAPIV3_1.ComponentsObject,
) => Promise<void>;
setComponent: (
data: Record<string, OpenApiSpecComponents>,
typeOfComponent:
| keyof OpenAPIV3.ComponentsObject
| keyof OpenAPIV3_1.ComponentsObject,
) => Promise<void>;
addSelection: (selectionItem: SelectionItem) => void;
updateSelection: (
position: number,
updatedSelectionItem: SelectionItem,
) => void;
setSelectionItems: (selectionItems: Array<SelectionItem>) => void;
removeSelectionAfterPosition: (position: number) => void;
setAdditionalDataV2: (
name: string | string[],
type: OpenAPIV2HostPath,
) => Promise<void>;
addComponentV2: (
key: string,
object: OpenAPIV2ComponentsObject,
typeOfComponent: OpenAPIV2Components,
) => Promise<void>;
updateComponentV2: (
prevKey: string,
currentKey: string,
object: OpenAPIV2ComponentsObject,
typeOfComponent: OpenAPIV2Components,
) => Promise<void>;
deleteComponentV2: (
key: string,
typeOfComponent: OpenAPIV2Components,
) => Promise<void>;
setComponentV2: (
data: Record<string, OpenAPIV2ComponentsObject>,
typeOfComponent: OpenAPIV2Components,
) => Promise<void>;
}