@apistudio/apim-cli
Version:
CLI for API Management Products
85 lines (81 loc) • 2.16 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { ruleSetInfo } from '../../../apim/apim-governance-info.interface.js';
import {
ApimCatalog,
ApimConsumerOrg,
ApimGateway,
ApimOrg,
ApimSpace,
} from '../models/apim.model.js';
import JSZip from 'jszip';
export interface IApimHandler {
getCatalogsByOrg(
url: string,
accessToken: string,
orgId: string,
): Promise<ApimCatalog[]>;
getRulesetsByOrg(
url: string,
accessToken: string,
orgId: string,
): Promise<ruleSetInfo[]>;
getGatewayServices(
orgName: string,
catalogId: string,
url: string,
accessToken: string,
spaceId?: string | null,
): Promise<ApimGateway[]>;
getOrgs(url: string, accessToken: string): Promise<ApimOrg[]>;
getConsumerOrgs(
orgName: string,
catalogId: string,
url: string,
accessToken: string,
): Promise<ApimConsumerOrg[]>;
getConsumerGroups(
orgName: string,
catalogId: string,
url: string,
accessToken: string,
): Promise<ApimConsumerOrg[]>;
isSpacesEnabled(
url: string,
accessToken: string,
orgId: string,
catalogId: string,
): Promise<any>;
getSpacesForCatalog(
url: string,
accessToken: string,
orgId: string,
catalogId: string,
): Promise<ApimSpace[]>;
getOAuthClientInfo(
connectionName: string,
connectionUrl: string,
): Promise<string | null>;
getOAuthToken(connectionName: string): Promise<string | null>;
setOAuthToken(connectionName: string, token: string): Promise<void>;
deleteOAuthToken(connectionName: string): Promise<void>;
validateApimUrl(connectionUrl: string): Promise<boolean>;
formatApiName(apiName: string, namespace: string): string;
publishApim(
zip: JSZip,
connectionName: string,
connectionUrl: string,
token: string,
namespace: string,
org: string,
catalog: string,
gatewayServices: Array<{ name: string; gateway_service_type: string }>,
space?: string | null,
providerOrgs?: ApimOrg[],
spaceGateways?: ApimGateway[],
catalogs?: ApimCatalog[],
skip_portal_services?: boolean,
preserveSubscription?: boolean
): Promise<any>;
}