Sift Stack Rule Service API

Service to programmatically interact with rules.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sift-stack-ruleservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sift-stack-ruleservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sift Rule Service API
  version: '1.0'
  description: Service to programmatically interact with rules.
servers:
- url: https://api.siftstack.com
  description: Production
- url: https://gov.api.siftstack.com
  description: Gov
security:
- BearerAuth: []
tags:
- name: RuleService
  description: Service to programmatically interact with rules.
  externalDocs:
    description: Read more about what rules are.
    url: https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102
paths:
  /api/v1/rules:
    get:
      summary: GetRule
      description: Retrieves the latest version of a rule.
      operationId: RuleService_GetRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: ruleId
        in: query
        required: false
        schema:
          type: string
      - name: clientKey
        in: query
        required: false
        schema:
          type: string
      tags:
      - RuleService
    post:
      summary: CreateRule
      description: Creates a rule.
      operationId: RuleService_CreateRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateRuleRequest'
        required: true
      tags:
      - RuleService
    put:
      summary: UpdateRule
      description: Updates an existing rule.
      operationId: RuleService_UpdateRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdateRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UpdateRuleRequest'
        description: UpdateRuleRequest is used to create or update a rule. If the rule_id or client_key is provided, the rule will be updated. If not, a new rule will be created.
        required: true
      tags:
      - RuleService
  /api/v1/rules/archive:
    post:
      summary: ArchiveRule
      description: Archives a rule.
      operationId: RuleService_ArchiveRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ArchiveRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ArchiveRuleRequest'
        description: ArchiveRuleRequest is used to archive a rule by rule_id or client_key. If both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/batchArchive:
    post:
      summary: BatchArchiveRules
      description: Batch archives rules.
      operationId: RuleService_BatchArchiveRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchArchiveRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchArchiveRulesRequest'
        description: BatchArchiveRulesRequest is used to archive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/batchDelete:
    post:
      summary: BatchDeleteRules
      description: 'Archives multiple rules. Deprecated: Use BatchArchiveRules instead.'
      operationId: RuleService_BatchDeleteRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchDeleteRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchDeleteRulesRequest'
        description: BatchDeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/batchUnarchive:
    post:
      summary: BatchUnarchiveRules
      description: Batch unarchives rules.
      operationId: RuleService_BatchUnarchiveRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchUnarchiveRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchUnarchiveRulesRequest'
        description: BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/batchUndelete:
    post:
      summary: BatchUndeleteRules
      description: 'Deprecated: Use BatchUnarchiveRules instead.'
      operationId: RuleService_BatchUndeleteRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchUndeleteRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchUndeleteRulesRequest'
        description: BatchUndeleteRulesRequest is used to delete a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/delete:
    post:
      summary: DeleteRule
      description: 'Archives a rule. Deprecated: Use ArchiveRule instead.'
      operationId: RuleService_DeleteRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1DeleteRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1DeleteRuleRequest'
        description: DeleteRuleRequest is used to delete a rule by rule_id or client_key. If both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/evaluate:
    post:
      summary: EvaluateRules
      description: Evaluates the provided rules and generate annotations based on the result.
      operationId: RuleService_EvaluateRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/siftrulesv1EvaluateRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/siftrulesv1EvaluateRulesRequest'
        description: Deprecated - use RuleEvaluationService instead.
        required: true
      tags:
      - RuleService
  /api/v1/rules/search:
    post:
      summary: SearchRules
      description: Queries rules based on provided search parameters.
      operationId: RuleService_SearchRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1SearchRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1SearchRulesRequest'
        required: true
      tags:
      - RuleService
  /api/v1/rules/unarchive:
    post:
      summary: UnarchiveRule
      description: Unarchives a rule.
      operationId: RuleService_UnarchiveRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UnarchiveRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UnarchiveRuleRequest'
        description: UnarchiveRuleRequest is used to unarchive a rule by rule_id or client_key. If both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/undelete:
    post:
      summary: UndeleteRule
      description: 'Deprecated: Use UnarchiveRule instead.'
      operationId: RuleService_UndeleteRule
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UndeleteRuleResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UndeleteRuleRequest'
        description: UndeleteRuleRequest is used to undelete a rule by rule_id or client_key. If both are provided, only rule_id will be used.
        required: true
      tags:
      - RuleService
  /api/v1/rules/{ruleId}/versions:
    get:
      summary: ListRuleVersions
      description: Retrieves a list of rule versions for the given rule.
      operationId: RuleService_ListRuleVersions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListRuleVersionsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: string
      - name: pageSize
        description: 'The maximum number of Rule Versions to return.

          The service may return fewer than this value.

          If unspecified, at most 50 Rule Versions will be returned.

          The maximum value is 1000; values above 1000 will be coerced to 1000.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListRuleVersions` call.

          Provide this to retrieve the subsequent page.

          When paginating, all other parameters provided to `ListRuleVersions` must match

          the call that provided the page token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are `rule_version_id`, `user_notes`,  and `change_message`.

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). Optional.'
        in: query
        required: false
        schema:
          type: string
      tags:
      - RuleService
  /api/v1/rules:batchGet:
    post:
      summary: BatchGetRules
      description: Retrieves multiple rules.
      operationId: RuleService_BatchGetRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchGetRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchGetRulesRequest'
        description: BatchGetRulesRequest is used to retrieve rules by rule_ids or client_keys. If both are provided, both will be used to retrieve rules.
        required: true
      tags:
      - RuleService
  /api/v1/rules:batchGetVersions:
    post:
      summary: BatchGetRuleVersions
      description: Retrieves multiple rules by rule versions.
      operationId: RuleService_BatchGetRuleVersions
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchGetRuleVersionsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchGetRuleVersionsRequest'
        required: true
      tags:
      - RuleService
  /api/v1/rules:batchUpdate:
    put:
      summary: BatchUpdateRules
      description: Updates existing rules or creates rules that do not exist.
      operationId: RuleService_BatchUpdateRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BatchUpdateRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1BatchUpdateRulesRequest'
        required: true
      tags:
      - RuleService
  /api/v1/rules:list:
    get:
      summary: ListRules
      description: Retrieves a list of rules.
      operationId: RuleService_ListRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: pageSize
        description: 'The maximum number of Rules to return.

          The service may return fewer than this value.

          If unspecified, at most 50 Rules will be returned.

          The maximum value is 1000; values above 1000 will be coerced to 1000.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: pageToken
        description: 'A page token, received from a previous `ListRules` call.

          Provide this to retrieve the subsequent page.

          When paginating, all other parameters provided to `ListRules` must match

          the call that provided the page token.'
        in: query
        required: false
        schema:
          type: string
      - name: filter
        description: 'A [Common Expression Language (CEL)](https://github.com/google/cel-spec) filter string.

          Available fields to filter by are `rule_id`, `client_key`, `name`, `description`, `is_external`, `asset_id`, `tag_id`,

          `created_date`, `created_by_user_id`, `metadata`, `modified_date`, `modified_by_user_id`, `deleted_date`, `is_archived`, `archived_date`, and `is_live_evaluation_enabled`.

          Metadata can be used in filters by using `metadata.{metadata_key_name}` as the field name.

          Folder membership is filterable via the `folders` and `activeFolders` fields. Both contain the ids of the folders

          the rule belongs to; `activeFolders` excludes archived folders. Use `"<folder_id>" in folders` to return rules in

          the given folder, and `size(activeFolders) == 0` to return uncategorized rules (rules whose only memberships are

          in archived folders count as uncategorized).

          For further information about how to use CELs, please refer to [this guide](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions).

          Optional.'
        in: query
        required: false
        schema:
          type: string
      - name: orderBy
        description: 'How to order the retrieved Rules. Formatted as a comma-separated string i.e. "FIELD_NAME[ desc],...".

          Available fields to order_by are `created_date` and `modified_date`.

          If left empty, items are ordered by `created_date` in descending order (newest-first).'
        in: query
        required: false
        schema:
          type: string
      tags:
      - RuleService
  /api/v1/rules:updateHumanFriendly:
    post:
      summary: UpdateHumanFriendlyRules
      description: Batch update rules given the `rules_json` which is a JSON list of rules.
      operationId: RuleService_UpdateHumanFriendlyRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdateHumanFriendlyRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UpdateHumanFriendlyRulesRequest'
        description: Deprecated - use UpdateJsonRulesRequest.
        required: true
      tags:
      - RuleService
  /api/v1/rules:updateJson:
    post:
      summary: UpdateJsonRules
      description: Batch update rules given the `rules_json` which is a JSON list of rules.
      operationId: RuleService_UpdateJsonRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UpdateJsonRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UpdateJsonRulesRequest'
        required: true
      tags:
      - RuleService
  /api/v1/rules:validateJson:
    post:
      summary: ValidateJsonRules
      description: Validate a batch update for rules given the `rules_json` which is a JSON list of rules.
      operationId: RuleService_ValidateJsonRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ValidateJsonRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ValidateJsonRulesRequest'
        required: true
      tags:
      - RuleService
  /api/v1/rules:version:
    get:
      summary: GetRuleVersion
      description: Retrieves a specific version of a rule.
      operationId: RuleService_GetRuleVersion
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetRuleVersionResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: ruleVersionId
        in: query
        required: true
        schema:
          type: string
      tags:
      - RuleService
  /api/v1/rules:viewHumanFriendly:
    get:
      summary: ViewHumanFriendlyRules
      description: Retrieve a JSON object containing all of the rules for a given asset.
      operationId: RuleService_ViewHumanFriendlyRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ViewHumanFriendlyRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: assetId
        in: query
        required: true
        schema:
          type: string
      tags:
      - RuleService
  /api/v1/rules:viewJson:
    get:
      summary: ViewJsonRules
      description: Retrieve a JSON object containing all of the rules for a given asset.
      operationId: RuleService_ViewJsonRules
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ViewJsonRulesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: assetId
        in: query
        required: true
        schema:
          type: string
      tags:
      - RuleService
components:
  schemas:
    v1BatchGetRulesResponse:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/v1Rule'
      required:
      - rules
    v1BatchArchiveRulesResponse:
      type: object
    v1RuleAction:
      type: object
      properties:
        ruleActionId:
          type: string
        ruleConditionId:
          type: string
        actionType:
          $ref: '#/components/schemas/v1ActionKind'
        configuration:
          $ref: '#/components/schemas/v1RuleActionConfiguration'
        createdDate:
          type: string
          format: date-time
        modifiedDate:
          type: string
          format: date-time
        createdByUserId:
          type: string
        modifiedByUserId:
          type: string
        ruleActionVersionId:
          type: string
      required:
      - ruleActionId
      - ruleConditionId
      - actionType
      - configuration
      - createdDate
      - modifiedDate
      - createdByUserId
      - modifiedByUserId
      - ruleActionVersionId
    BatchUpdateRulesResponseRuleIdentifiers:
      type: object
      properties:
        ruleId:
          type: string
        name:
          type: string
        clientKey:
          type: string
      required:
      - ruleId
      - name
    v1BatchGetRuleVersionsRequest:
      type: object
      properties:
        ruleVersionIds:
          type: array
          items:
            type: string
      required:
      - ruleVersionIds
    v1BatchGetRuleVersionsResponse:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/v1Rule'
      required:
      - rules
    siftrulesv1EvaluateRulesRequest:
      type: object
      properties:
        ruleIds:
          type: array
          items:
            type: string
        annotationOptions:
          $ref: '#/components/schemas/v1EvaluatedAnnotationOptions'
        runId:
          type: string
        timeRange:
          $ref: '#/components/schemas/v1TimeRangeQuery'
        dryRun:
          type: boolean
      description: Deprecated - use RuleEvaluationService instead.
      required:
      - ruleIds
    v1CreateRuleResponse:
      type: object
      properties:
        ruleId:
          type: string
      required:
      - ruleId
    v1ValidationResult:
      type: object
      properties:
        ruleId:
          type: string
        clientKey:
          type: string
        assetExpressionValidationResults:
          type: array
          items:
            $ref: '#/components/schemas/v1AssetExpressionValidationResult'
          description: 'If the expression is invalid for an asset, one or more AssetExpressionValidationResult will be returned. This may block

            saving if the override_expression_validation flag is not set.'
        error:
          type: string
          description: 'If the rule is invalid and unable to be saved, this will contain the error message. Expression errors will be returned in

            the asset_expression_validation_results.'
        ruleName:
          type: string
      required:
      - assetExpressionValidationResults
    v1BatchUnarchiveRulesResponse:
      type: object
    v1BatchUnarchiveRulesRequest:
      type: object
      properties:
        ruleIds:
          type: array
          items:
            type: string
        clientKeys:
          type: array
          items:
            type: string
      description: BatchUnarchiveRulesRequest is used to unarchive a rule by rule_id or client_key. For each rule if both are provided, only rule_id will be used.
    v1MetadataValue:
      type: object
      properties:
        key:
          $ref: '#/components/schemas/v1MetadataKey'
        stringValue:
          type: string
        numberValue:
          type: number
          format: double
        booleanValue:
          type: boolean
        relationValue:
          $ref: '#/components/schemas/v1MetadataRelationValue'
        archivedDate:
          type: string
          format: date-time
        isArchived:
          type: boolean
          description: Whether the metadata value is archived. This is inferred from whether archived_date is set.
      required:
      - key
    rulesv1ChannelReference:
      type: object
      properties:
        name:
          type: string
          description: Required for native channel references. Must not be set when calculated_channel_version_id is provided.
        component:
          type: string
          description: 'Deprecated - use name instead. If provided, name will be joined with the component as `component.name`.

            Must not be set when calculated_channel_version_id is provided.'
        calculatedChannelVersionId:
          type: string
          description: 'Reference to a calculated channel version. When set, the rule will use the calculated channel

            instead of looking up a native channel by name. Must not be set when name is provided.'
    v1UpdateRuleRequest:
      type: object
      properties:
        ruleId:
          type: string
        name:
          type: string
        description:
          type: string
        assetId:
          type: string
          description: Deprecated - use asset_configuration instead.
        isEnabled:
          type: boolean
          description: Deprecated - use DeleteRule instead.
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/v1UpdateConditionRequest'
        organizationId:
          type: string
        versionNotes:
          type: string
        clientKey:
          type: string
          title: client_key is a client provided identifier for the rule. It is immutable after being set
        assetConfiguration:
          $ref: '#/components/schemas/v1RuleAssetConfiguration'
        contextualChannels:
          $ref: '#/components/schemas/v1ContextualChannels'
        isExternal:
          type: boolean
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/v1MetadataValue'
        isArchived:
          type: boolean
        isLiveEvaluationEnabled:
          type: boolean
          description: 'If set to `true` then this rule will be evaluated on live data, otherwise live rule evaluation

            will be disabled. This rule can still be used, however, in report generation. If this value

            is null then the original value is preserved.


            This is a request, not a guarantee. When combined with

            `BatchUpdateRulesRequest.override_expression_validation = true`, a `true` value here can be

            silently overridden to `false` if UDF inlining fails (the rule is still persisted, just with

            live evaluation disabled). Re-send this request with the underlying issue resolved -- e.g.

            the referenced channels populated, or the expression simplified -- to flip it back on.'
      description: UpdateRuleRequest is used to create or update a rule. If the rule_id or client_key is provided, the rule will be updated. If not, a new rule will be created.
      required:
      - name
      - description
      - conditions
      - metadata
    v1UnarchiveRuleResponse:
      type: object
    v1UpdateJsonRulesRequest:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/v1JsonRulesRequest'
      required:
      - request
    v1DeleteRuleResponse:
      type: object
    v1BatchDeleteRulesResponse:
      type: object
    v1SearchRulesResponse:
      type: object
      properties:
        count:
          type: integer
          format: int64
        rules:
          type: array
          items:
            $ref: '#/components/schemas/v1Rule'
          description: Conditions are not included in the search response. The 

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sift-stack/refs/heads/main/openapi/sift-stack-ruleservice-api-openapi.yml