> ## Documentation Index
> Fetch the complete documentation index at: https://doc.extole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a prehandler

> Creates a new prehandler definition and appends it to the end of the execution order. Returns the persisted prehandler with its server-assigned id. The prehandler is created in an active state; archive it with `POST /v6/prehandlers/{id}/archive` to disable it without deleting it.



## OpenAPI

````yaml /api-reference/management-expert.json post /v6/prehandlers
openapi: 3.0.1
info:
  description: >-
    Advanced configuration endpoints for Extole platform experts: campaign
    controllers, typed actions and triggers, advanced component types and
    facets, source mapping, report post-handlers, pre-handlers, and other expert
    configuration surfaces not included in the standard Management API.
  title: Management Expert API
  version: '1.0'
servers:
  - description: Production
    url: https://api.extole.io
security:
  - HEADER: []
  - QUERY: []
  - COOKIE: []
tags:
  - name: Authentication
  - name: Campaign Controllers
  - name: Campaign Controllers Actions
  - name: Campaign Controllers Triggers
  - name: Campaign Flow Steps
  - name: Components
  - name: Components Grants
  - name: Components Subscriptions
  - name: Components Types
  - name: Content
  - name: Debug
  - name: Domains
  - name: Email
  - name: Event Prehandlers
  - name: Events
  - name: Javascript Core Extensions
  - name: Persons
  - name: Profiles
  - name: Report Schedules
  - name: Report Types
  - name: Reporting
  - name: Security Keys
  - name: Settings
paths:
  /v6/prehandlers:
    post:
      tags:
        - Event Prehandlers
      summary: Create a prehandler
      description: >-
        Creates a new prehandler definition and appends it to the end of the
        execution order. Returns the persisted prehandler with its
        server-assigned id. The prehandler is created in an active state;
        archive it with `POST /v6/prehandlers/{id}/archive` to disable it
        without deleting it.
      operationId: createPrehandler
      requestBody:
        content:
          application/json:
            example:
              actions:
                - expression: {}
                  type: EXPRESSION
              component_ids:
                - component_id
              component_references:
                - component_id: component_id
                  socket_names:
                    - socket_name
              conditions:
                - considered_block_list_types:
                    - CIDR
                  type: BLOCK_MATCH
              description: description
              enabled: false
              name: name
              order: 0
              tags:
                - tag
            schema:
              $ref: '#/components/schemas/PrehandlerCreateRequest'
        description: PrehandlerCreateRequest object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrehandlerResponse'
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_component_absolute_name_missing:
                  $ref: >-
                    #/components/examples/campaign_component_absolute_name_missing
                campaign_component_description_out_of_range:
                  $ref: >-
                    #/components/examples/campaign_component_description_out_of_range
                campaign_component_display_name_contains_illegal_character:
                  $ref: >-
                    #/components/examples/campaign_component_display_name_contains_illegal_character
                campaign_component_display_name_out_of_range:
                  $ref: >-
                    #/components/examples/campaign_component_display_name_out_of_range
                campaign_component_id_missing:
                  $ref: '#/components/examples/campaign_component_id_missing'
                campaign_component_name_already_in_use:
                  $ref: '#/components/examples/campaign_component_name_already_in_use'
                campaign_component_name_contains_illegal_character:
                  $ref: >-
                    #/components/examples/campaign_component_name_contains_illegal_character
                campaign_component_name_out_of_range:
                  $ref: '#/components/examples/campaign_component_name_out_of_range'
                campaign_component_type_validation_failed:
                  $ref: >-
                    #/components/examples/campaign_component_type_validation_failed
                circular_component_reference:
                  $ref: '#/components/examples/circular_component_reference'
                component_facets_not_found:
                  $ref: '#/components/examples/component_facets_not_found'
                excessive_component_reference:
                  $ref: '#/components/examples/excessive_component_reference'
                external_element_is_referenced_by_active_configuration:
                  $ref: >-
                    #/components/examples/external_element_is_referenced_by_active_configuration
                external_elements_cannot_have_multiple_references:
                  $ref: >-
                    #/components/examples/external_elements_cannot_have_multiple_references
                invalid_component_installed_into_socket:
                  $ref: >-
                    #/components/examples/invalid_component_installed_into_socket
                invalid_component_reference:
                  $ref: '#/components/examples/invalid_component_reference'
                invalid_component_reference_socket_name:
                  $ref: >-
                    #/components/examples/invalid_component_reference_socket_name
                invalid_external_component_reference:
                  $ref: '#/components/examples/invalid_external_component_reference'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_null:
                  $ref: '#/components/examples/invalid_null'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                orphan_external_component_reference:
                  $ref: '#/components/examples/orphan_external_component_reference'
                prehandler_build_failed:
                  $ref: '#/components/examples/prehandler_build_failed'
                prehandler_description_length_out_of_range:
                  $ref: >-
                    #/components/examples/prehandler_description_length_out_of_range
                prehandler_name_contains_illegal_character:
                  $ref: >-
                    #/components/examples/prehandler_name_contains_illegal_character
                prehandler_name_duplicated:
                  $ref: '#/components/examples/prehandler_name_duplicated'
                prehandler_name_length_out_of_range:
                  $ref: '#/components/examples/prehandler_name_length_out_of_range'
                prehandler_name_missing:
                  $ref: '#/components/examples/prehandler_name_missing'
                prehandler_tag_invalid:
                  $ref: '#/components/examples/prehandler_tag_invalid'
                redundant_component_reference:
                  $ref: '#/components/examples/redundant_component_reference'
                self_component_reference:
                  $ref: '#/components/examples/self_component_reference'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
