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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'