UNPKG

@grouparoo/core

Version:
743 lines (742 loc) 25.6 kB
import { ParamsFrom } from "actionhero"; import { AuthenticatedAction } from "../classes/actions/authenticatedAction"; import { App } from "../models/App"; import { PluginConnection } from "../classes/plugin"; import { OptionHelper } from "../modules/optionHelper"; import { AsyncReturnType } from "type-fest"; import { APIData } from "../modules/apiData"; import { ActionPermission } from "../models/Permission"; export declare class DestinationsList extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly limit: { readonly required: true; readonly default: 100; readonly formatter: typeof APIData.ensureNumber; }; readonly offset: { readonly required: true; readonly default: 0; readonly formatter: typeof APIData.ensureNumber; }; readonly state: { readonly required: false; }; readonly modelId: { readonly required: false; }; readonly order: { readonly required: false; readonly formatter: typeof APIData.ensureArray; readonly default: readonly [readonly ["name", "desc"], readonly ["createdAt", "desc"]]; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationsList>; }): Promise<{ total: number; destinations: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; syncMode: "sync" | "additive" | "enrich"; syncModes: { key: "sync" | "additive" | "enrich"; displayName: string; description: string; operations: import("../models/Destination").DestinationSyncOperations; }[]; collection: "none" | "group" | "model"; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; modelId: string; modelName: string; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; options: OptionHelper.SimpleOptions; connection: PluginConnection; group: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }; destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[]; createdAt: number; updatedAt: number; exportTotals: { failed: number; canceled: number; complete: number; pending: number; draft: number; processing: number; }; }[]; }>; } export declare class DestinationConnectionApps extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; runWithinTransaction(): Promise<{ connectionApps: { app: AsyncReturnType<App["apiData"]>; connection: PluginConnection; }[]; environmentVariableOptions: string[]; }>; } export declare class DestinationCreate extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly name: { readonly required: false; }; readonly type: { readonly required: true; }; readonly modelId: { readonly required: true; }; readonly state: { readonly required: false; }; readonly appId: { readonly required: true; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly mapping: { readonly required: false; readonly formatter: typeof APIData.ensureObject; readonly default: {}; }; readonly syncMode: { readonly required: false; }; readonly destinationGroupMemberships: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationCreate>; }): Promise<{ destination: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; syncMode: "sync" | "additive" | "enrich"; syncModes: { key: "sync" | "additive" | "enrich"; displayName: string; description: string; operations: import("../models/Destination").DestinationSyncOperations; }[]; collection: "none" | "group" | "model"; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; modelId: string; modelName: string; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; options: OptionHelper.SimpleOptions; connection: PluginConnection; group: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }; destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[]; createdAt: number; updatedAt: number; exportTotals: { failed: number; canceled: number; complete: number; pending: number; draft: number; processing: number; }; }; }>; } export declare class DestinationEdit extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly name: { readonly required: false; }; readonly state: { readonly required: false; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly mapping: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly syncMode: { readonly required: false; }; readonly destinationGroupMemberships: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly groupId: { readonly required: false; }; readonly collection: { readonly required: false; readonly formatter: (p: unknown) => "none" | "group" | "model"; }; readonly triggerExport: { readonly required: false; readonly formatter: typeof APIData.ensureBoolean; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationEdit>; }): Promise<{ destination: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; syncMode: "sync" | "additive" | "enrich"; syncModes: { key: "sync" | "additive" | "enrich"; displayName: string; description: string; operations: import("../models/Destination").DestinationSyncOperations; }[]; collection: "none" | "group" | "model"; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; modelId: string; modelName: string; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; options: OptionHelper.SimpleOptions; connection: PluginConnection; group: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }; destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[]; createdAt: number; updatedAt: number; exportTotals: { failed: number; canceled: number; complete: number; pending: number; draft: number; processing: number; }; }; oldRun: { id: string; creatorId: string; creatorName: string; creatorType: "group" | "task" | "schedule" | "property" | "grouparooModel" | "teamMember"; state: "stopped" | "running" | "complete" | "draft"; percentComplete: number; importsCreated: number; recordsCreated: number; recordsImported: number; error: string; highWaterMark: import("../models/Run").HighWaterMark; sourceOffset: string | number; memberLimit: number; memberOffset: number; method: string; destinationId: string; createdAt: number; updatedAt: number; completedAt: number; }; newRun: { id: string; creatorId: string; creatorName: string; creatorType: "group" | "task" | "schedule" | "property" | "grouparooModel" | "teamMember"; state: "stopped" | "running" | "complete" | "draft"; percentComplete: number; importsCreated: number; recordsCreated: number; recordsImported: number; error: string; highWaterMark: import("../models/Run").HighWaterMark; sourceOffset: string | number; memberLimit: number; memberOffset: number; method: string; destinationId: string; createdAt: number; updatedAt: number; completedAt: number; }; }>; } export declare class DestinationConnectionOptions extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationConnectionOptions>; }): Promise<{ options: import("../classes/plugin").DestinationOptionsMethodResponse; }>; } export declare class DestinationMappingOptions extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationMappingOptions>; }): Promise<{ options: import("../classes/plugin").DestinationMappingOptionsMethodResponse; destinationTypeConversions: Record<string, any>; }>; } export declare class DestinationExportArrayProperties extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationExportArrayProperties>; }): Promise<{ exportArrayProperties: import("../classes/plugin").ExportArrayPropertiesMethodResponse; }>; } export declare class DestinationView extends AuthenticatedAction { name: string; description: string; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationView>; }): Promise<{ destination: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; syncMode: "sync" | "additive" | "enrich"; syncModes: { key: "sync" | "additive" | "enrich"; displayName: string; description: string; operations: import("../models/Destination").DestinationSyncOperations; }[]; collection: "none" | "group" | "model"; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; modelId: string; modelName: string; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; options: OptionHelper.SimpleOptions; connection: PluginConnection; group: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }; destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[]; createdAt: number; updatedAt: number; exportTotals: { failed: number; canceled: number; complete: number; pending: number; draft: number; processing: number; }; }; }>; } export declare class DestinationExport extends AuthenticatedAction { name: string; description: string; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly recordId: { readonly required: false; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationExport>; }): Promise<{ success: boolean; }>; } export declare class DestinationRecordPreview extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly collection: { readonly required: false; }; readonly groupId: { readonly required: false; }; readonly modelId: { readonly required: false; }; readonly recordId: { readonly required: false; }; readonly mapping: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly destinationGroupMemberships: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationRecordPreview>; }): Promise<{ record: { id: string; state: "pending" | "ready" | "draft" | "deleted"; modelId: string; modelName: string; groupIds: string[]; invalid: boolean; properties: import("../modules/ops/record").RecordPropertyType; createdAt: number; updatedAt: number; } & { properties: Record<string, any>; groupNames: string[]; }; groups: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }[]; destinations: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; syncMode: "sync" | "additive" | "enrich"; syncModes: { key: "sync" | "additive" | "enrich"; displayName: string; description: string; operations: import("../models/Destination").DestinationSyncOperations; }[]; collection: "none" | "group" | "model"; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; modelId: string; modelName: string; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; options: OptionHelper.SimpleOptions; connection: PluginConnection; group: { id: string; name: string; modelId: string; modelName: string; rules: import("../models/Group").GroupRuleWithKey[]; matchType: "all" | "any"; state: "ready" | "draft" | "deleted" | "initializing" | "updating"; locked: string; recordsCount: number; createdAt: number; updatedAt: number; nextCalculatedAt: number; calculatedAt: number; }; destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[]; createdAt: number; updatedAt: number; exportTotals: { failed: number; canceled: number; complete: number; pending: number; draft: number; processing: number; }; }[]; }>; } export declare class DestinationDestroy extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly force: { readonly required: true; readonly default: false; readonly formatter: (p: string | boolean) => boolean; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<DestinationDestroy>; }): Promise<{ success: boolean; }>; }