UNPKG

contentful-management

Version:
146 lines (145 loc) 4.51 kB
import type { Except } from 'type-fest'; import type { BasicMetaSysProps, DefaultElements, Link, MakeRequest, SysLink } from '../common-types'; import type { ParameterDefinition } from './widget-parameters'; type AppActionSys = Except<BasicMetaSysProps, 'version'> & { appDefinition: SysLink; organization: SysLink; }; export type AppActionParameterDefinition = Omit<ParameterDefinition, 'labels'>; export type AppActionCategoryProps = { sys: { id: AppActionCategoryType; type: 'AppActionCategory'; version: string; }; name: string; description: string; parameters?: AppActionParameterDefinition[]; }; type BuiltInCategoriesProps = { /** * Category identifying the shape of the action. */ category: 'Entries.v1.0' | 'Notification.v1.0'; }; type CustomAppActionProps = { /** * "Custom" category requires "parameters" */ category: 'Custom'; parameters: AppActionParameterDefinition[]; }; type AppActionCategory = BuiltInCategoriesProps | CustomAppActionProps; export type AppActionCategoryType = AppActionCategory['category']; /** * 'function' is deprecated, use 'function-invocation' instead */ export type AppActionType = 'endpoint' | 'function' | 'function-invocation'; type BaseAppActionProps = AppActionCategory & { /** * System metadata */ sys: AppActionSys; /** * Human readable name for the action */ name: string; /** * Human readable description of the action */ description?: string; }; type CreateEndpointAppActionProps = { /** * Type of the action, defaults to endpoint if not provided * endpoint: action is sent to specified URL */ type?: 'endpoint'; /** * Url that will be called when the action is invoked */ url: string; }; type EndpointAppActionProps = { /** * Type of the action * endpoint: action is sent to specified URL */ type: 'endpoint'; /** * Url that will be called when the action is invoked */ url: string; }; type CreateFunctionAppActionProps = { /** * Type of the action * function-invocation: action invokes a contentful function */ type: 'function-invocation'; /** * Link to a Function */ function: Link<'Function'>; /** * ID of the action */ id?: string; }; type FunctionAppActionProps = { /** * Type of the action * function-invocation: action invokes a contentful function */ type: 'function-invocation'; /** * Link to a Function */ function: Link<'Function'>; }; /** * @deprecated Use FunctionAppActionProps instead */ type LegacyFunctionAppActionProps = Record<string, unknown> & { type: 'function'; }; export type CreateAppActionProps = AppActionCategory & { name: string; description?: string; } & (CreateEndpointAppActionProps | CreateFunctionAppActionProps | LegacyFunctionAppActionProps); export type AppActionProps = BaseAppActionProps & (EndpointAppActionProps | FunctionAppActionProps | LegacyFunctionAppActionProps); export type AppAction = AppActionProps & DefaultElements<AppActionProps> & { /** * Deletes this object on the server. * @return Promise for the deletion. It contains no data, but the Promise error case should be handled. * @example ```javascript * const contentful = require('contentful-management') * * const client = contentful.createClient({ * accessToken: '<content_management_api_key>' * }) * * client.getOrganization('<org_id>') * .then((org) => org.getAppDefinition('<app_def_id>')) * .then((appDefinition) => appDefinition.getAppAction('<app-action-id>')) * .then((appAction) => appAction.delete()) * .catch(console.error) * ``` */ delete(): Promise<void>; }; /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw App Bundle data * @return Wrapped App Bundle data */ export declare function wrapAppAction(makeRequest: MakeRequest, data: AppActionProps): AppAction; /** * @private * @param makeRequest - function to make requests via an adapter * @param data - Raw App Bundle collection data * @return Wrapped App Bundle collection data */ export declare const wrapAppActionCollection: (makeRequest: MakeRequest, data: import("../common-types").CollectionProp<AppActionProps>) => import("../common-types").Collection<AppAction, AppActionProps>; export {};