Skip to content

Processes, policies, and decisions

These classes express end-to-end business processes, branching decisions, policies, waits, human work, and exception handling.

Source: mde/metamodels/cim/cim-process-policy.emf.

BusinessProcess

The CIM-level description of a business journey from its trigger to its completion criterion. Its contained steps and transitions describe what the organization does; its exceptions and temporal constraints make failure and timing part of the business definition before orchestration technology is selected.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
businessTriggerDescription String [1] A plain-language account of what starts the business process when the trigger cannot yet be expressed as a typed event, command, actor, or model element. It keeps the process reviewable during discovery; the CIM trigger validation accepts it as an explicit alternative, while later refinement can replace it with a typed trigger. Semantic validation: ProcessHasTriggerAndCompletionCriterion (process has trigger and completion criterion) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule BusinessProcess2Workflow in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining BusinessProcess. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Processes confirmed orders for the owning capability..
longRunning Boolean [1] Marks a process whose work can outlive a normal request/response interaction. This is a business timing decision, not a Lambda timeout setting: the CIM validation requires temporal constraints for it, and the CIM-to-PIM transformation uses it when shaping a workflow and its duration/resilience policies. Semantic validation: LongRunningProcessHasTemporalConstraint (long running process has temporal constraint) in mde/validation/cim/rules/process-policy.evl the flag must be enabled for this rule to pass. Transformation role: ETL rule BusinessProcess2Workflow in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining BusinessProcess. Either true or false. Example: false.
humanApprovalPossible Boolean [1] Says that a human decision can be part of the process rather than being an implementation accident. PIM refinement uses the fact when deciding whether the workflow needs a human/approval task and its associated timeout, assignee, and escalation concerns. Transformation role: ETL rule BusinessProcess2Workflow in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining BusinessProcess. Either true or false. Example: false.
compensationExpected Boolean [1] Declares that an unsuccessful process may need business reversal or remediation. The CIM critique then asks for exception scenarios, and the transformation uses those scenarios to create PIM compensation policy and recovery handling. Semantic validation: CompensationProcessHasExceptionScenarios (compensation process has exception scenarios) in mde/validation/cim/rules/process-policy.evl the flag must be enabled for this rule to pass. Transformation role: ETL rule BusinessProcess2Workflow in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining BusinessProcess. Either true or false. Example: false.
completionCriterion String [1] The business-observable condition that makes this process finished, for example, “the reserved order is either confirmed or explicitly rejected.” It is required alongside a trigger so the model describes a complete business lifecycle rather than only an entry point. Semantic validation: ProcessHasTriggerAndCompletionCriterion (process has trigger and completion criterion) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: At least 95% of confirmed orders complete within 2 minutes..
processKind ProcessKind [1] Classifies the process pattern, such as a short business process, long-running process, or saga-like process. The classification gives transformations an architectural hint about orchestration and compensation without pretending that a provider-specific workflow type has already been chosen. Semantic validation: LongRunningProcessHasTemporalConstraint (long running process has temporal constraint) in mde/validation/cim/rules/process-policy.evl the flag must be enabled for this rule to pass. Exactly one of: STRAIGHT_THROUGH, HUMAN_INVOLVED, LONG_RUNNING, CASE_MANAGEMENT, SAGA_LIKE_BUSINESS_PROCESS, REPORTING_PROCESS. Example: STRAIGHT_THROUGH.
criticality CapabilityCriticality [1] Expresses the business consequence of this process being unavailable or wrong. The value travels with the process into refinement so resilience, observability, readiness, and production review can be prioritized according to business impact. Transformation role: ETL rule BusinessProcess2Workflow in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining BusinessProcess. Exactly one of: SUPPORTING, IMPORTANT, CORE, MISSION_CRITICAL. Example: SUPPORTING.

Relationships

