---
title: "Update a rule"
method: PUT
path: "/participant-pools/{participantPoolId}/rules/{id}"
tags: ["Rules"]
---

# Update a rule

`PUT /participant-pools/{participantPoolId}/rules/{id}`

Update an existing rule

## Request body

- ParticipantPoolRule — A rich validation rule that defines constraints and requirements for the participant pool
  - `id` string — Unique identifier for the rule
  - `name` string, required — Human-readable rule name (e.g., "department", "experience_years")
  - `description` string — Detailed description of what this rule validates
  - `dataType` 'STRING' | 'NUMBER' | 'BOOLEAN' | 'DATE', required — Data type for participant pool rule values
  - `selectionMode` 'SINGLE' | 'MULTIPLE' | 'RANGE' | 'FREEFORM', required — Selection mode for participant pool rule values
  - `allowedValues` union[] — Predefined values for SINGLE/MULTIPLE selection modes
    - union
      - string
      - number
      - boolean
  - `values` union[] — Actual selected/assigned values for this rule instance
    - union
      - string
      - number
      - boolean
  - `constraints` ParticipantPoolRuleConstraints — Additional validation constraints for Participant Pools - Rules
    - `minValue` number — Minimum numeric value (for NUMBER dataType)
    - `maxValue` number — Maximum numeric value (for NUMBER dataType)
    - `minLength` integer — Minimum string length (for STRING dataType)
    - `maxLength` integer — Maximum string length (for STRING dataType)
    - `pattern` string — Regular expression pattern for string validation (for STRING dataType)
    - `minDate` string, date — Minimum date value (for DATE dataType)
    - `maxDate` string, date — Maximum date value (for DATE dataType)
  - `createdAt` string, date-time — Timestamp when the rule was created
  - `updatedAt` string, date-time — Timestamp when the rule was last updated
  - `isEditable` boolean — Whether this rule is editable

## Response `200`

Rule updated successfully

- ParticipantPoolRule — A rich validation rule that defines constraints and requirements for the participant pool
  - `id` string — Unique identifier for the rule
  - `name` string, required — Human-readable rule name (e.g., "department", "experience_years")
  - `description` string — Detailed description of what this rule validates
  - `dataType` 'STRING' | 'NUMBER' | 'BOOLEAN' | 'DATE', required — Data type for participant pool rule values
  - `selectionMode` 'SINGLE' | 'MULTIPLE' | 'RANGE' | 'FREEFORM', required — Selection mode for participant pool rule values
  - `allowedValues` union[] — Predefined values for SINGLE/MULTIPLE selection modes
    - union
      - string
      - number
      - boolean
  - `values` union[] — Actual selected/assigned values for this rule instance
    - union
      - string
      - number
      - boolean
  - `constraints` ParticipantPoolRuleConstraints — Additional validation constraints for Participant Pools - Rules
    - `minValue` number — Minimum numeric value (for NUMBER dataType)
    - `maxValue` number — Maximum numeric value (for NUMBER dataType)
    - `minLength` integer — Minimum string length (for STRING dataType)
    - `maxLength` integer — Maximum string length (for STRING dataType)
    - `pattern` string — Regular expression pattern for string validation (for STRING dataType)
    - `minDate` string, date — Minimum date value (for DATE dataType)
    - `maxDate` string, date — Maximum date value (for DATE dataType)
  - `createdAt` string, date-time — Timestamp when the rule was created
  - `updatedAt` string, date-time — Timestamp when the rule was last updated
  - `isEditable` boolean — Whether this rule is editable

---

[API](https://skmtc.net/pactima/apis/esignature-packages-api.md) · [All operations](https://skmtc.net/pactima/apis/esignature-packages-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pactima/esignature-packages-api/revisions/1570128383ef/schema)
