UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

117 lines (116 loc) 3.31 kB
import { z } from "zod"; import { getEnumFilterSchema, getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js"; const elementInstanceStateSchema = z.enum(["ACTIVE", "COMPLETED", "TERMINATED"]); const elementInstanceTypeSchema = z.enum([ "UNSPECIFIED", "PROCESS", "SUB_PROCESS", "EVENT_SUB_PROCESS", "AD_HOC_SUB_PROCESS", "START_EVENT", "INTERMEDIATE_CATCH_EVENT", "INTERMEDIATE_THROW_EVENT", "BOUNDARY_EVENT", "END_EVENT", "SERVICE_TASK", "RECEIVE_TASK", "USER_TASK", "MANUAL_TASK", "TASK", "EXCLUSIVE_GATEWAY", "INCLUSIVE_GATEWAY", "PARALLEL_GATEWAY", "EVENT_BASED_GATEWAY", "SEQUENCE_FLOW", "MULTI_INSTANCE_BODY", "CALL_ACTIVITY", "BUSINESS_RULE_TASK", "SCRIPT_TASK", "SEND_TASK", "UNKNOWN" ]); const elementInstanceSchema = z.object({ processDefinitionId: z.string(), startDate: z.string(), endDate: z.string().optional(), elementId: z.string(), elementName: z.string(), type: elementInstanceTypeSchema, state: elementInstanceStateSchema, hasIncident: z.boolean(), tenantId: z.string(), elementInstanceKey: z.string(), processInstanceKey: z.string(), processDefinitionKey: z.string(), incidentKey: z.string().optional() }); const elementInstanceFilterSchema = z.object({ processDefinitionId: z.string(), state: z.union([elementInstanceStateSchema, getEnumFilterSchema(elementInstanceStateSchema)]), type: elementInstanceTypeSchema, elementId: z.string(), elementName: z.string(), hasIncident: z.boolean(), tenantId: z.string(), elementInstanceKey: z.string(), processInstanceKey: z.string(), processDefinitionKey: z.string(), incidentKey: z.string(), scopeKey: z.string() }).partial(); const queryElementInstancesRequestBodySchema = getQueryRequestBodySchema({ sortFields: [ "elementInstanceKey", "processInstanceKey", "processDefinitionKey", "processDefinitionId", "startDate", "endDate", "elementId", "elementName", "type", "state", "incidentKey", "tenantId" ], filter: elementInstanceFilterSchema }); const queryElementInstancesResponseBodySchema = getQueryResponseBodySchema(elementInstanceSchema); const queryElementInstances = { method: "POST", getUrl() { return `/${API_VERSION}/element-instances/search`; } }; const getElementInstance = { method: "GET", getUrl(params) { const { elementInstanceKey } = params; return `/${API_VERSION}/element-instances/${elementInstanceKey}`; } }; const getElementInstanceResponseBodySchema = elementInstanceSchema; const updateElementInstanceVariablesRequestBodySchema = z.object({ variables: z.record(z.string(), z.unknown()), local: z.boolean().optional() }); const updateElementInstanceVariables = { method: "PUT", getUrl(params) { const { elementInstanceKey } = params; return `/${API_VERSION}/element-instances/${elementInstanceKey}/variables`; } }; export { elementInstanceFilterSchema, elementInstanceSchema, elementInstanceStateSchema, elementInstanceTypeSchema, getElementInstance, getElementInstanceResponseBodySchema, queryElementInstances, queryElementInstancesRequestBodySchema, queryElementInstancesResponseBodySchema, updateElementInstanceVariables, updateElementInstanceVariablesRequestBodySchema };