UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

84 lines (83 loc) 2.99 kB
import { z } from "zod"; import { getQueryRequestBodySchema, basicStringFilterSchema, advancedDateTimeFilterSchema, getQueryResponseBodySchema, API_VERSION } from "../common.js"; import { matchedDecisionRuleItemSchema, evaluatedDecisionInputItemSchema } from "./decision-definition.js"; const decisionDefinitionTypeSchema = z.enum(["DECISION_TABLE", "LITERAL_EXPRESSION", "UNSPECIFIED", "UNKNOWN"]); const decisionInstanceStateSchema = z.enum(["EVALUATED", "FAILED", "UNSPECIFIED", "UNKNOWN"]); const decisionInstanceSchema = z.object({ decisionInstanceId: z.string(), state: decisionInstanceStateSchema, evaluationDate: z.string(), evaluationFailure: z.string(), decisionDefinitionId: z.string(), decisionDefinitionName: z.string(), decisionDefinitionVersion: z.number(), decisionDefinitionType: decisionDefinitionTypeSchema, result: z.string(), tenantId: z.string(), decisionInstanceKey: z.string(), processDefinitionKey: z.string(), processInstanceKey: z.string(), decisionDefinitionKey: z.string(), elementInstanceKey: z.string() }); const queryDecisionInstancesRequestBodySchema = getQueryRequestBodySchema({ sortFields: [ "decisionInstanceKey", "decisionInstanceId", "state", "evaluationDate", "evaluationFailure", "processDefinitionKey", "processInstanceKey", "processInstanceId", "decisionDefinitionKey", "decisionDefinitionId", "decisionDefinitionName", "decisionDefinitionVersion", "decisionDefinitionType", "tenantId", "elementInstanceKey" ], filter: z.object({ evaluationDate: advancedDateTimeFilterSchema, decisionDefinitionKey: basicStringFilterSchema, ...decisionInstanceSchema.pick({ decisionInstanceId: true, state: true, evaluationFailure: true, decisionDefinitionId: true, decisionDefinitionName: true, decisionDefinitionVersion: true, decisionDefinitionType: true, tenantId: true, decisionInstanceKey: true, processDefinitionKey: true, processInstanceKey: true, elementInstanceKey: true }).shape }).partial() }); const queryDecisionInstancesResponseBodySchema = getQueryResponseBodySchema(decisionInstanceSchema); const getDecisionInstanceResponseBodySchema = z.object({ evaluatedInputs: z.array(evaluatedDecisionInputItemSchema).optional(), matchedRules: z.array(matchedDecisionRuleItemSchema).optional(), ...decisionInstanceSchema.shape }); const queryDecisionInstances = { method: "POST", getUrl: () => `/${API_VERSION}/decision-instances/search` }; const getDecisionInstance = { method: "GET", getUrl: ({ decisionInstanceId }) => `/${API_VERSION}/decision-instances/${decisionInstanceId}` }; export { decisionDefinitionTypeSchema, decisionInstanceSchema, decisionInstanceStateSchema, getDecisionInstance, getDecisionInstanceResponseBodySchema, queryDecisionInstances, queryDecisionInstancesRequestBodySchema, queryDecisionInstancesResponseBodySchema };