Relationship Kind and multiplicity Meaning in the model
stepsProcessStep containment, [+] Contains the process step element(s) that make up this business process; the contained objects belong to this model element.
transitionsProcessTransition containment, [*] Contains the process transition element(s) that make up this business process; the contained objects belong to this model element.
exceptionsExceptionScenario containment, [*] Contains the exception scenario element(s) that make up this business process; the contained objects belong to this model element.
temporalConstraintsTemporalConstraint containment, [*] Contains the temporal constraint element(s) that make up this business process; the contained objects belong to this model element.
owningCapabilityBusinessCapability reference, [?]; opposite ownsProcesses References the business capability element(s) used as owning capability by this business process; the target may be shared elsewhere in the model.
triggeringActorActor reference, [?] References the actor element(s) used as triggering actor by this business process; the target may be shared elsewhere in the model.
triggeringEventBusinessEvent reference, [?] References the business event element(s) used as triggering event by this business process; the target may be shared elsewhere in the model.
triggeringCommandCommand reference, [?] References the command element(s) used as triggering command by this business process; the target may be shared elsewhere in the model.
preconditionsCondition reference, [*] References the condition element(s) used as preconditions by this business process; the target may be shared elsewhere in the model.
postconditionsCondition reference, [*] References the condition element(s) used as postconditions by this business process; the target may be shared elsewhere in the model.
triggerModelElement reference, [?] References the model element element(s) used as trigger by this business process; the target may be shared elsewhere in the model.

ProcessStep

The common CIM vocabulary for one meaningful unit of work in a business process. The concrete subtype says whether the unit is a command, query, event, decision, policy, human task, external interaction, wait, start, or end.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
orderIndex Integer [1] The modeller's deterministic position for this step among the steps of one business process. It is a fallback ordering aid, not a replacement for ProcessTransition: CIM EVL checks that supplied indexes are unique, CIM-to-PIM copies the value to the workflow step, and the PIM-to-AWS transformation later sorts workflow steps by it when it must choose a start state or infer an ordered next step. Use distinct non-negative integers such as 0, 1, and 2; use transitions to express branches and loops. Transformation role: ETL rule WaitLikeStep2WorkflowWaitStep in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining ProcessStep. ETL rule ProcessStep2WorkflowTaskStep in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining ProcessStep. A non-negative integer unique within the process when supplied. Examples: 0, 1, 2. Leave it unset only when explicit transitions fully describe the ordering.
optional Boolean [1] Whether the business can legitimately skip the step without treating the process as incomplete. This is different from an implementation-level conditional: it records the business tolerance for omission so PIM workflow design can decide whether to model a branch, a default path, or an explicit review decision. Either true or false. Example: false.
repeatable Boolean [1] Whether the same business step may occur more than once in one process instance, such as retrying an approval or revisiting a validation. It tells refinement that a single linear invocation is not sufficient and that loop, idempotency, or duplicate-side-effect questions must be considered. Either true or false. Example: false.
responsibility String [1] The human-readable responsibility of the step: what outcome the responsible party is expected to produce, not merely a team name. CIM validation requires either this explanation or responsibleRoles; together they give transformation and review enough information to avoid creating an ownerless piece of workflow. Semantic validation: ProcessStepHasResponsibility (process step has responsibility) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Reserve inventory for a confirmed order..
stepKind StepKind [1] The semantic role of the step in the business flow, command, query, event, decision, policy, human task, external interaction, wait, start, or end. The concrete step class and this enum are checked for agreement, and the CIM-to-PIM ETL uses the kind to select the corresponding workflow-step subtype. Semantic validation: ProcessStepHasResponsibility (process step has responsibility) in mde/validation/cim/rules/process-policy.evl the value must satisfy a numeric or ordering boundary. Exactly one of: COMMAND, QUERY, EVENT, DECISION, POLICY, HUMAN_TASK, EXTERNAL_INTERACTION, WAIT, START, END. Example: COMMAND.

Relationships

Relationship Kind and multiplicity Meaning in the model
responsibleRolesRole reference, [*] References the role element(s) used as responsible roles by this process step; the target may be shared elsewhere in the model.

StartStep

The unique business entry point from which the process begins after its trigger has been recognized. It is a process step rather than a diagram-only marker because its position and traceability are carried into workflow generation.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

This class declares no direct relationships.

EndStep

