dotCMS · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for dotCMS REST Rules Engine API
27 actions
27 updates
phrasing
extends
openapi/dotcms-rules-engine-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for dotCMS's API. It is a proposal applied on top of the contract, not a document dotCMS publishes.
What the actions change
x-apievangelist-phrasing
Targets 27 · first 16 shown; the file carries all of them
$.info
$.paths['/api/rulesengine/layout/{params}'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/rules'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/rules'].post
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].put
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].delete
$.paths['/api/v1/sites/{siteId}/ruleengine/actions'].post
$.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].put
$.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].delete
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups'].post
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{conditionGroupId}'].delete
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}'].get
$.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}'].put
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for dotCMS REST Rules Engine API
version: 1.0.0
extends: openapi/dotcms-rules-engine-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 26
- target: $.paths['/api/rulesengine/layout/{params}'].get
update:
x-apievangelist-phrasing:
intent: Load the rules engine portlet layout
effect: read
questions:
- Where does the dotCMS admin UI get the layout for the rules engine screen?
- Can I fetch the rules engine portlet layout definition over REST?
instructions:
- text: Load the rules engine layout using parameters {params}.
slots:
params: path.params
- text: Fetch the layout definition for the rules engine portlet with {params}.
slots:
params: path.params
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules'].get
update:
x-apievangelist-phrasing:
intent: List the rules defined on a site
effect: read
questions:
- Which personalization rules are configured on one of my sites?
- How do I see every rule the rules engine runs for a given site?
instructions:
- text: List all rules configured on site {siteId}.
slots:
siteId: path.siteId
- text: Show me every rules engine rule for site {siteId} with their fire-on settings.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules'].post
update:
x-apievangelist-phrasing:
intent: Create a new rule on a site
effect: write
questions:
- Can I create a rule that fires on every page request for a site?
- What do I send to add a new rule with its condition groups and actions?
instructions:
- text: Create a rule named {name} on site {siteId} that fires {fireOn}.
slots:
name: requestBody.name
siteId: path.siteId
fireOn: requestBody.fireOn
- text: Add a rule called {name} to site {siteId} with priority {priority}.
slots:
name: requestBody.name
siteId: path.siteId
priority: requestBody.priority
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].get
update:
x-apievangelist-phrasing:
intent: Get a single rule by ID
effect: read
questions:
- How can I look up one specific rule and its settings on a site?
- Can I check whether a particular rule is enabled?
instructions:
- text: Get rule {ruleId} on site {siteId}.
slots:
ruleId: path.ruleId
siteId: path.siteId
- text: Show the name, priority and fire-on setting of rule {ruleId} for site {siteId}.
slots:
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing rule
effect: write
questions:
- Can I rename or re-prioritize a rule that already exists?
- How do I turn off short-circuit evaluation on an existing rule?
instructions:
- text: Rename rule {ruleId} on site {siteId} to {name}.
slots:
ruleId: path.ruleId
siteId: path.siteId
name: requestBody.name
- text: Set enabled to {enabled} on existing rule {ruleId} for site {siteId}.
slots:
enabled: requestBody.enabled
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a rule from a site
effect: destructive
questions:
- How do I permanently remove a rule from the rules engine?
- Can I delete a whole rule rather than just one of its actions?
instructions:
- text: Delete rule {ruleId} from site {siteId}.
slots:
ruleId: path.ruleId
siteId: path.siteId
- text: Remove the entire rule {ruleId} from site {siteId}, not just one of its actions.
slots:
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/actions'].post
update:
x-apievangelist-phrasing:
intent: Add an action to a rule
effect: write
questions:
- How do I attach an actionlet to a rule so it does something when it fires?
- Can I set the priority of a new rule action?
instructions:
- text: Add actionlet {actionlet} as a new action on rule {owningRule} for site {siteId}.
slots:
actionlet: requestBody.actionlet
owningRule: requestBody.owningRule
siteId: path.siteId
- text: Create a rule action on rule {owningRule} in site {siteId} with priority {priority}.
slots:
owningRule: requestBody.owningRule
siteId: path.siteId
priority: requestBody.priority
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].get
update:
x-apievangelist-phrasing:
intent: Get a rule action by ID
effect: read
questions:
- Which actionlet and parameters does a given rule action use?
- Can I inspect a single rule action on its own?
instructions:
- text: Get rule action {actionId} on site {siteId}.
slots:
actionId: path.actionId
siteId: path.siteId
- text: Show the actionlet and parameters configured for action {actionId} in site {siteId}.
slots:
actionId: path.actionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].put
update:
x-apievangelist-phrasing:
intent: Update a rule action
effect: write
questions:
- Can I change the parameters of an action a rule already has?
- How do I swap the actionlet used by an existing rule action?
instructions:
- text: Change existing action {actionId} on site {siteId} to use actionlet {actionlet} under rule {owningRule}.
slots:
actionId: path.actionId
siteId: path.siteId
actionlet: requestBody.actionlet
owningRule: requestBody.owningRule
- text: Update the parameters of rule action {actionId} in site {siteId} to {parameters}, keeping rule {owningRule}.
slots:
actionId: path.actionId
siteId: path.siteId
parameters: requestBody.parameters
owningRule: requestBody.owningRule
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/actions/{actionId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an action from a rule
effect: destructive
questions:
- How do I remove one action from a rule without deleting the rule?
- Can I delete a rule action I no longer need?
instructions:
- text: Delete rule action {actionId} on site {siteId}.
slots:
actionId: path.actionId
siteId: path.siteId
- text: Remove action {actionId} from its rule in site {siteId}, leaving the rule itself in place.
slots:
actionId: path.actionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups'].get
update:
x-apievangelist-phrasing:
intent: List a rule's condition groups
effect: read
questions:
- Which condition groups make up a particular rule?
- Can I see how a rule's conditions are grouped with AND/OR operators?
instructions:
- text: List the condition groups on rule {ruleId} for site {siteId}.
slots:
ruleId: path.ruleId
siteId: path.siteId
- text: Show every condition group and its operator for rule {ruleId} in site {siteId}.
slots:
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups'].post
update:
x-apievangelist-phrasing:
intent: Add a condition group to a rule
effect: write
questions:
- How do I add a new group of conditions to a rule?
- Can a new condition group be joined to the others with OR instead of AND?
instructions:
- text: Add a condition group with operator {operator} to rule {ruleId} on site {siteId}.
slots:
operator: requestBody.operator
ruleId: path.ruleId
siteId: path.siteId
- text: Create a new condition group on rule {ruleId} in site {siteId} using {operator} at priority {priority}.
slots:
ruleId: path.ruleId
siteId: path.siteId
operator: requestBody.operator
priority: requestBody.priority
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{conditionGroupId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a condition group from a rule
effect: destructive
questions:
- How do I drop a whole condition group from a rule?
- Can I delete one group of conditions while keeping the rest of the rule?
instructions:
- text: Delete condition group {conditionGroupId} from rule {ruleId} on site {siteId}.
slots:
conditionGroupId: path.conditionGroupId
ruleId: path.ruleId
siteId: path.siteId
- text: Remove group {conditionGroupId} and its conditions from rule {ruleId} in site {siteId}.
slots:
conditionGroupId: path.conditionGroupId
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}'].get
update:
x-apievangelist-phrasing:
intent: Get a single condition group
effect: read
questions:
- What conditions and operator does one specific condition group hold?
- Can I fetch a single condition group of a rule by its ID?
instructions:
- text: Get condition group {groupId} of rule {ruleId} on site {siteId}.
slots:
groupId: path.groupId
ruleId: path.ruleId
siteId: path.siteId
- text: Show the operator and conditions inside group {groupId} for rule {ruleId} in site {siteId}.
slots:
groupId: path.groupId
ruleId: path.ruleId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}'].put
update:
x-apievangelist-phrasing:
intent: Update a condition group
effect: write
questions:
- Can I switch an existing condition group from AND to OR?
- How do I reorder the priority of a condition group that already exists?
instructions:
- text: Change the operator of condition group {groupId} on rule {ruleId} in site {siteId} to {operator}.
slots:
groupId: path.groupId
ruleId: path.ruleId
siteId: path.siteId
operator: requestBody.operator
- text: Update existing group {groupId} of rule {ruleId} on site {siteId} to operator {operator} and priority {priority}.
slots:
groupId: path.groupId
ruleId: path.ruleId
siteId: path.siteId
operator: requestBody.operator
priority: requestBody.priority
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions'].post
update:
x-apievangelist-phrasing:
intent: Add a condition to a condition group
effect: write
questions:
- How do I add a visitor condition, like a browser or geolocation check, to a rule?
- Which conditionlet do I pick when adding a new condition to a group?
instructions:
- text: Put a single {conditionlet} check using {operator} into existing group {owningGroup} of site {siteId}.
slots:
conditionlet: requestBody.conditionlet
operator: requestBody.operator
owningGroup: requestBody.owningGroup
siteId: path.siteId
- text: Create a new condition in group {owningGroup} for site {siteId} using conditionlet {conditionlet}, operator {operator} and values {values}.
slots:
owningGroup: requestBody.owningGroup
siteId: path.siteId
conditionlet: requestBody.conditionlet
operator: requestBody.operator
values: requestBody.values
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}'].get
update:
x-apievangelist-phrasing:
intent: Get a single rule condition
effect: read
questions:
- Which conditionlet and operator does a particular condition use?
- Can I look up one condition by its ID?
instructions:
- text: Get condition {conditionId} on site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
- text: Show the conditionlet, operator and group of condition {conditionId} in site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}'].put
update:
x-apievangelist-phrasing:
intent: Update a rule condition
effect: write
questions:
- Can I change the comparison operator on a condition I already created?
- How do I move an existing condition into a different condition group?
instructions:
- text: Update condition {conditionId} on site {siteId} to conditionlet {conditionlet} with operator {operator} in group {owningGroup}.
slots:
conditionId: path.conditionId
siteId: path.siteId
conditionlet: requestBody.conditionlet
operator: requestBody.operator
owningGroup: requestBody.owningGroup
- text: Move existing condition {conditionId} in site {siteId} to group {owningGroup}, keeping conditionlet {conditionlet} and operator {operator}.
slots:
conditionId: path.conditionId
siteId: path.siteId
owningGroup: requestBody.owningGroup
conditionlet: requestBody.conditionlet
operator: requestBody.operator
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a rule condition
effect: destructive
questions:
- How do I delete one condition from a condition group?
- Can I remove a single condition without touching the rest of its group?
instructions:
- text: Delete condition {conditionId} on site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
- text: Remove condition {conditionId} from its group in site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues'].get
update:
x-apievangelist-phrasing:
intent: List the values of a condition
effect: read
questions:
- What key/value inputs are stored on a particular condition?
- Can I list all the comparison values a condition checks against?
instructions:
- text: List the values of condition {conditionId} on site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
- text: Show every key and value stored on condition {conditionId} in site {siteId}.
slots:
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues'].post
update:
x-apievangelist-phrasing:
intent: Add a value to a condition
effect: write
questions:
- How do I add another comparison value to an existing condition?
- Can I give a new condition value a key and a priority?
instructions:
- text: Add value {value} under key {key} to condition {conditionId} on site {siteId}.
slots:
value: requestBody.value
key: requestBody.key
conditionId: path.conditionId
siteId: path.siteId
- text: Create a condition value with key {key} on condition {conditionId} in site {siteId}.
slots:
key: requestBody.key
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}'].get
update:
x-apievangelist-phrasing:
intent: Get a single condition value
effect: read
questions:
- What is stored in one specific condition value?
- Can I fetch a condition value by its own ID?
instructions:
- text: Get value {valueId} of condition {conditionId} on site {siteId}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
- text: Show the key and value of condition value {valueId} under condition {conditionId} in site {siteId}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}'].put
update:
x-apievangelist-phrasing:
intent: Update a condition value
effect: write
questions:
- Can I change the value a condition compares against without recreating it?
- How do I edit the key of an existing condition value?
instructions:
- text: Set condition value {valueId} on condition {conditionId} in site {siteId} to key {key} and value {value}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
key: requestBody.key
value: requestBody.value
- text: Change the existing value {valueId} of condition {conditionId} on site {siteId}, keeping key {key}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
key: requestBody.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a condition value
effect: destructive
questions:
- How do I remove one comparison value from a condition?
- Can I delete a single condition value but keep the condition?
instructions:
- text: Delete value {valueId} from condition {conditionId} on site {siteId}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
- text: Remove condition value {valueId} under condition {conditionId} in site {siteId}.
slots:
valueId: path.valueId
conditionId: path.conditionId
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/system/ruleengine/actionlets'].get
update:
x-apievangelist-phrasing:
intent: List available rule actionlets
effect: read
questions:
- What kinds of actions can a dotCMS rule perform?
- Which actionlets are installed and available to the rules engine?
instructions:
- text: List every actionlet available to the rules engine.
- text: Show me the action types I can attach to a rule.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/system/ruleengine/conditionlets'].get
update:
x-apievangelist-phrasing:
intent: List available rule conditionlets
effect: read
questions:
- What visitor conditions can a rule check, such as browser, location or referrer?
- Which conditionlets does the rules engine support?
instructions:
- text: List every conditionlet available to the rules engine.
- text: Show me the condition types I can use when building a rule.
method: generated
generated: '2026-09-26'