Update Condition in RLCL
Overview
Updates the condition in an RLCL. Completely replaces the existing condition with the new one provided in the request body. All existing condition rules are removed and replaced with the new condition rules.
Endpoint
PUT /apiops/projects/{projectName}/rlcl/{rlclName}/condition/
Authentication
Requires a Personal API Access Token.
Header
Authorization: Bearer YOUR_TOKEN
Request
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {token} | Yes |
| Content-Type | application/json | Yes |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectName | string | Yes | Project name |
| rlclName | string | Yes | RLCL name |
Request Body
Full JSON Body Example - Simple Condition
{
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
}
]
}
Full JSON Body Example - Complex Condition with Multiple Rules
{
"conditionRuleList": [
{
"conditionCriteria": "OR",
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
},
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "apiVersionHeader",
"type": "HEADER",
"headerName": "X-API-Version"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "v2"
}
]
}
]
}
Request Body Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| conditionRuleList | array[object] | Yes | - | List of condition rules. See ConditionRuleDTO |
ConditionRuleDTO (conditionRuleList item)
| Field | Type | Required | Description |
|---|---|---|---|
| conditionRuleList | array[object] | No | Nested condition rules (for complex conditions) |
| conditionCriteria | string | Yes | Condition criteria. See EnumConditionCriteria |
| firstVariable | object | Yes | First variable for comparison. See Variable Object |
| variableDataType | string | Yes | Variable data type. See EnumConditionVariableDataType |
| dateFormat | string | No | Date format for date comparisons |
| valueComparisonOperator | string | Yes | Comparison operator. See EnumConditionValueComparisonOperator |
| secondValueSource | string | Yes | Second value source. See EnumConditionValueSource |
| secondValue | string | No* | Static value for comparison (required if secondValueSource is VALUE) |
| secondVariable | object | No* | Second variable for comparison (required if secondValueSource is VARIABLE) |
EnumConditionCriteria (conditionCriteria)
VALUE- Value comparison (used for actual comparison operations)NOT- Negation (negates the condition)AND- Logical AND (all nested conditions must match)OR- Logical OR (any nested condition must match)
Note: For actual value comparisons, use VALUE. Use AND/OR/NOT for combining multiple conditions.
EnumConditionVariableDataType (variableDataType)
STRING- String data typeNUMERIC- Numeric data typeDATE- Date data type
Note: BOOLEAN is not supported. Use STRING with EQ/NE operators for boolean-like comparisons.
EnumConditionValueComparisonOperator (valueComparisonOperator)
LT- Less thanLE- Less than or equal toGT- Greater thanGE- Greater than or equal toEQ- Equal toNE- Not equal toSTARTS_WITH- Starts with (string only)ENDS_WITH- Ends with (string only)CONTAINS- Contains (string only)NOT_CONTAINS- Does not contain (string only)IS_EMPTY- Value exists and is emptyIS_NOT_EMPTY- Value exists and is not emptyIS_EXISTS- Value existsIS_NOT_EXISTS- Value does not existIN- Value is in listNOT_IN- Value is not in list
EnumConditionValueSource (secondValueSource)
VALUE- Static value (usesecondValuefield)VARIABLE- Variable value (usesecondVariablefield)
Variable Object (firstVariable/secondVariable)
See Variable Definition for complete variable documentation.
| Field | Type | Required | Description | |
|---|---|---|---|---|
| name | string | Yes | Variable name (unique identifier) | |
| description | string | No | Variable description | |
| type | string | Yes | Variable type. See Variable Types | |
| headerName | string | No* | Header name (required if type=HEADER) | |
| paramType | string | No* | Parameter type (required if type=PARAMETER). See EnumVariableParameterType | |
| paramName | string | No* | Parameter name (required if type=PARAMETER) | |
| paramPath | string | No* | Parameter path template (required if type=PARAMETER and paramType=PATH) | |
| formName | string | No | Form field name (optional, used if paramType=FORM) | |
| messageContentType | string | No* | Message content type (required if type=BODY). See EnumMessageContentType | |
| xpathValue | string | No* | XPath expression (required if type=BODY and messageContentType=XML) | |
| jsonPathValue | string | No* | JsonPath expression (required if type=BODY and messageContentType=JSON) | |
| contextValue | string | No* | Context value (required if type=CONTEXT_VALUES). See EnumVariableContextValue | |
| zoneId | string | No* | Time zone ID (required for date/time context values) | |
| initWithScript | boolean | No | false | Whether to initialize with script (default: false) |
| scriptLanguage | string | No* | Script language (required if type=CUSTOM or initWithScript=true). See EnumScriptType | |
| scriptBody | string | No* | Script body (required if type=CUSTOM or initWithScript=true) |
Important Notes
- Complete Replacement: The existing condition is completely replaced with the new condition provided in the request body
- All existing condition rules are removed and replaced with the new condition rules
- If the new condition is empty or invalid, it will be reset to the default condition (AND rule)
- Conditions are evaluated before applying rate limiting
- If condition evaluates to false, RLCL is not applied
- Nested conditions are supported for complex logic
Response
Success Response (200 OK)
{
"success": true
}
Error Response (400 Bad Request)
{
"error": "bad_request",
"error_description": "condition value can not be empty!"
}
cURL Example
curl -X PUT \
"https://demo.apinizer.com/apiops/projects/MyProject/rlcl/PremiumUserRLCL/condition/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
}
]
}'
Notes and Warnings
- Complete Replacement:
- The existing condition is completely replaced with the new condition
- All existing condition rules are removed and replaced
- Condition Evaluation:
- Condition is evaluated before applying rate limiting
- If condition is false, RLCL is not applied
- Nested Conditions:
- Complex conditions can be created using nested rules
- Use conditionRuleList for nested logic
Related Documentation
- Add Condition - Add condition to RLCL
- Delete Condition - Remove condition from RLCL