contentful-management
Version: 
Client for Contentful's Content Management API
119 lines (118 loc) • 4.26 kB
TypeScript
import type { BasicMetaSysProps, DefaultElements, GetSpaceEnvironmentParams, GetWorkflowDefinitionParams, Link, MakeRequest, PaginationQueryOptions, SysLink } from '../common-types';
type NonEmptyArray<T> = [T, ...T[]];
export type WorkflowStepPermissionActors = 'all' | NonEmptyArray<Link<'User'> | Link<'Team'>>;
export declare enum WorkflowStepPermissionType {
    EntityPermission = "entity_permission",
    WorkflowPermission = "workflow_permission"
}
export declare enum WorkflowStepPermissionAction {
    Edit = "edit",
    Publish = "publish",
    Delete = "delete"
}
export declare enum WorkflowStepPermissionEffect {
    Allow = "allow",
    Deny = "deny"
}
export interface WorkflowStepPermission {
    type: WorkflowStepPermissionType;
    configuration: {
        actors: WorkflowStepPermissionActors;
        action: WorkflowStepPermissionAction;
        effect: WorkflowStepPermissionEffect;
    };
}
export declare enum WorkflowStepActionType {
    App = "app",
    Email = "email",
    Task = "task"
}
export type WorkflowStepAction = WorkflowStepEmailAction | WorkflowStepTaskAction | WorkflowStepAppAction;
export type WorkflowStepEmailActionRecipient = string | Link<'User'> | Link<'Team'>;
export type WorkflowStepEmailAction = {
    type: 'email';
    configuration: {
        recipients: WorkflowStepEmailActionRecipient[];
    };
};
export type WorkflowStepTaskAction = {
    type: 'task';
    configuration: {
        assignee: Link<'User'> | Link<'Team'>;
        body: string;
        dueDate?: number;
    };
};
export type WorkflowStepAppAction = {
    type: 'app';
    appId: string;
    appActionId: string;
    configuration?: {
        body?: Record<string, any>;
        headers?: Record<string, string>;
    };
};
export type WorkflowStepProps = {
    id: string;
    name: string;
    description?: string;
    actions?: WorkflowStepAction[];
    annotations?: string[];
    permissions?: WorkflowStepPermission[];
};
export type UpdateWorkflowStepProps = WorkflowStepProps;
export type CreateWorkflowStepProps = Omit<WorkflowStepProps, 'id'>;
export type WorkflowDefinitionSysProps = Pick<BasicMetaSysProps, 'id' | 'version' | 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy'> & {
    type: 'WorkflowDefinition';
    space: SysLink;
    environment: SysLink;
    isLocked: boolean;
};
export type WorkflowDefinitionValidationLink = {
    type: 'Link';
    validations: Array<{
        linkContentType: string[];
    }>;
    linkType: 'Entry';
};
export type WorkflowDefinitionProps = {
    sys: WorkflowDefinitionSysProps;
    name: string;
    description?: string;
    appliesTo?: WorkflowDefinitionValidationLink[];
    steps: WorkflowStepProps[];
    startOnEntityCreation?: boolean;
    flowType?: 'no_restriction' | 'strict_neighbor';
};
export type CreateWorkflowDefinitionProps = Omit<WorkflowDefinitionProps, 'sys' | 'steps'> & {
    steps: CreateWorkflowStepProps[];
};
export type UpdateWorkflowDefinitionProps = Omit<WorkflowDefinitionProps, 'sys' | 'steps'> & {
    sys: Pick<WorkflowDefinitionSysProps, 'version'>;
    steps: Array<CreateWorkflowStepProps | UpdateWorkflowStepProps>;
};
export type CreateWorkflowDefinitionParams = GetSpaceEnvironmentParams;
export type UpdateWorkflowDefinitionParams = GetWorkflowDefinitionParams;
export type DeleteWorkflowDefinitionParams = GetWorkflowDefinitionParams & {
    version: number;
};
type WorkflowDefinitionApi = {
    update(): Promise<WorkflowDefinition>;
    delete(): Promise<void>;
};
export interface WorkflowDefinition extends WorkflowDefinitionProps, DefaultElements<WorkflowDefinitionProps>, WorkflowDefinitionApi {
}
export type WorkflowDefinitionQueryOptions = Omit<PaginationQueryOptions, 'order'>;
/**
 * @private
 */
export default function createWorkflowDefinitionApi(makeRequest: MakeRequest): WorkflowDefinitionApi;
/**
 * @private
 */
export declare function wrapWorkflowDefinition(makeRequest: MakeRequest, data: WorkflowDefinitionProps): WorkflowDefinition;
/**
 * @private
 */
export declare const wrapWorkflowDefinitionCollection: (makeRequest: MakeRequest, data: import("../common-types").CollectionProp<WorkflowDefinitionProps>) => import("../common-types").Collection<WorkflowDefinition, WorkflowDefinitionProps>;
export {};