components:
  schemas:
    PrehandlerCreateRequest:
      description: Body of a `POST /v6/prehandlers` request.
      properties:
        actions:
          items:
            $ref: '#/components/schemas/PrehandlerActionRequest'
          type: array
        component_ids:
          items:
            type: string
          type: array
        component_references:
          items:
            $ref: '#/components/schemas/ComponentReferenceRequest'
          type: array
        conditions:
          items:
            $ref: '#/components/schemas/PrehandlerConditionRequest'
          type: array
        description:
          $ref: '#/components/schemas/DescriptionInPrehandlerCreateRequest'
        enabled:
          $ref: '#/components/schemas/EnabledInPrehandlerCreateRequest'
        name:
          $ref: '#/components/schemas/NameInPrehandlerCreateRequest'
        order:
          $ref: '#/components/schemas/OrderInPrehandlerCreateRequest'
        tags:
          items:
            type: string
          type: array
          uniqueItems: true
      required:
        - name
      type: object
    PrehandlerResponse:
      description: >-
        Prehandler source definition with build-time fields, conditions,
        actions, and execution order.
      properties:
        actions:
          description: Actions executed when the prehandler conditions match.
          items:
            $ref: '#/components/schemas/PrehandlerActionResponse'
          type: array
        component_ids:
          items:
            type: string
          type: array
        component_references:
          items:
            $ref: '#/components/schemas/ComponentReferenceResponse'
          type: array
        conditions:
          description: Conditions that must match before the prehandler actions run.
          items:
            $ref: '#/components/schemas/PrehandlerConditionResponse'
          type: array
        created_date:
          $ref: '#/components/schemas/ZonedDateTime'
        description:
          $ref: '#/components/schemas/DescriptionInPrehandlerResponse'
        enabled:
          $ref: '#/components/schemas/EnabledInPrehandlerResponse'
        id:
          description: Unique identifier for the prehandler.
          readOnly: true
          type: string
        name:
          $ref: '#/components/schemas/NameInPrehandlerResponse'
        order:
          $ref: '#/components/schemas/OrderInPrehandlerResponse'
        tags:
          description: Tags used to classify or filter the prehandler.
          items:
            description: Tags used to classify or filter the prehandler.
            type: string
          type: array
          uniqueItems: true
        updated_date:
          $ref: '#/components/schemas/ZonedDateTime'
      required:
        - actions
        - component_ids
        - component_references
        - conditions
        - created_date
        - description
        - enabled
        - id
        - name
        - order
        - tags
        - updated_date
      type: object
    RestExceptionResponse:
      description: Represents the API error response
      properties:
        code:
          description: Specific error code for this error type, documented per endpoint
          type: string
        http_status_code:
          description: >-
            HTTP status code that was returned with this error, useful if client
            get response code
          format: int32
          type: integer
        message:
          description: User readable English description of the error
          type: string
        parameters:
          additionalProperties:
            description: >-
              Attributes related to the error, varies be error code, documented
              per endpoint
            type: object
          description: >-
            Attributes related to the error, varies be error code, documented
            per endpoint
          type: object
        unique_id:
          description: >-
            Unique id associated with this error, useful for discussions with
            Extole
          type: string
      required:
        - code
        - http_status_code
        - message
        - parameters
        - unique_id
      type: object
    PrehandlerActionRequest:
      discriminator:
        mapping:
          EXPRESSION:
            $ref: '#/components/schemas/ExpressionPrehandlerActionRequest'
          JAVASCRIPT_V1:
            $ref: '#/components/schemas/JavascriptPrehandlerActionRequest'
          MAP_DATA_ATTRIBUTES:
            $ref: '#/components/schemas/MapDataAttributesPrehandlerActionRequest'
          SET_DATA:
            $ref: '#/components/schemas/SetDataPrehandlerActionRequest'
          SET_SANDBOX:
            $ref: '#/components/schemas/SetSandboxPrehandlerActionRequest'
        propertyName: type
      oneOf:
        - title: EXPRESSION
          allOf:
            - $ref: '#/components/schemas/ExpressionPrehandlerActionRequest'
        - title: JAVASCRIPT_V1
          allOf:
            - $ref: '#/components/schemas/JavascriptPrehandlerActionRequest'
        - title: MAP_DATA_ATTRIBUTES
          allOf:
            - $ref: '#/components/schemas/MapDataAttributesPrehandlerActionRequest'
        - title: SET_DATA
          allOf:
            - $ref: '#/components/schemas/SetDataPrehandlerActionRequest'
        - title: SET_SANDBOX
          allOf:
            - $ref: '#/components/schemas/SetSandboxPrehandlerActionRequest'
      required:
        - type
    ComponentReferenceRequest:
      properties:
        component_id:
          type: string
        socket_names:
          items:
            type: string
          type: array
      type: object
    PrehandlerConditionRequest:
      discriminator:
        mapping:
          BLOCK_MATCH:
            $ref: '#/components/schemas/BlockMatchPrehandlerConditionRequest'
          DATA_EXISTS:
            $ref: '#/components/schemas/DataExistsPrehandlerConditionRequest'
          EVENT_NAME_MATCH:
            $ref: '#/components/schemas/EventNameMatchPrehandlerConditionRequest'
          EXPRESSION:
            $ref: '#/components/schemas/ExpressionPrehandlerConditionRequest'
          HTTP_HEADER_MATCH:
            $ref: '#/components/schemas/HttpHeaderMatchPrehandlerConditionRequest'
          JAVASCRIPT_V1:
            $ref: '#/components/schemas/JavascriptPrehandlerConditionRequest'
        propertyName: type
      oneOf:
        - title: BLOCK_MATCH
          allOf:
            - $ref: '#/components/schemas/BlockMatchPrehandlerConditionRequest'
        - title: DATA_EXISTS
          allOf:
            - $ref: '#/components/schemas/DataExistsPrehandlerConditionRequest'
        - title: EVENT_NAME_MATCH
          allOf:
            - $ref: '#/components/schemas/EventNameMatchPrehandlerConditionRequest'
        - title: EXPRESSION
          allOf:
            - $ref: '#/components/schemas/ExpressionPrehandlerConditionRequest'
        - title: HTTP_HEADER_MATCH
          allOf:
            - $ref: '#/components/schemas/HttpHeaderMatchPrehandlerConditionRequest'
        - title: JAVASCRIPT_V1
          allOf:
            - $ref: '#/components/schemas/JavascriptPrehandlerConditionRequest'
      required:
        - type
    DescriptionInPrehandlerCreateRequest:
      description: Choose between static or dynamic description
      oneOf:
        - description: Static description
          nullable: true
          title: Static Value
          type: string
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{description}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('description');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    EnabledInPrehandlerCreateRequest:
      description: Choose between static or dynamic enabled
      oneOf:
        - default: false
          description: Static enabled
          nullable: true
          title: Static Value
          type: boolean
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{enabled}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('enabled');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    NameInPrehandlerCreateRequest:
      description: Prehandler name must be unique.
      oneOf:
        - allOf:
            - type: string
            - not:
                anyOf:
                  - pattern: ^handlebars@buildtime:.*
                    type: string
                  - pattern: ^javascript@buildtime:.*
                    type: string
              type: string
          description: Static name
          title: Static Value
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{name}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('name');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    OrderInPrehandlerCreateRequest:
      description: Choose between static or dynamic order
      oneOf:
        - default: 0
          description: Static order
          format: int32
          nullable: true
          title: Static Value
          type: integer
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{order}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('order');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    PrehandlerActionResponse:
      description: Actions executed when the prehandler conditions match.
      discriminator:
        mapping:
          EXPRESSION:
            $ref: '#/components/schemas/ExpressionPrehandlerActionResponse'
          JAVASCRIPT_V1:
            $ref: '#/components/schemas/JavascriptPrehandlerActionResponse'
          MAP_DATA_ATTRIBUTES:
            $ref: '#/components/schemas/MapDataAttributesPrehandlerActionResponse'
          SET_DATA:
            $ref: '#/components/schemas/SetDataPrehandlerActionResponse'
          SET_SANDBOX:
            $ref: '#/components/schemas/SetSandboxPrehandlerActionResponse'
        propertyName: type
      oneOf:
        - title: EXPRESSION
          allOf:
            - $ref: '#/components/schemas/ExpressionPrehandlerActionResponse'
        - title: JAVASCRIPT_V1
          allOf:
            - $ref: '#/components/schemas/JavascriptPrehandlerActionResponse'
        - title: MAP_DATA_ATTRIBUTES
          allOf:
            - $ref: '#/components/schemas/MapDataAttributesPrehandlerActionResponse'
        - title: SET_DATA
          allOf:
            - $ref: '#/components/schemas/SetDataPrehandlerActionResponse'
        - title: SET_SANDBOX
          allOf:
            - $ref: '#/components/schemas/SetSandboxPrehandlerActionResponse'
    ComponentReferenceResponse:
      properties:
        component_id:
          type: string
        socket_names:
          items:
            type: string
          type: array
      type: object
    PrehandlerConditionResponse:
      description: Conditions that must match before the prehandler actions run.
      discriminator:
        mapping:
          BLOCK_MATCH:
            $ref: '#/components/schemas/BlockMatchPrehandlerConditionResponse'
          DATA_EXISTS:
            $ref: '#/components/schemas/DataExistsPrehandlerConditionResponse'
          EVENT_NAME_MATCH:
            $ref: '#/components/schemas/EventNameMatchPrehandlerConditionResponse'
          EXPRESSION:
            $ref: '#/components/schemas/ExpressionPrehandlerConditionResponse'
          HTTP_HEADER_MATCH:
            $ref: '#/components/schemas/HttpHeaderMatchPrehandlerConditionResponse'
          JAVASCRIPT_V1:
            $ref: '#/components/schemas/JavascriptPrehandlerConditionResponse'
        propertyName: type
      oneOf:
        - title: BLOCK_MATCH
          allOf:
            - $ref: '#/components/schemas/BlockMatchPrehandlerConditionResponse'
        - title: DATA_EXISTS
          allOf:
            - $ref: '#/components/schemas/DataExistsPrehandlerConditionResponse'
        - title: EVENT_NAME_MATCH
          allOf:
            - $ref: '#/components/schemas/EventNameMatchPrehandlerConditionResponse'
        - title: EXPRESSION
          allOf:
            - $ref: '#/components/schemas/ExpressionPrehandlerConditionResponse'
        - title: HTTP_HEADER_MATCH
          allOf:
            - $ref: '#/components/schemas/HttpHeaderMatchPrehandlerConditionResponse'
        - title: JAVASCRIPT_V1
          allOf:
            - $ref: '#/components/schemas/JavascriptPrehandlerConditionResponse'
    ZonedDateTime:
      description: >-
        [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or
        [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4)
        date-time with a numeric [UTC
        offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and
        an optional [IANA
        time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4)
        suffix in square brackets. Precision up to milliseconds.
      example: '2025-10-24T02:00:00-07:00'
      pattern: >-
        ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$
      type: string
    DescriptionInPrehandlerResponse:
      description: >-
        Optional build-time expression that resolves to the prehandler
        description.
      oneOf:
        - description: Literal description
          nullable: true
          title: Static Value
          type: string
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{description}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('description');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    EnabledInPrehandlerResponse:
      description: Build-time expression that controls whether the prehandler is active.
      oneOf:
        - description: Literal enabled
          title: Static Value
          type: boolean
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{enabled}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('enabled');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    NameInPrehandlerResponse:
      description: Build-time expression that resolves to the prehandler name.
      oneOf:
        - allOf:
            - type: string
            - not:
                anyOf:
                  - pattern: ^handlebars@buildtime:.*
                    type: string
                  - pattern: ^javascript@buildtime:.*
                    type: string
              type: string
          description: Literal name
          title: Static Value
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{name}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('name');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    OrderInPrehandlerResponse:
      description: Build-time expression that controls the prehandler execution order.
      oneOf:
        - description: Literal order
          format: int32
          title: Static Value
          type: integer
        - description: >-
            Handlebars expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: handlebars@buildtime:{{order}}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('order');}
          externalDocs:
            description: PrehandlerBuildtimeContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/built/PrehandlerBuildtimeContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    ExpressionPrehandlerActionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionRequestBase'
        - properties:
            expression:
              $ref: >-
                #/components/schemas/ExpressionInExpressionPrehandlerActionRequest
            type:
              enum:
                - EXPRESSION
              type: string
          type: object
      description: Action represented by expression that can change the event.
      required:
        - expression
        - type
      type: object
      title: EXPRESSION
    JavascriptPrehandlerActionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionRequestBase'
        - properties:
            javascript:
              type: string
            type:
              enum:
                - JAVASCRIPT_V1
              type: string
          type: object
      description: Action represented by Javascript that can change the event.
      required:
        - javascript
        - type
      type: object
      title: JAVASCRIPT_V1
    MapDataAttributesPrehandlerActionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionRequestBase'
        - properties:
            data_attribute_mappings:
              items:
                $ref: '#/components/schemas/DataAttributeMapping'
              type: array
            type:
              enum:
                - MAP_DATA_ATTRIBUTES
              type: string
          type: object
      description: Action that modifies the event data based on data mappers attributes.
      required:
        - data_attribute_mappings
        - type
      type: object
      title: MAP_DATA_ATTRIBUTES
    SetDataPrehandlerActionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionRequestBase'
        - properties:
            data:
              $ref: '#/components/schemas/DataMapInSetDataPrehandlerActionRequest'
            default_data:
              $ref: >-
                #/components/schemas/Default_dataMapInSetDataPrehandlerActionRequest
            delete_data:
              description: >-
                Names (keys) of the data that should be removed from the event.
                Data names (keys) are not case sensitive.
              items:
                description: >-
                  Names (keys) of the data that should be removed from the
                  event. Data names (keys) are not case sensitive.
                nullable: true
                type: string
              nullable: true
              type: array
              uniqueItems: true
            type:
              enum:
                - SET_DATA
              type: string
          type: object
      description: Action that modifies the event data.
      required:
        - data
        - default_data
        - delete_data
        - type
      type: object
      title: SET_DATA
    SetSandboxPrehandlerActionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionRequestBase'
        - properties:
            sandbox_id:
              description: Id of the sandbox to be set into the event.
              type: string
            type:
              enum:
                - SET_SANDBOX
              type: string
          type: object
      description: Action that modifies the event sandbox.
      required:
        - sandbox_id
        - type
      type: object
      title: SET_SANDBOX
    BlockMatchPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            considered_block_list_types:
              description: >-
                Condition evaluates to true if any value from the list of any
                list type blocks matches the value from the event being
                evaluated. By default all list type blocks are evaluated.
              items:
                description: >-
                  Condition evaluates to true if any value from the list of any
                  list type blocks matches the value from the event being
                  evaluated. By default all list type blocks are evaluated.
                enum:
                  - CIDR
                  - EMAIL_DOMAIN
                  - NORMALIZED_EMAIL
                  - USER_AGENT
                type: string
              type: array
              uniqueItems: true
            type:
              enum:
                - BLOCK_MATCH
              type: string
          type: object
      description: Condition that adds the block list types to be checked.
      required:
        - type
      type: object
      title: BLOCK_MATCH
    DataExistsPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            data_keys:
              description: >-
                Condition evaluates to true if the data name is present in the
                event. Data name is not case sensitive.
              items:
                description: >-
                  Condition evaluates to true if the data name is present in the
                  event. Data name is not case sensitive.
                type: string
              type: array
              uniqueItems: true
            type:
              enum:
                - DATA_EXISTS
              type: string
          type: object
      description: Condition that checks the data name exists.
      required:
        - data_keys
        - type
      type: object
      title: DATA_EXISTS
    EventNameMatchPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            event_names:
              description: >-
                Condition evaluates to true if the event name is present in this
                set. Event names are not case sensitive.
              items:
                description: >-
                  Condition evaluates to true if the event name is present in
                  this set. Event names are not case sensitive.
                type: string
              type: array
              uniqueItems: true
            type:
              enum:
                - EVENT_NAME_MATCH
              type: string
          type: object
      description: Condition that checks the event name.
      required:
        - event_names
        - type
      type: object
      title: EVENT_NAME_MATCH
    ExpressionPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            expression:
              $ref: >-
                #/components/schemas/ExpressionInExpressionPrehandlerConditionRequest
            type:
              enum:
                - EXPRESSION
              type: string
          type: object
      description: >-
        Condition represented by expression. It evaluates to true if the
        expression returns true.
      required:
        - expression
        - type
      type: object
      title: EXPRESSION
    HttpHeaderMatchPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            http_header_names:
              description: >-
                Condition evaluates to true if any of these HTTP headers are
                present in the request. HTTP header names are not case
                sensitive.
              items:
                description: >-
                  Condition evaluates to true if any of these HTTP headers are
                  present in the request. HTTP header names are not case
                  sensitive.
                nullable: true
                type: string
              nullable: true
              type: array
              uniqueItems: true
            http_headers:
              additionalProperties:
                description: >-
                  Condition evaluates to true if any of these HTTP headers are
                  present in the request. At least one HTTP header value should
                  match. HTTP header names are not case sensitive.
                items:
                  description: >-
                    Condition evaluates to true if any of these HTTP headers are
                    present in the request. At least one HTTP header value
                    should match. HTTP header names are not case sensitive.
                  nullable: true
                  type: string
                nullable: true
                type: array
              description: >-
                Condition evaluates to true if any of these HTTP headers are
                present in the request. At least one HTTP header value should
                match. HTTP header names are not case sensitive.
              nullable: true
              type: object
            type:
              enum:
                - HTTP_HEADER_MATCH
              type: string
          type: object
      description: Condition that checks the event HTTP headers.
      required:
        - http_header_names
        - http_headers
        - type
      type: object
      title: HTTP_HEADER_MATCH
    JavascriptPrehandlerConditionRequest:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionRequestBase'
        - properties:
            javascript:
              type: string
            type:
              enum:
                - JAVASCRIPT_V1
              type: string
          type: object
      description: >-
        Condition represented by Javascript. It evaluates to true if the
        javascript returns true.
      required:
        - javascript
        - type
      type: object
      title: JAVASCRIPT_V1
    ExpressionPrehandlerActionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionResponseBase'
        - properties:
            expression:
              $ref: >-
                #/components/schemas/ExpressionInExpressionPrehandlerActionResponse
            id:
              readOnly: true
              type: string
            type:
              enum:
                - EXPRESSION
              type: string
          type: object
      description: Action represented by expression that can change the event.
      required:
        - expression
        - id
        - type
      type: object
      title: EXPRESSION
    JavascriptPrehandlerActionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionResponseBase'
        - properties:
            id:
              readOnly: true
              type: string
            javascript:
              type: string
            type:
              enum:
                - JAVASCRIPT_V1
              type: string
          type: object
      description: Action represented by Javascript that can change the event.
      required:
        - id
        - javascript
        - type
      type: object
      title: JAVASCRIPT_V1
    MapDataAttributesPrehandlerActionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionResponseBase'
        - properties:
            data_attribute_mappings:
              items:
                $ref: '#/components/schemas/DataAttributeMapping'
              type: array
            id:
              readOnly: true
              type: string
            type:
              enum:
                - MAP_DATA_ATTRIBUTES
              type: string
          type: object
      description: >-
        Action represented by data mappers that can change the data of the
        event.
      required:
        - data_attribute_mappings
        - id
        - type
      type: object
      title: MAP_DATA_ATTRIBUTES
    SetDataPrehandlerActionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionResponseBase'
        - properties:
            data:
              additionalProperties:
                nullable: true
                type: object
              nullable: true
              type: object
            default_data:
              additionalProperties:
                nullable: true
                type: object
              nullable: true
              type: object
            delete_data:
              items:
                nullable: true
                type: string
              nullable: true
              type: array
              uniqueItems: true
            id:
              readOnly: true
              type: string
            type:
              enum:
                - SET_DATA
              type: string
          type: object
      description: Action that modifies the event data.
      required:
        - data
        - default_data
        - delete_data
        - id
        - type
      type: object
      title: SET_DATA
    SetSandboxPrehandlerActionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerActionResponseBase'
        - properties:
            id:
              readOnly: true
              type: string
            sandbox_id:
              type: string
            type:
              enum:
                - SET_SANDBOX
              type: string
          type: object
      description: Action that modifies the event sandbox.
      required:
        - id
        - sandbox_id
        - type
      type: object
      title: SET_SANDBOX
    BlockMatchPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            considered_block_list_types:
              items:
                enum:
                  - CIDR
                  - EMAIL_DOMAIN
                  - NORMALIZED_EMAIL
                  - USER_AGENT
                type: string
              type: array
              uniqueItems: true
            id:
              readOnly: true
              type: string
            type:
              enum:
                - BLOCK_MATCH
              type: string
          type: object
      description: Condition that adds the block list types to be checked.
      required:
        - considered_block_list_types
        - id
        - type
      type: object
      title: BLOCK_MATCH
    DataExistsPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            data_keys:
              items:
                type: string
              type: array
              uniqueItems: true
            id:
              readOnly: true
              type: string
            type:
              enum:
                - DATA_EXISTS
              type: string
          type: object
      description: Condition that checks the data name exists.
      required:
        - data_keys
        - id
        - type
      type: object
      title: DATA_EXISTS
    EventNameMatchPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            event_names:
              items:
                type: string
              type: array
              uniqueItems: true
            id:
              readOnly: true
              type: string
            type:
              enum:
                - EVENT_NAME_MATCH
              type: string
          type: object
      description: Condition that checks the event name.
      required:
        - event_names
        - id
        - type
      type: object
      title: EVENT_NAME_MATCH
    ExpressionPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            expression:
              $ref: >-
                #/components/schemas/ExpressionInExpressionPrehandlerConditionResponse
            id:
              readOnly: true
              type: string
            type:
              enum:
                - EXPRESSION
              type: string
          type: object
      description: >-
        Condition represented by expression. It evaluates to true if the
        expression returns true.
      required:
        - expression
        - id
        - type
      type: object
      title: EXPRESSION
    HttpHeaderMatchPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            http_header_names:
              items:
                type: string
              type: array
              uniqueItems: true
            http_headers:
              additionalProperties:
                items:
                  type: string
                type: array
              type: object
            id:
              readOnly: true
              type: string
            type:
              enum:
                - HTTP_HEADER_MATCH
              type: string
          type: object
      description: Condition that checks the event HTTP headers.
      required:
        - http_header_names
        - http_headers
        - id
        - type
      type: object
      title: HTTP_HEADER_MATCH
    JavascriptPrehandlerConditionResponse:
      allOf:
        - $ref: '#/components/schemas/PrehandlerConditionResponseBase'
        - properties:
            id:
              readOnly: true
              type: string
            javascript:
              type: string
            type:
              enum:
                - JAVASCRIPT_V1
              type: string
          type: object
      description: >-
        Condition represented by Javascript. It evaluates to true if the
        javascript returns true.
      required:
        - id
        - javascript
        - type
      type: object
      title: JAVASCRIPT_V1
    PrehandlerActionRequestBase:
      properties:
        type:
          enum:
            - EXPRESSION
            - JAVASCRIPT_V1
            - MAP_DATA_ATTRIBUTES
            - SET_DATA
            - SET_SANDBOX
          type: string
      type: object
    ExpressionInExpressionPrehandlerActionRequest:
      description: Choose between static or dynamic expression
      oneOf:
        - description: Static expression
          title: Static Value
          type: object
        - description: >-
            Handlebars expression with
            [PrehandlerActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts).
          example: handlebars@buildtime:{{expression}}
          externalDocs:
            description: PrehandlerActionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('expression');}
          externalDocs:
            description: PrehandlerActionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    DataAttributeMapping:
      properties:
        attribute:
          type: string
        default_value:
          $ref: '#/components/schemas/DefaultValueInDataAttributeMapping'
        source_attribute:
          type: string
      type: object
    DataMapInSetDataPrehandlerActionRequest:
      additionalProperties:
        $ref: '#/components/schemas/DataInSetDataPrehandlerActionRequest'
      description: Data to be set to the event. Data names (keys) are not case sensitive.
      nullable: true
      type: object
    Default_dataMapInSetDataPrehandlerActionRequest:
      additionalProperties:
        $ref: '#/components/schemas/DefaultDataInSetDataPrehandlerActionRequest'
      description: >-
        Default data to be set to the event. Only data (keys) that are not
        already present in the event will be set. Data names (keys) are not case
        sensitive.
      nullable: true
      type: object
    PrehandlerConditionRequestBase:
      properties:
        type:
          enum:
            - BLOCK_MATCH
            - DATA_EXISTS
            - EVENT_NAME_MATCH
            - EXPRESSION
            - HTTP_HEADER_MATCH
            - JAVASCRIPT_V1
          type: string
      type: object
    ExpressionInExpressionPrehandlerConditionRequest:
      description: Choose between static or dynamic expression
      oneOf:
        - description: Static expression
          title: Static Value
          type: boolean
        - description: >-
            Handlebars expression with
            [PrehandlerConditionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts).
          example: handlebars@buildtime:{{expression}}
          externalDocs:
            description: PrehandlerConditionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerConditionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('expression');}
          externalDocs:
            description: PrehandlerConditionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    PrehandlerActionResponseBase:
      properties:
        id:
          type: string
        type:
          enum:
            - EXPRESSION
            - JAVASCRIPT_V1
            - MAP_DATA_ATTRIBUTES
            - SET_DATA
            - SET_SANDBOX
          type: string
      type: object
    ExpressionInExpressionPrehandlerActionResponse:
      description: >-
        The expression as configured: a literal value, or an expression
        (type:string) when defined dynamically.
      oneOf:
        - description: Literal expression
          title: Static Value
          type: object
        - description: >-
            Handlebars expression with
            [PrehandlerActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts).
          example: handlebars@buildtime:{{expression}}
          externalDocs:
            description: PrehandlerActionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('expression');}
          externalDocs:
            description: PrehandlerActionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerActionContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    PrehandlerConditionResponseBase:
      properties:
        id:
          type: string
        type:
          enum:
            - BLOCK_MATCH
            - DATA_EXISTS
            - EVENT_NAME_MATCH
            - EXPRESSION
            - HTTP_HEADER_MATCH
            - JAVASCRIPT_V1
          type: string
      type: object
    ExpressionInExpressionPrehandlerConditionResponse:
      description: >-
        The expression as configured: a literal value, or an expression
        (type:string) when defined dynamically.
      oneOf:
        - description: Literal expression
          title: Static Value
          type: boolean
        - description: >-
            Handlebars expression with
            [PrehandlerConditionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts).
          example: handlebars@buildtime:{{expression}}
          externalDocs:
            description: PrehandlerConditionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerConditionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('expression');}
          externalDocs:
            description: PrehandlerConditionContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerConditionContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    DefaultValueInDataAttributeMapping:
      description: Choose between static or dynamic default value
      oneOf:
        - allOf:
            - nullable: true
              type: string
            - not:
                anyOf:
                  - pattern: ^handlebars@buildtime:.*
                    type: string
                  - pattern: ^javascript@buildtime:.*
                    type: string
              type: string
          description: Static default value
          title: Static Value
        - description: >-
            Handlebars expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: handlebars@buildtime:{{defaultValue}}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('defaultValue');}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    DataInSetDataPrehandlerActionRequest:
      description: Data to be set to the event. Data names (keys) are not case sensitive.
      oneOf:
        - allOf:
            - nullable: true
              type: string
            - not:
                anyOf:
                  - pattern: ^handlebars@buildtime:.*
                    type: string
                  - pattern: ^javascript@buildtime:.*
                    type: string
              type: string
          description: Static data
          title: Static Value
        - description: >-
            Handlebars expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: handlebars@buildtime:{{data}}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('data');}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
    DefaultDataInSetDataPrehandlerActionRequest:
      description: >-
        Default data to be set to the event. Only data (keys) that are not
        already present in the event will be set. Data names (keys) are not case
        sensitive.
      oneOf:
        - allOf:
            - nullable: true
              type: string
            - not:
                anyOf:
                  - pattern: ^handlebars@buildtime:.*
                    type: string
                  - pattern: ^javascript@buildtime:.*
                    type: string
              type: string
          description: Static default data
          title: Static Value
        - description: >-
            Handlebars expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: handlebars@buildtime:{{defaultData}}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^handlebars@buildtime:.*
          title: Buildtime - Handlebars
          type: string
        - description: >-
            Javascript expression with
            [PrehandlerContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts).
          example: >-
            javascript@buildtime:function() { return
            context.getVariableContext().get('defaultData');}
          externalDocs:
            description: PrehandlerContext
            url: >-
              https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/prehandler/PrehandlerContext.d.ts
          pattern: ^javascript@buildtime:.*
          title: Buildtime - Javascript
          type: string
  examples:
    binding_error:
      summary: binding_error
      value:
        code: binding_error
        http_status_code: 400
        message: Argument is not of the expected type
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_absolute_name_missing:
      summary: campaign_component_absolute_name_missing
      value:
        code: campaign_component_absolute_name_missing
        http_status_code: 400
        message: Campaign component absolute name is missing
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_description_out_of_range:
      summary: campaign_component_description_out_of_range
      value:
        code: campaign_component_description_out_of_range
        http_status_code: 400
        message: Campaign component description length is out of range
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_display_name_contains_illegal_character:
      summary: campaign_component_display_name_contains_illegal_character
      value:
        code: campaign_component_display_name_contains_illegal_character
        http_status_code: 400
        message: >-
          Campaign component display name can only contain alphanumeric, dash,
          underscore, whitespace, asterisk, hash, dollar characters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_display_name_out_of_range:
      summary: campaign_component_display_name_out_of_range
      value:
        code: campaign_component_display_name_out_of_range
        http_status_code: 400
        message: Campaign component display name length is out of range
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_id_missing:
      summary: campaign_component_id_missing
      value:
        code: campaign_component_id_missing
        http_status_code: 400
        message: Campaign component id is missing
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_name_already_in_use:
      summary: campaign_component_name_already_in_use
      value:
        code: campaign_component_name_already_in_use
        http_status_code: 400
        message: Campaign component name is already used by another component
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_name_contains_illegal_character:
      summary: campaign_component_name_contains_illegal_character
      value:
        code: campaign_component_name_contains_illegal_character
        http_status_code: 400
        message: >-
          Campaign component name can only contain alphanumeric, dash and
          underscore characters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_name_out_of_range:
      summary: campaign_component_name_out_of_range
      value:
        code: campaign_component_name_out_of_range
        http_status_code: 400
        message: Campaign component name length is out of range
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    campaign_component_type_validation_failed:
      summary: campaign_component_type_validation_failed
      value:
        code: campaign_component_type_validation_failed
        http_status_code: 400
        message: Campaign component type validation failed
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    circular_component_reference:
      summary: circular_component_reference
      value:
        code: circular_component_reference
        http_status_code: 400
        message: Circular campaign component reference is not allowed
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    component_facets_not_found:
      summary: component_facets_not_found
      value:
        code: component_facets_not_found
        http_status_code: 400
        message: Component facets not found
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    excessive_component_reference:
      summary: excessive_component_reference
      value:
        code: excessive_component_reference
        http_status_code: 400
        message: Root campaign component may have at most one reference
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    external_element_is_referenced_by_active_configuration:
      summary: external_element_is_referenced_by_active_configuration
      value:
        code: external_element_is_referenced_by_active_configuration
        http_status_code: 400
        message: External element is referenced by active configuration
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    external_elements_cannot_have_multiple_references:
      summary: external_elements_cannot_have_multiple_references
      value:
        code: external_elements_cannot_have_multiple_references
        http_status_code: 400
        message: External elements cannot have multiple references
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_component_installed_into_socket:
      summary: invalid_component_installed_into_socket
      value:
        code: invalid_component_installed_into_socket
        http_status_code: 400
        message: Invalid component installed into socket
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_component_reference:
      summary: invalid_component_reference
      value:
        code: invalid_component_reference
        http_status_code: 400
        message: Unknown referenced campaign component
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_component_reference_socket_name:
      summary: invalid_component_reference_socket_name
      value:
        code: invalid_component_reference_socket_name
        http_status_code: 400
        message: Invalid component reference socket name
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_external_component_reference:
      summary: invalid_external_component_reference
      value:
        code: invalid_external_component_reference
        http_status_code: 400
        message: Unknown external referenced campaign component
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_json:
      summary: invalid_json
      value:
        code: invalid_json
        http_status_code: 400
        message: JSON is invalid
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_null:
      summary: invalid_null
      value:
        code: invalid_null
        http_status_code: 400
        message: The attribute may be omitted but not nullified
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    invalid_parameter:
      summary: invalid_parameter
      value:
        code: invalid_parameter
        http_status_code: 400
        message: Parameter is invalid.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    missing_request_body:
      summary: missing_request_body
      value:
        code: missing_request_body
        http_status_code: 400
        message: Missing request body
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    orphan_external_component_reference:
      summary: orphan_external_component_reference
      value:
        code: orphan_external_component_reference
        http_status_code: 400
        message: Orphan external referenced campaign component
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_build_failed:
      summary: prehandler_build_failed
      value:
        code: prehandler_build_failed
        http_status_code: 400
        message: Prehandler build failed
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_description_length_out_of_range:
      summary: prehandler_description_length_out_of_range
      value:
        code: prehandler_description_length_out_of_range
        http_status_code: 400
        message: Prehandler description length must be between 1 and 512 characters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_name_contains_illegal_character:
      summary: prehandler_name_contains_illegal_character
      value:
        code: prehandler_name_contains_illegal_character
        http_status_code: 400
        message: >-
          Prehandler name can only contain alphanumeric, dash, dot and
          underscore characters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_name_duplicated:
      summary: prehandler_name_duplicated
      value:
        code: prehandler_name_duplicated
        http_status_code: 400
        message: Prehandler with this name already exists for the current client
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_name_length_out_of_range:
      summary: prehandler_name_length_out_of_range
      value:
        code: prehandler_name_length_out_of_range
        http_status_code: 400
        message: Prehandler name length must be between 1 and 255 characters
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_name_missing:
      summary: prehandler_name_missing
      value:
        code: prehandler_name_missing
        http_status_code: 400
        message: Prehandler name is missing
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    prehandler_tag_invalid:
      summary: prehandler_tag_invalid
      value:
        code: prehandler_tag_invalid
        http_status_code: 400
        message: Tag max length is 255
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    redundant_component_reference:
      summary: redundant_component_reference
      value:
        code: redundant_component_reference
        http_status_code: 400
        message: Same reference defined multiple times
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    self_component_reference:
      summary: self_component_reference
      value:
        code: self_component_reference
        http_status_code: 400
        message: Self campaign component reference is not allowed
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    method_unauthorized:
      summary: method_unauthorized
      value:
        code: method_unauthorized
        http_status_code: 401
        message: Unauthorized access to this endpoint
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    payment_required:
      summary: payment_required
      value:
        code: payment_required
        http_status_code: 402
        message: The access_token provided is associated with an unpaid account.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    access_denied:
      summary: access_denied
      value:
        code: access_denied
        http_status_code: 403
        message: >-
          The access_token provided is not permitted to access the specified
          resource.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    missing_access_token:
      summary: missing_access_token
      value:
        code: missing_access_token
        http_status_code: 403
        message: No access_token was provided with this request.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    unsupported_media_type:
      summary: unsupported_media_type
      value:
        code: unsupported_media_type
        http_status_code: 415
        message: Request had an unsupported or no media type
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    too_many_requests:
      summary: too_many_requests
      value:
        code: too_many_requests
        http_status_code: 429
        message: >-
          The server is unable to process your request at the moment, please
          retry later.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
  securitySchemes:
    HEADER:
      in: header
      name: Authorization
      type: apiKey
      x-bearer-format: bearer
    QUERY:
      in: query
      name: access_token
      type: apiKey
    COOKIE:
      in: cookie
      name: extole_token
      type: apiKey

````