Add Condition to RLCL

Overview

Adds a condition to an RLCL. Conditions determine when the RLCL should be applied. If a condition is set, the RLCL is only applied when the condition evaluates to true.

Endpoint

POST /apiops/projects/{projectName}/rlcl/{rlclName}/condition/

Authentication

Requires a Personal API Access Token.

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 type
  • NUMERIC - Numeric data type
  • DATE - Date data type

Note: BOOLEAN is not supported. Use STRING with EQ/NE operators for boolean-like comparisons.

EnumConditionValueComparisonOperator (valueComparisonOperator)

  • LT - Less than
  • LE - Less than or equal to
  • GT - Greater than
  • GE - Greater than or equal to
  • EQ - Equal to
  • NE - Not equal to
  • STARTS_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 empty
  • IS_NOT_EMPTY - Value exists and is not empty
  • IS_EXISTS - Value exists
  • IS_NOT_EXISTS - Value does not exist
  • IN - Value is in list
  • NOT_IN - Value is not in list

EnumConditionValueSource (secondValueSource)

  • VALUE - Static value (use secondValue field)
  • VARIABLE - Variable value (use secondVariable field)

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)  

Notes

  • Conditions are evaluated before applying rate limiting
  • If condition evaluates to false, RLCL is not applied
  • Nested conditions are supported for complex logic
  • If conditionRuleList is empty, default AND rule is used

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 POST \
  "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

  • 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
  • RLCL Must Exist:
    • RLCL must exist before adding condition