@vzeta/camunda-api-zod-schemas
Version:
Zod schemas and TypeScript types for Camunda 8 unified API
104 lines (103 loc) • 3.52 kB
JavaScript
import { z } from "zod";
import { getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js";
const decisionDefinitionSchema = z.object({
decisionDefinitionId: z.string(),
name: z.string(),
version: z.number(),
decisionRequirementsId: z.string(),
tenantId: z.string(),
decisionDefinitionKey: z.string(),
decisionRequirementsKey: z.string()
});
const queryDecisionDefinitionsRequestBodySchema = getQueryRequestBodySchema({
sortFields: [
"decisionDefinitionKey",
"decisionDefinitionId",
"name",
"version",
"decisionRequirementsId",
"decisionRequirementsKey",
"tenantId"
],
filter: decisionDefinitionSchema.partial()
});
const queryDecisionDefinitionsResponseBodySchema = getQueryResponseBodySchema(decisionDefinitionSchema);
const getDecisionDefinitionXmlResponseBodySchema = z.string();
const evaluatedDecisionInputItemSchema = z.object({
inputId: z.string(),
inputName: z.string(),
inputValue: z.string()
});
const evaluatedDecisionOutputItemSchema = z.object({
outputId: z.string(),
outputName: z.string(),
outputValue: z.string()
});
const matchedDecisionRuleItemSchema = z.object({
ruleId: z.string(),
ruleIndex: z.number().int(),
evaluatedOutputs: z.array(evaluatedDecisionOutputItemSchema)
});
const evaluatedDecisionResultSchema = z.object({
decisionDefinitionId: z.string(),
decisionDefinitionName: z.string(),
decisionDefinitionVersion: z.number().int(),
decisionDefinitionType: z.string(),
output: z.string(),
tenantId: z.string(),
matchedRules: z.array(matchedDecisionRuleItemSchema),
evaluatedInputs: z.array(evaluatedDecisionInputItemSchema),
decisionDefinitionKey: z.string()
});
const evaluateDecisionRequestBodySchema = z.object({
decisionDefinitionId: z.string().optional(),
variables: z.record(z.string(), z.unknown()).optional(),
tenantId: z.string().optional(),
decisionDefinitionKey: z.string().optional()
});
const evaluateDecisionResponseBodySchema = z.object({
decisionDefinitionId: z.string(),
decisionDefinitionName: z.string(),
decisionDefinitionVersion: z.number().int(),
decisionRequirementsId: z.string(),
output: z.string(),
failedDecisionDefinitionId: z.string().optional(),
failureMessage: z.string().optional(),
tenantId: z.string(),
decisionDefinitionKey: z.string(),
decisionRequirementsKey: z.string(),
decisionInstanceKey: z.string(),
evaluatedDecisions: z.array(evaluatedDecisionResultSchema)
});
const queryDecisionDefinitions = {
method: "POST",
getUrl: () => `/${API_VERSION}/decision-definitions/search`
};
const getDecisionDefinition = {
method: "GET",
getUrl: ({ decisionDefinitionKey }) => `/${API_VERSION}/decision-definitions/${decisionDefinitionKey}`
};
const getDecisionDefinitionXml = {
method: "GET",
getUrl: ({ decisionDefinitionKey }) => `/${API_VERSION}/decision-definitions/${decisionDefinitionKey}/xml`
};
const evaluateDecision = {
method: "POST",
getUrl: () => `/${API_VERSION}/decision-definitions/evaluation`
};
export {
decisionDefinitionSchema,
evaluateDecision,
evaluateDecisionRequestBodySchema,
evaluateDecisionResponseBodySchema,
evaluatedDecisionInputItemSchema,
evaluatedDecisionOutputItemSchema,
evaluatedDecisionResultSchema,
getDecisionDefinition,
getDecisionDefinitionXml,
getDecisionDefinitionXmlResponseBodySchema,
matchedDecisionRuleItemSchema,
queryDecisionDefinitions,
queryDecisionDefinitionsRequestBodySchema,
queryDecisionDefinitionsResponseBodySchema
};