A business termination point. A process may have more than one end outcome, so an end step gives each successful/failed completion path an explicit place in the process graph.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

This class declares no direct relationships.

CommandStep

A process unit that changes business state by invoking a modeled CIM command. Keeping the command reference typed lets transformation connect the step to a function/API realization without guessing what the action means.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

Relationship Kind and multiplicity Meaning in the model
commandCommand reference, [1] References the command element(s) used as command by this command step; the target may be shared elsewhere in the model.

QueryStep

A process unit that obtains information without claiming a state change. The typed query reference preserves the read contract and keeps it distinct from command-side effects.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

Relationship Kind and multiplicity Meaning in the model
queryQuery reference, [1] References the query element(s) used as query by this query step; the target may be shared elsewhere in the model.

EventStep

A process unit that publishes or reacts to a business event. It represents a domain fact in the process, not simply a message transport operation.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

Relationship Kind and multiplicity Meaning in the model
eventBusinessEvent reference, [1] References the business event element(s) used as event by this event step; the target may be shared elsewhere in the model.

PolicyStep

A process unit whose behavior is governed by a modeled business policy. It gives policy evaluation a place in the process graph and keeps the policy's rule/decision semantics attached to the flow.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

Relationship Kind and multiplicity Meaning in the model
policyPolicy reference, [1] References the policy element(s) used as policy by this policy step; the target may be shared elsewhere in the model.

HumanTaskStep

A process unit that requires a person to perform an action and provide evidence of completion. It is the CIM source for the later human-task, approval, timeout, and escalation design.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
taskDescription String [1] What a person must actually do, written as an action with a business result rather than as a UI instruction. EVL requires it for a human task, and PIM refinement carries it into HumanTask so assignees, completion evidence, timeouts, and escalation can be designed. Semantic validation: HumanTaskStepKindAndDescription (human task step kind and description) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Processes confirmed orders for the owning capability..
completionEvidence String [1] The evidence that proves the person completed the task, for example, an approval decision, signed document, or recorded review. It prevents a human step from ending on an unverifiable click and becomes the basis for the PIM human-task completion contract. Semantic validation: HumanTaskStepKindAndDescription (human task step kind and description) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Human Task Step Completion Evidence.

Relationships

This class declares no direct relationships.

ExternalInteractionStep

A process unit that crosses the modeled organization's boundary to exchange information with an external system. Its purpose and exchanged information make the integration a business dependency rather than an unexplained endpoint.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
interactionPurpose String [1] Why the business process crosses into the named external system. It is required with the system reference because a URL alone does not explain the business dependency; the purpose guides the exchanged-information, contract, resilience, and security decisions in PIM. Semantic validation: ExternalInteractionStepIsExplicit (external interaction step is explicit) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Reserve inventory for a confirmed order..

Relationships

Relationship Kind and multiplicity Meaning in the model
externalSystemExternalSystem reference, [1] References the external system element(s) used as external system by this external interaction step; the target may be shared elsewhere in the model.
exchangedInformationInformationItem reference, [*] References the information item element(s) used as exchanged information by this external interaction step; the target may be shared elsewhere in the model.

DecisionStep

A branching point whose alternatives are determined by a condition or decision table. The outgoing transitions are part of its semantics; two or more branches are required so it does not masquerade as ordinary work.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

This class declares no attributes of its own. It inherits the attributes of its supertype, if any.

Relationships

Relationship Kind and multiplicity Meaning in the model
conditionCondition reference, [?] References the condition element(s) used as condition by this decision step; the target may be shared elsewhere in the model.
decisionTableDecisionTable reference, [?] References the decision table element(s) used as decision table by this decision step; the target may be shared elsewhere in the model.

WaitStep

A provider-independent pause with either timed or callback/event semantics. Its condition and reason are preserved until the PSM can safely emit an ASL wait state or identify a manual decision.

