import {z} from 'zod' export type GetApiCmmnRepositoryCaseDefinitionsCaseDefinitionIdModelArgs = {caseDefinitionId: string}; export type GetApiCmmnRepositoryCaseDefinitionsCaseDefinitionIdModelOptions = {baseUrl: string, basicAuth?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const extensionAttribute = z.object({name: z.string().optional(), value: z.string().optional(), namespacePrefix: z.string().optional(), namespace: z.string().optional()}); export const extensionElement: z.ZodType = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(z.lazy(() => extensionElement))).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), name: z.string().optional(), namespacePrefix: z.string().optional(), namespace: z.string().optional(), elementText: z.string().optional(), childElements: z.record(z.string(), z.array(z.lazy(() => extensionElement))).optional()}); export const requiredRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), parentStage: z.lazy(() => stage.optional())}); export const variable = z.object({source: z.string().optional(), target: z.string().optional(), targetExpression: z.string().optional(), sourceExpression: z.string().optional()}); export const variableAggregationDefinition = z.object({implementationType: z.string().optional(), implementation: z.string().optional(), target: z.string().optional(), targetExpression: z.string().optional(), definitions: z.array(variable).optional(), storeAsTransientVariable: z.boolean().optional(), createOverviewVariable: z.boolean().optional()}); export const variableAggregationDefinitions = z.object({aggregations: z.array(variableAggregationDefinition).optional(), overviewAggregations: z.array(variableAggregationDefinition).optional()}); export const repetitionRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), repetitionCounterVariableName: z.string().optional(), ignoreRepetitionCounterVariable: z.boolean().optional(), collectionVariableName: z.string().optional(), elementVariableName: z.string().optional(), elementIndexVariableName: z.string().optional(), maxInstanceCount: z.number().int().optional(), aggregations: variableAggregationDefinitions.optional(), parentStage: z.lazy(() => stage.optional())}); export const manualActivationRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), parentStage: z.lazy(() => stage.optional())}); export const completionNeutralRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), parentStage: z.lazy(() => stage.optional())}); export const parentCompletionRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), type: z.string().optional(), parentStage: z.lazy(() => stage.optional())}); export const reactivationRule = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), condition: z.string().optional(), activateCondition: z.string().optional(), ignoreCondition: z.string().optional(), defaultCondition: z.string().optional(), parentStage: z.lazy(() => stage.optional())}); export const planItemControl = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), requiredRule: requiredRule.optional(), repetitionRule: repetitionRule.optional(), manualActivationRule: manualActivationRule.optional(), completionNeutralRule: completionNeutralRule.optional(), parentCompletionRule: parentCompletionRule.optional(), reactivationRule: reactivationRule.optional(), parentStage: z.lazy(() => stage.optional())}); export const fieldExtension = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), fieldName: z.string().optional(), stringValue: z.string().optional(), expression: z.string().optional()}); export const scriptInfo = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), language: z.string().optional(), resultVariable: z.string().optional(), script: z.string().optional()}); export const flowableListener = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), event: z.string().optional(), sourceState: z.string().optional(), targetState: z.string().optional(), implementationType: z.string().optional(), implementation: z.string().optional(), fieldExtensions: z.array(fieldExtension).optional(), onTransaction: z.string().optional(), scriptInfo: scriptInfo.optional()}); export const planItemDefinition = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), planItemRef: z.string().optional(), defaultControl: planItemControl.optional(), lifecycleListeners: z.array(flowableListener).optional(), parentStage: z.lazy(() => stage.optional())}); export const sentryOnPart = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), sourceRef: z.string().optional(), source: z.lazy(() => planItem.optional()), standardEvent: z.string().optional()}); export const sentryIfPart = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), condition: z.string().optional()}); export const sentry = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), triggerMode: z.string().optional(), onParts: z.array(sentryOnPart).optional(), sentryIfPart: sentryIfPart.optional(), defaultTriggerMode: z.boolean().optional(), onEventTriggerMode: z.boolean().optional(), parentStage: z.lazy(() => stage.optional())}); export const baseElement = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional()}); export const association = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), sourceRef: z.string().optional(), sourceElement: baseElement.optional(), targetRef: z.string().optional(), targetElement: baseElement.optional(), transitionEvent: z.string().optional()}); export const criterion = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), technicalId: z.string().optional(), sentryRef: z.string().optional(), sentry: sentry.optional(), attachedToRefId: z.string().optional(), exitType: z.string().optional(), exitEventType: z.string().optional(), incomingAssociations: z.array(association).optional(), outgoingAssociations: z.array(association).optional(), entryCriterion: z.boolean().optional(), exitCriterion: z.boolean().optional(), parentStage: z.lazy(() => stage.optional())}); export const planItem: z.ZodType = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), definitionRef: z.string().optional(), planItemDefinition: planItemDefinition.optional(), instanceLifecycleEnabled: z.boolean().optional(), itemControl: planItemControl.optional(), criteriaRefs: z.array(z.string()).optional(), entryCriteria: z.array(criterion).optional(), exitCriteria: z.array(criterion).optional(), incomingAssociations: z.array(association).optional(), outgoingAssociations: z.array(association).optional(), entryDependencies: z.array(z.lazy(() => planItem)).optional(), exitDependencies: z.array(z.lazy(() => planItem)).optional(), entryDependentPlanItems: z.array(z.lazy(() => planItem)).optional(), exitDependentPlanItems: z.array(z.lazy(() => planItem)).optional(), behavior: z.object({}).optional(), allDependentPlanItems: z.array(z.lazy(() => planItem)).optional(), parentStage: z.lazy(() => stage.optional())}); export const planFragment: z.ZodType = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: z.lazy(() => planFragment.optional()), planItemRef: z.string().optional(), defaultControl: planItemControl.optional(), lifecycleListeners: z.array(flowableListener).optional(), planItem: planItem.optional(), sentries: z.array(sentry).optional(), planItems: z.array(planItem).optional(), case: z.lazy(() => case.optional()), directChildPlanItemsWithLifecycleEnabled: z.array(planItem).optional(), parentStage: z.lazy(() => stage.optional())}); export const stage: z.ZodType = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: planFragment.optional(), planItemRef: z.string().optional(), defaultControl: planItemControl.optional(), lifecycleListeners: z.array(flowableListener).optional(), planItem: planItem.optional(), sentries: z.array(sentry).optional(), exitCriteria: z.array(criterion).optional(), autoComplete: z.boolean().optional(), autoCompleteCondition: z.string().optional(), formKey: z.string().optional(), sameDeployment: z.boolean().optional(), validateFormFields: z.string().optional(), displayOrder: z.number().int().optional(), includeInStageOverview: z.string().optional(), planItemDefinitionMap: z.record(z.string(), planItemDefinition).optional(), businessStatus: z.string().optional(), planModel: z.boolean().optional(), planItemDefinitions: z.array(planItemDefinition).optional(), planItems: z.array(planItem).optional(), case: z.lazy(() => case.optional()), directChildPlanItemsWithLifecycleEnabled: z.array(planItem).optional(), parentStage: z.lazy(() => stage.optional())}); export const caseElement = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: planFragment.optional(), parentStage: stage.optional()}); export const reactivateEventListener = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), parent: planFragment.optional(), planItemRef: z.string().optional(), defaultControl: planItemControl.optional(), lifecycleListeners: z.array(flowableListener).optional(), availableConditionExpression: z.string().optional(), authorizedRoleRefs: z.array(z.string()).optional(), defaultReactivationRule: reactivationRule.optional(), reactivationAvailableConditionExpression: z.string().optional(), parentStage: stage.optional()}); export const case: z.ZodType = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), initiatorVariableName: z.string().optional(), planModel: stage.optional(), startEventType: z.string().optional(), candidateStarterUsers: z.array(z.string()).optional(), candidateStarterGroups: z.array(z.string()).optional(), async: z.boolean().optional(), allCaseElements: z.record(z.string(), caseElement).optional(), lifecycleListeners: z.array(flowableListener).optional(), reactivateEventListener: reactivateEventListener.optional()}); export const process = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), externalRef: z.string().optional(), implementationType: z.string().optional()}); export const decision = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), name: z.string().optional(), externalRef: z.string().optional(), implementationType: z.string().optional()}); export const textAnnotation = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), documentationTextFormat: z.string().optional(), documentation: z.string().optional(), text: z.string().optional(), textFormat: z.string().optional()}); export const graphicInfo = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), x: z.number().optional(), y: z.number().optional(), height: z.number().optional(), width: z.number().optional(), element: baseElement.optional(), expanded: z.boolean().optional(), rotation: z.number().optional()}); export const cmmnDiEdge = z.object({id: z.string().optional(), xmlRowNumber: z.number().int().optional(), xmlColumnNumber: z.number().int().optional(), extensionElements: z.record(z.string(), z.array(extensionElement)).optional(), attributes: z.record(z.string(), z.array(extensionAttribute)).optional(), cmmnElementRef: z.string().optional(), targetCmmnElementRef: z.string().optional(), sourceDockerInfo: graphicInfo.optional(), targetDockerInfo: graphicInfo.optional(), waypoints: z.array(graphicInfo).optional(), labelGraphicInfo: graphicInfo.optional()}); export const cmmnModel = z.object({id: z.string().optional(), name: z.string().optional(), targetNamespace: z.string().optional(), expressionLanguage: z.string().optional(), exporter: z.string().optional(), exporterVersion: z.string().optional(), author: z.string().optional(), creationDate: z.string().optional(), definitionsAttributes: z.record(z.string(), z.array(extensionAttribute)).optional(), cases: z.array(case).optional(), processes: z.array(process).optional(), decisions: z.array(decision).optional(), associations: z.array(association).optional(), textAnnotations: z.array(textAnnotation).optional(), locationMap: z.record(z.string(), graphicInfo).optional(), labelLocationMap: z.record(z.string(), graphicInfo).optional(), flowLocationMap: z.record(z.string(), z.array(graphicInfo)).optional(), edgeMap: z.record(z.string(), cmmnDiEdge).optional(), namespaces: z.record(z.string(), z.string()).optional(), primaryCase: case.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get a case definition CMMN model * * GET /cmmn-repository/case-definitions/{caseDefinitionId}/model */ export const getApiCmmnRepositoryCaseDefinitionsCaseDefinitionIdModel = async (args: GetApiCmmnRepositoryCaseDefinitionsCaseDefinitionIdModelArgs, options: GetApiCmmnRepositoryCaseDefinitionsCaseDefinitionIdModelOptions) => { const {baseUrl, fetch: fetchFn = fetch, basicAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (basicAuth !== undefined) headers.set('authorization', `Basic ${btoa(`${basicAuth.username}:${basicAuth.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/cmmn-repository/case-definitions/${encodeURIComponent(String(args.caseDefinitionId))}/model${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(cmmnModel, await res.json()) };