import { SimpleApigwDetail } from './interface/index'; import { Capi } from '@tencent-sdk/capi'; import { ActionType } from '../scf/apis'; import { RegionType, CapiCredentials } from '../interface'; import TagsUtils from '../tag/index'; import ApigwUtils from '../apigw'; import { TriggerDetail, NewTriggerInputs } from './interface'; import ScfEntity from '../scf/entities/scf'; export interface ApiInputs { path: string; method: string; function: { name: string; namespace?: string; qualifier?: string; functionName?: string; functionQualifier?: string; functionNamespace?: string; }; [key: string]: any; } /** 云函数组件 */ export declare class TriggerManager { tagClient: TagsUtils; apigwClient: ApigwUtils; capi: Capi; region: RegionType; credentials: CapiCredentials; triggersCache: Record; scfNameCache: Record; scf: ScfEntity; runningTasks: number; maxRunningTasks: number; constructor(credentials?: {}, region?: RegionType); request({ Action, ...data }: { Action: ActionType; [key: string]: any }): Promise; getScfTriggers({ name, namespace, }: { name: string; namespace?: string; }): Promise; filterTriggers({ name, namespace, events, oldList, }: { name: string; namespace: string; events: NewTriggerInputs[]; oldList: TriggerDetail[]; }): Promise<{ deleteList: TriggerDetail[]; deployList: TriggerDetail[]; }>; removeTrigger({ trigger, name, namespace, }: { name: string; namespace: string; trigger: TriggerDetail; }): Promise; createTrigger({ name, namespace, events, }: { name: string; namespace?: string; events?: any[]; }): Promise<{ outputs: { name: string; triggers: TriggerDetail[]; }; apigwServiceList: SimpleApigwDetail[]; }>; /** * 初始化 API 网关触发器配置 * 说明:如果配置了 serviceId,检查是否确实存在,如果不存在则自动创建 * 如果没有配置,则直接创建 * @param triggerInputs API 网关触发器配置 * @returns {string} serviceId API 网关 ID */ initializeApigwService(triggerInputs: NewTriggerInputs): Promise<{ serviceId: any; created: boolean; }>; /** * 通过触发器中配置的 function 字段,获取涉及到的所有函数 * @param triggers 触发器配置列表 * @returns 函数列表 */ getScfsByTriggers(triggers?: NewTriggerInputs[]): Promise; /** * 通过函数名称和触发器列表,获取当前函数名称的触发器配置 * @param options 获取函数触发器配置参数 * @returns 触发器配置 */ getScfTriggersConfig({ name, triggers, }: { name: string; triggers: NewTriggerInputs[]; }): NewTriggerInputs[]; /** * 批量删除 API 网关,防止重复删除同一个网关 * @param list API 网关列表 */ bulkRemoveApigw(list: SimpleApigwDetail[]): Promise; /** * 批量发布 API 网关,防止重复发布同一个网关 * @param list API 网关列表 */ bulkReleaseApigw(list: SimpleApigwDetail[]): Promise; /** * 批量处理多函数关联的触发器配置 * @param triggers 触发器列表 * @returns 触发器部署 outputs */ bulkCreateTriggers( triggers?: NewTriggerInputs[], namespace?: string, ): Promise<{ triggerList: { name: string; triggers: TriggerDetail[]; }[]; apigwList: SimpleApigwDetail[]; }>; /** * 批量删除指定函数的触发器 * @param options 参数 */ bulkRemoveTriggers({ name, namespace, triggers, }: { name: string; namespace: string; triggers: TriggerDetail[]; }): Promise; /** * 清理指定函数所有触发器 * @param options 参数 */ clearScfTriggers({ name, namespace }: { name: string; namespace: string }): Promise; }