Direct supertypes: ProcessStep. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
waitReason String [1] Why the workflow is intentionally paused. It preserves the business interpretation of a wait after CIM transformation, helping a modeller choose between a timed wait, callback token, event wait, or a missing transition. Semantic validation: WaitStepHasDurationOrReason (wait step has duration or reason) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Wait Step Wait Reason.
durationExpression String [1] A business-level expression for how long the process waits. The typed durationExpressionModel and this text are carried into PIM temporal policy; the PIM-to-AWS transformation can only emit a concrete Step Functions wait duration when the expression can be interpreted, otherwise it creates a manual decision/readiness finding. Semantic validation: WaitStepHasDurationOrReason (wait step has duration or reason) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.

Relationships

Relationship Kind and multiplicity Meaning in the model
durationExpressionModelExpression containment, [?] Contains the expression element(s) that make up this wait step; the contained objects belong to this model element.

ProcessTransition

A directed business route from one process step to another. Its condition/label explains why the route is taken, while its order index can stabilize competing alternatives without replacing their business predicates.

Direct supertypes: SemanticRelationship. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
label String [1] The business name of the path between two steps, such as inventory available or payment declined. It gives a decision diagram a readable branch meaning; CIM validation requires a label, condition, or condition reference for decision branches. Semantic validation: ConditionalTransitionIsLabelled (conditional transition is labelled) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Process Transition Label.
conditionExpression String [1] The executable or semi-formal predicate that makes this path eligible. CIM-to-PIM resolves the strongest available condition source (conditionRef, this text, or the typed expression) into WorkflowTransition.conditionExpression, which later becomes a workflow/ASL branch condition. Semantic validation: ConditionalTransitionIsLabelled (conditional transition is labelled) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule ProcessTransition2WorkflowTransition in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining ProcessTransition. ETL rule ProcessTransition2WorkflowTransition in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining ProcessTransition. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
orderIndex Integer [1] The deterministic order of outgoing alternatives when a process author cares about branch precedence or wants stable review output. It does not decide which branch is true, that belongs to the condition, so it should only disambiguate presentation/evaluation order with values such as 0, 1, and 2. A non-negative integer used only to stabilize the order of outgoing alternatives. Examples: 0, 1. It does not replace the transition condition.
probabilityHint String [1] A planning estimate of how often this path is expected to be taken, for example 0.8 or high during peak season. It supports capacity, cost, and risk conversations; it is intentionally a hint and is not used as executable routing logic. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: 0.8.

Relationships

Relationship Kind and multiplicity Meaning in the model
conditionExpression containment, [?] Contains the expression element(s) that make up this process transition; the contained objects belong to this model element.
sourceProcessStep reference, [1] References the process step element(s) used as source by this process transition; the target may be shared elsewhere in the model.
targetProcessStep reference, [1] References the process step element(s) used as target by this process transition; the target may be shared elsewhere in the model.
conditionRefCondition reference, [?] References the condition element(s) used as condition ref by this process transition; the target may be shared elsewhere in the model.

Policy

A reusable business rule that constrains, authorizes, reacts to, or decides something in the CIM. Natural-language and executable forms can coexist so stakeholders can review the intent while transformations preserve machine-checkable behavior.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
naturalLanguageRule String [1] The rule in the vocabulary stakeholders can review, such as “a refund requires an approved return.” It keeps policy intent understandable even when no executable expression exists; CIM validation accepts it as one of the valid rule definitions and transformation can preserve it as policy rationale. Semantic validation: PolicyHasRuleDefinition (policy has rule definition) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule Policy2PolicyHandlerFunction in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. ETL rule Policy2PolicyHandlerFunction in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining Policy. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
expression String [1] The machine-readable form of the policy when the rule must be evaluated rather than merely discussed. expressionLanguage identifies how to parse it and expressionModel can carry the typed form; the distinction lets validation reject a claimed executable policy that has no interpretable expression. Semantic validation: PolicyHasRuleDefinition (policy has rule definition) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
auditRequired Boolean [1] Whether applying or violating this policy must leave an auditable business record. It is a governance requirement that later influences event, logging, retention, and access-audit design; it is not equivalent to enabling technical logs. Transformation role: ETL rule Policy2PolicyHandlerFunction in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. Either true or false. Example: true.
policyType PolicyType [1] Identifies the policy's job, constraint, authorization, reaction, decision, or another controlled kind, so consumers know whether it guards an action, responds to an event, or computes an outcome. Semantic validation: ReactionPolicyEmitsOutcome (reaction policy emits outcome) in mde/validation/cim/rules/process-policy.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Policy2PolicyHandlerFunction in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. ETL rule Policy2ArchitecturePolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. Exactly one of: REACTION, GUARD, DERIVATION, AUTHORIZATION, VALIDATION, COMPLIANCE, ESCALATION, COMPENSATION. Example: REACTION.
expressionLanguage ExpressionLanguage [1] The language contract for expression, such as FEEL, OCL, JSONPath, or natural language. Without it, the same characters could be interpreted in incompatible ways; with it, validators and transformations can decide whether the expression is suitable for the next model level. Semantic validation: PolicyHasRuleDefinition (policy has rule definition) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Exactly one of: NATURAL_LANGUAGE, OCL, FEEL, JSONPATH, JSONATA, JAVASCRIPT, TYPESCRIPT, PYTHON, SQL, REGEX, OTHER. Example: NATURAL_LANGUAGE.
enforcementStrength ConstraintStrength [1] How strongly the organization expects the policy to be enforced: advisory, recommended, mandatory, or blocking. It separates a design preference from a release gate and is why CIM validation demands a violation severity for mandatory or blocking policies. Semantic validation: MandatoryOrBlockingPolicyHasSeverity (mandatory or blocking policy has severity) in mde/validation/cim/rules/process-policy.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Policy2ArchitecturePolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. Exactly one of: ADVISORY, RECOMMENDED, MANDATORY, BLOCKING. Example: ADVISORY.
violationSeverity Severity [1] The impact assigned when the policy is broken. It lets readiness and transformation tooling distinguish an informational observation from a production-blocking policy failure instead of treating every rule equally. Semantic validation: MandatoryOrBlockingPolicyHasSeverity (mandatory or blocking policy has severity) in mde/validation/cim/rules/process-policy.evl the related value or object must be explicitly provided. Transformation role: ETL rule Policy2PolicyHandlerFunction in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining Policy. Exactly one of: INFO, WARNING, ERROR, CRITICAL, BLOCKER. Example: INFO.

Relationships

Relationship Kind and multiplicity Meaning in the model
expressionModelExpression containment, [?] Contains the expression element(s) that make up this policy; the contained objects belong to this model element.
triggeredByBusinessEvent reference, [*]; opposite consumedByPolicies References the business event element(s) used as triggered by by this policy; the target may be shared elsewhere in the model.
guardsCommand reference, [*] References the command element(s) used as guards by this policy; the target may be shared elsewhere in the model.
constrainsQueriesQuery reference, [*] References the query element(s) used as constrains queries by this policy; the target may be shared elsewhere in the model.
emitsCommandsCommand reference, [*] References the command element(s) used as emits commands by this policy; the target may be shared elsewhere in the model.
emitsEventsBusinessEvent reference, [*]; opposite causedByPolicies References the business event element(s) used as emits events by this policy; the target may be shared elsewhere in the model.
decisionTableDecisionTable reference, [?] References the decision table element(s) used as decision table by this policy; the target may be shared elsewhere in the model.

DecisionTable

A structured collection of decision rules with an explicit hit policy and default behavior. It makes rule precedence and coverage visible before the decision is converted into a function or workflow choice.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
hitPolicy String [1] The rule-selection strategy for the table, whether the first match, all matches, a unique match, or another result is expected. It determines how overlapping DecisionRule entries are interpreted and must remain explicit before executable decision logic is generated. Semantic validation: DecisionTableRulesHaveUniquePriority (decision table rules have unique priority) in mde/validation/cim/rules/process-policy.evl the feature participates in a semantic validation condition. Transformation role: ETL rule DecisionTable2ChoiceLogic in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining DecisionTable. ETL rule DecisionTable2DecisionModel in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining DecisionTable. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: STANDARD.
defaultOutcome String [1] The outcome used when no row matches. An incomplete table must provide it because otherwise a real input can reach the decision with no business answer; EVL checks precisely for that gap. Semantic validation: IncompleteDecisionTableHasDefault (incomplete decision table has default) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule DecisionTable2DecisionModel in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining DecisionTable. ETL rule DecisionTable2DecisionModel in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining DecisionTable. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Decision Table Default Outcome.
complete Boolean [1] Whether the modeled rules cover the permitted input space. Setting it false is an honest statement that cases remain unmatched, which is why validation asks for a default outcome rather than silently treating the table as total. Semantic validation: IncompleteDecisionTableHasDefault (incomplete decision table has default) in mde/validation/cim/rules/process-policy.evl the flag must be enabled for this rule to pass. Transformation role: ETL rule DecisionTable2ChoiceLogic in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining DecisionTable. ETL rule DecisionTable2DecisionModel in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining DecisionTable. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. Either true or false. Example: false.

Relationships

Relationship Kind and multiplicity Meaning in the model
rulesDecisionRule containment, [+] Contains the decision rule element(s) that make up this decision table; the contained objects belong to this model element.
inputsInformationItem reference, [*] References the information item element(s) used as inputs by this decision table; the target may be shared elsewhere in the model.
outputsInformationItem reference, [*] References the information item element(s) used as outputs by this decision table; the target may be shared elsewhere in the model.

DecisionRule

One row of a decision table: a condition, an outcome, and optionally the commands/events caused by that outcome. Priority is modeled separately so overlapping rules can be resolved deliberately.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
priorityOrder Integer [1] The explicit precedence of this row when more than one decision rule could match. EVL checks that supplied priorities are unique; the number therefore expresses business rule ordering, not a database or diagram position. A numeric Integer value; use the unit or boundary documented for this attribute. Example: 1.
condition String [1] The human-readable “when” part of the row. It explains the applicability of the rule to reviewers, while conditionExpression provides the typed/executable representation when the table is refined. Semantic validation: DecisionRuleHasConditionAndOutcome (decision rule has condition and outcome) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
outcome String [1] The business result produced by a matching row. It gives a decision table a usable answer even before resulting commands/events are linked, and EVL requires either this outcome or an executable outcome expression. Semantic validation: DecisionRuleHasConditionAndOutcome (decision rule has condition and outcome) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. DecisionRuleHasExecutableEffect (decision rule has executable effect) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Decision Rule Outcome.

Relationships

Relationship Kind and multiplicity Meaning in the model
conditionExpressionExpression containment, [?] Contains the expression element(s) that make up this decision rule; the contained objects belong to this model element.
outcomeExpressionExpression containment, [?] Contains the expression element(s) that make up this decision rule; the contained objects belong to this model element.
resultingCommandsCommand reference, [*] References the command element(s) used as resulting commands by this decision rule; the target may be shared elsewhere in the model.
resultingEventsBusinessEvent reference, [*] References the business event element(s) used as resulting events by this decision rule; the target may be shared elsewhere in the model.

ExceptionScenario

A business description of a departure from the normal process, including impact, recoverability, recovery action, and compensation need. It is the source of recovery design, not just a catalogue of technical errors.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
scenario String [1] The recognizable business situation in which the normal process cannot continue, such as a payment authorization expiring. It anchors recovery design in a domain event rather than in an arbitrary technical exception name. Semantic validation: ExceptionScenarioIsActionable (exception scenario is actionable) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Exception Scenario Scenario.
businessImpact String [1] What the exception means for the customer, organization, or obligation. It is required because recovery priority cannot be inferred from the exception label alone and it informs compensation/readiness decisions. Semantic validation: ExceptionScenarioIsActionable (exception scenario is actionable) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: A delayed fulfillment blocks customer delivery..
expected Boolean [1] Whether the scenario is part of normal business variation rather than an exceptional surprise. This distinction changes whether it should be modeled as an ordinary branch or as failure/recovery handling. Transformation role: ETL rule ExceptionScenario2ErrorHandler in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining ExceptionScenario. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/templates/tests/contract-test.egl. The artifact generator references this feature in mde/generation/awspsm-to-artifacts/templates/tests/security-test.egl. Either true or false. Example: false.
recoverable Boolean [1] Whether the business believes progress can be restored after this scenario. If true, CIM EVL requires recoveryAction; the flag therefore prevents a recovery path from being implied without an actionable plan. Semantic validation: ExceptionScenarioIsActionable (exception scenario is actionable) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule ExceptionScenario2ErrorHandler in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining ExceptionScenario. Either true or false. Example: false.
recoveryAction String [1] The business action that restores, compensates, or safely terminates the process after the scenario. The CIM-to-PIM transformation uses it to configure error handling and compensation strategy; it is not just a diagnostic message. Semantic validation: ExceptionScenarioIsActionable (exception scenario is actionable) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. CompensationScenarioEmitsEvent (compensation scenario emits event) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule ExceptionScenario2ErrorHandler in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining ExceptionScenario. ETL rule ExceptionScenario2ErrorHandler in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining ExceptionScenario. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Exception Scenario Recovery Action.
compensationRequired Boolean [1] Whether recovery must undo a previously committed business effect. When true, EVL expects a recovery action and resulting event, and transformation creates compensation policy/event links so the reversal remains visible in PIM. Semantic validation: CompensationScenarioEmitsEvent (compensation scenario emits event) in mde/validation/cim/rules/process-policy.evl the flag must be enabled for this rule to pass. Either true or false. Example: true.

Relationships

Relationship Kind and multiplicity Meaning in the model
errorsBusinessError reference, [*] References the business error element(s) used as errors by this exception scenario; the target may be shared elsewhere in the model.
resultingEventsBusinessEvent reference, [*] References the business event element(s) used as resulting events by this exception scenario; the target may be shared elsewhere in the model.

TemporalConstraint

A timing or ordering rule applied to selected process elements. It captures deadlines, durations, and precedence before the transformation attempts to turn them into PIM timeout/schedule policies or AWS wait settings.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
deadlineExpression String [1] The latest acceptable point by which the constrained business element must finish. It captures a deadline rather than a per-step runtime timeout; CIM-to-PIM converts parseable forms into timeout policy and records a manual decision when it cannot derive seconds. Semantic validation: TemporalConstraintHasExpression (temporal constraint has expression) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining TemporalConstraint. ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining TemporalConstraint. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
durationExpression String [1] The allowed elapsed time for the constrained process, step, or event. It is the source for provider-independent timeout expectations and, when parseable, Workflow.expectedMaxDurationSeconds or WorkflowStep.timeoutSeconds. Semantic validation: TemporalConstraintHasExpression (temporal constraint has expression) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining TemporalConstraint. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
orderingExpression String [1] A temporal relationship such as “approval must precede shipment” or “event B follows event A.” It expresses ordering that a numeric duration cannot capture and gives transformation/review a reason to preserve a dependency between model elements. Semantic validation: TemporalConstraintHasExpression (temporal constraint has expression) in mde/validation/cim/rules/process-policy.evl the value must be present and non-blank. Transformation role: ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining TemporalConstraint. ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining TemporalConstraint. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: $.status == 'READY'.
violationSeverity Severity [1] The consequence of missing the time rule. A blocker-level temporal violation becomes a production-readiness concern during transformation, while a warning can remain a review item. Transformation role: ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl assigns or materializes this feature while refining TemporalConstraint. ETL rule TemporalConstraint2TimeoutPolicy in mde/transformations/cim-to-pim/process-policy.etl reads or derives this feature while refining TemporalConstraint. Exactly one of: INFO, WARNING, ERROR, CRITICAL, BLOCKER. Example: INFO.

Relationships

Relationship Kind and multiplicity Meaning in the model
deadlineExpression containment, [?] Contains the expression element(s) that make up this temporal constraint; the contained objects belong to this model element.
durationExpression containment, [?] Contains the expression element(s) that make up this temporal constraint; the contained objects belong to this model element.
orderingExpression containment, [?] Contains the expression element(s) that make up this temporal constraint; the contained objects belong to this model element.
constrainedElementsModelElement reference, [*] References the model element element(s) used as constrained elements by this temporal constraint; the target may be shared elsewhere in the model.