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

# Update transform

> Updates a transform of a pipeline



## OpenAPI

````yaml /pipeline.yaml put /pipeline/{pipeline_id}/transform/{pipeline_transform_id}
openapi: 3.1.0
info:
  title: Pipeline API
  description: API for the Pipeline product
  version: 3.345.5
servers:
  - url: https://api.mezmo.com/v3
security:
  - PipelineServiceKey: []
tags:
  - name: Internal
    description: Routes not accessible by outside users
  - name: Experimental
    description: Experimental routes, not intended for public consumption
  - name: Account
    description: Perform account level actions
  - name: Alerting
    description: API to control alerts on pipelines
  - name: Data Classification & Profiling
    description: API for classifying and profiling data
  - name: Edge - Local Deploy
    description: User routes that are available to use with local Edge instances
  - name: Incident Mode
    description: Change or read state of pipeline (incident mode on/off)
  - name: Log Volume Reduction
    description: CRUD operations for log volume reduction
  - name: Metrics
    description: Usage metrics for pipelines
  - name: Pipeline Export
    description: Export pipeline to terraform
  - name: Pipeline Management
    description: CRUD Operations for pipeline
  - name: Pipeline Nodes
    description: CRUD operations for sources, processors, and destinations
  - name: Processor Groups
    description: CRUD operations for Processor Groups
  - name: Shared Sources
    description: Create and manage sources for use across multiple pipelines
  - name: Sampling and Simulation
    description: >-
      Create samples of data and run them through a simulated pipeline without
      affecting your published pipeline
externalDocs:
  url: https://docs.mezmo.com/pipeline-api
paths:
  /pipeline/{pipeline_id}/transform/{pipeline_transform_id}:
    put:
      tags:
        - Pipeline Nodes
      summary: Update transform
      description: Updates a transform of a pipeline
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: pipeline_id
          required: true
        - schema:
            type: string
            format: uuid
          in: path
          name: pipeline_transform_id
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              allOf:
                - if:
                    properties:
                      type:
                        enum:
                          - filter
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Filter
                        description: >-
                          Define condition(s) to include or exclude events from
                          the pipeline
                        additionalProperties: false
                        properties:
                          action:
                            title: Action
                            description: How to handle events matching this criteria
                            oneOf:
                              - label: Allow events matching this criteria
                                enum:
                                  - allow
                              - label: Drop events matching this criteria
                                enum:
                                  - drop
                            default: allow
                            ui:
                              display_type: radio-group
                          conditional:
                            allOf:
                              - $ref: '#condition-group'
                            title: Conditional
                            description: >-
                              A group of expressions joined together by an
                              and/or operator.
                            ui:
                              display_type: rules-engine
                        required:
                          - action
                          - conditional
                - if:
                    properties:
                      type:
                        enum:
                          - sample
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Sample
                        description: >-
                          Sample data at a given rate, retaining only a subset
                          of data events for further processing.
                        additionalProperties: false
                        properties:
                          rate:
                            type: integer
                            title: Rate
                            description: >-
                              The rate at which events will be forwarded,
                              expressed as 1/N. For example, `rate = 10` means 1
                              out of every 10 events will be forwarded and the
                              rest will be dropped
                            minimum: 2
                            maximum: 10000
                            default: 10
                          always_include:
                            title: Always Include
                            description: >-
                              Certain events may always want to be included (not
                              sampled), regardless of the sample rate. Events
                              matching this criteria will always show up in the
                              results.
                            additionalProperties:
                              type:
                                - string
                                - number
                            dependencies:
                              field:
                                - str_operator
                              str_operator:
                                - field
                            allOf:
                              - if:
                                  title: Operator
                                  properties:
                                    str_operator:
                                      type: string
                                      enum:
                                        - greater
                                        - greater_or_equal
                                        - less
                                        - less_or_equal
                                      ui:
                                        display_type: list-operators
                                      title: Operator
                                      description: The comparison operator
                                  required:
                                    - str_operator
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      errorMessage:
                                        pattern: Value must be a number
                                      type:
                                        - string
                                        - number
                                      title: Value
                                      description: >-
                                        The value used in the expression, ie the
                                        "operand"
                                      minLength: 1
                                      pattern: ^\s*-?(\d*\.)?\d+\s*$
                                  required:
                                    - value
                              - if:
                                  title: Operator
                                  properties:
                                    str_operator:
                                      type: string
                                      enum:
                                        - greater
                                        - greater_or_equal
                                        - less
                                        - less_or_equal
                                        - equal
                                        - contains
                                        - is_ip_in_cidr_range
                                        - ends_with
                                        - starts_with
                                        - drain_matches
                                        - contains_token_term
                                        - contains_token_prefix
                                        - percent_change_greater
                                        - percent_change_greater_or_equal
                                        - percent_change_less
                                        - percent_change_less_or_equal
                                        - value_change_greater
                                        - value_change_greater_or_equal
                                        - value_change_less
                                        - value_change_less_or_equal
                                      ui:
                                        display_type: list-operators
                                      title: Operator
                                      description: The comparison operator
                                  required:
                                    - str_operator
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      type:
                                        - string
                                        - number
                                      title: Value
                                      description: >-
                                        The value used in the expression, ie the
                                        "operand"
                                      minLength: 1
                                  required:
                                    - value
                              - if:
                                  title: Operator
                                  properties:
                                    str_operator:
                                      type: string
                                      enum:
                                        - contains
                                        - equal
                                        - ends_with
                                        - starts_with
                                        - drain_matches
                                        - contains_token_term
                                        - contains_token_prefix
                                      ui:
                                        display_type: list-operators
                                      title: Operator
                                  required:
                                    - str_operator
                                then:
                                  title: Case sensitive
                                  properties:
                                    case_sensitive:
                                      type: boolean
                                      title: Case sensitive
                                      description: Perform case sensitive comparison?
                                      default: true
                            properties:
                              field:
                                type: string
                                title: Field
                                description: >-
                                  The JSON field to use in a condition to always
                                  include in sampling
                                pattern: >-
                                  ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                errorMessage:
                                  pattern: >-
                                    Must be a valid data access syntax. [Syntax
                                    Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                ui:
                                  display_type: field-reference
                              str_operator:
                                type: string
                                enum:
                                  - greater
                                  - greater_or_equal
                                  - less
                                  - less_or_equal
                                  - equal
                                  - contains
                                  - is_ip_in_cidr_range
                                  - is_metric
                                  - is_array
                                  - is_boolean
                                  - is_empty
                                  - is_null
                                  - is_number
                                  - is_object
                                  - is_string
                                  - exists
                                  - ends_with
                                  - starts_with
                                  - contains_token_term
                                  - contains_token_prefix
                                  - regex_match
                                ui:
                                  display_type: list-operators
                                title: Operator
                                description: The comparison operator
                              negate:
                                type: boolean
                                default: false
                                title: Negate
                                description: Negate the comparison expression
                        required:
                          - rate
                - if:
                    properties:
                      type:
                        enum:
                          - drop-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Remove Fields
                        description: Remove fields
                        additionalProperties: false
                        properties:
                          fields:
                            type: array
                            title: Fields
                            description: A list of fields to be removed
                            items:
                              type: string
                              title: Field
                              pattern: >-
                                ^(?:metadata|\.|(?:metadata|message)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              minLength: 1
                              errorMessage: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields).
                                Note that dropping an event's message or
                                timestamp is not allowed
                            minItems: 1
                        required:
                          - fields
                - if:
                    properties:
                      type:
                        enum:
                          - parse
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Parse
                        description: Parse a specified field using the chosen parser
                        additionalProperties:
                          type: object
                        errorMessage:
                          properties:
                            target_field: >-
                              Must be a valid data access syntax. [Syntax
                              Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                        allOf:
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_key_value
                            then:
                              properties:
                                options:
                                  $ref: '#key-value-parser-options'
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_timestamp
                            then:
                              properties:
                                options:
                                  $ref: '#timestamp-parser-options'
                              required:
                                - options
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_grok
                            then:
                              properties:
                                options:
                                  $ref: '#grok-pattern-parser-options'
                              required:
                                - options
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_regex
                            then:
                              properties:
                                options:
                                  allOf:
                                    - $ref: '#regex-parser-options'
                                  ui:
                                    display_type: regex-pattern
                              required:
                                - options
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_apache_log
                            then:
                              properties:
                                options:
                                  $ref: '#apache-parser-options'
                              required:
                                - options
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_nginx_log
                            then:
                              properties:
                                options:
                                  $ref: '#nginx-parser-options'
                              required:
                                - options
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_cef
                            then:
                              properties:
                                options:
                                  $ref: '#cef-parser-options'
                          - if:
                              properties:
                                parser:
                                  enum:
                                    - parse_csv
                            then:
                              properties:
                                options:
                                  $ref: '#csv-parser-options'
                        properties:
                          field:
                            type: string
                            title: Field
                            description: The JSON field whose value should be parsed.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            default: .
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          target_field:
                            oneOf:
                              - type: 'null'
                              - type: string
                                pattern: >-
                                  ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                maxLength: 512
                                errorMessage:
                                  pattern: >-
                                    Must be a valid data access syntax. [Syntax
                                    Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                ui:
                                  display_type: field-reference
                            title: Target field
                            description: >-
                              The field into which the parsed value should be
                              inserted. Leave blank to insert the parsed data
                              into the original field.
                            default: null
                          parser:
                            oneOf:
                              - label: AWS Cloudfront Access Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - aws_cloudfront_access_log
                              - label: AWS Cloudwatch Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - >-
                                    parse_aws_cloudwatch_log_subscription_message
                              - label: AWS Load Balancer Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_aws_alb_log
                              - label: AWS S3 Access Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - aws_s3_access_log
                              - label: Apache Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_apache_log
                              - label: CSV
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_csv
                              - label: Common Event Format (CEF) Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_cef
                              - label: Common Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_common_log
                              - label: Elasticsearch Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - elasticsearch_log
                              - label: Golang Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - golang_log
                              - label: Google Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_glog
                              - label: Grok Pattern
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_grok
                              - label: Integer
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_int
                              - label: JSON
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_json
                              - label: Key/Value
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_key_value
                              - label: Kubernetes Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_klog
                              - label: Linux Authorization
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_linux_authorization
                              - label: Mongo Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - mongo_log
                              - label: Mongo3 Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - mongo3_log
                              - label: Nginx Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_nginx_log
                              - label: PSQL Log
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - psql_log
                              - label: Query String
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_query_string
                              - label: Regular Expression
                                group: Line Parsers
                                ui:
                                  feature_flag: pipeline-parser-regex
                                enum:
                                  - parse_regex
                              - label: Syslog
                                group: Line Parsers
                                ui: {}
                                enum:
                                  - parse_syslog
                              - label: Timestamp
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_timestamp
                              - label: Tokens
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_tokens
                              - label: URL
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_url
                              - label: User Agent
                                group: Field Parsers
                                ui: {}
                                enum:
                                  - parse_user_agent
                              - label: VPC Flow Log
                                group: Line Parsers
                                ui: {}
                                description: >-
                                  Parse VPC logs using default format for fields
                                  from v2 to v4
                                enum:
                                  - parse_aws_vpc_flow_log
                            ui:
                              display_type: list
                            errorMessage: must be one of allowed parsers
                            title: Parser
                            description: >-
                              The kind of parser to use against the input value
                              from "field".
                        required:
                          - field
                          - parser
                - if:
                    properties:
                      type:
                        enum:
                          - parse-sequentially
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Parse Sequentially
                        description: >-
                          Parse fields using one or more parsers in order,
                          sending out the event on the first successful match.
                        additionalProperties: false
                        errorMessage:
                          properties:
                            target_field: >-
                              Must be a valid data access syntax. [Syntax
                              Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                        properties:
                          field:
                            type: string
                            title: Field
                            description: The field whose value should be parsed.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            default: .
                            maxLength: 512
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          target_field:
                            oneOf:
                              - type: 'null'
                              - type: string
                                pattern: >-
                                  ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                maxLength: 512
                                errorMessage:
                                  pattern: >-
                                    Must be a valid data access syntax. [Syntax
                                    Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                ui:
                                  display_type: field-reference
                            title: Target field
                            description: >-
                              The field into which the parsed value should be
                              inserted. Leave blank to insert the parsed data
                              into the original field.
                            default: null
                          parsers:
                            type: array
                            title: List of parsers
                            description: >-
                              The list of parsers to use in order against the
                              input valuefrom "field", short-circuiting on the
                              first successful match.
                            items:
                              type: object
                              allOf:
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_key_value
                                  then:
                                    properties:
                                      options:
                                        $ref: '#key-value-parser-options'
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_timestamp
                                  then:
                                    properties:
                                      options:
                                        $ref: '#timestamp-parser-options'
                                    required:
                                      - options
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_grok
                                  then:
                                    properties:
                                      options:
                                        $ref: '#grok-pattern-parser-options'
                                    required:
                                      - options
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_regex
                                  then:
                                    properties:
                                      options:
                                        allOf:
                                          - $ref: '#regex-parser-options'
                                        ui:
                                          display_type: regex-pattern
                                    required:
                                      - options
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_apache_log
                                  then:
                                    properties:
                                      options:
                                        $ref: '#apache-parser-options'
                                    required:
                                      - options
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_nginx_log
                                  then:
                                    properties:
                                      options:
                                        $ref: '#nginx-parser-options'
                                    required:
                                      - options
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_cef
                                  then:
                                    properties:
                                      options:
                                        $ref: '#cef-parser-options'
                                - if:
                                    properties:
                                      parser:
                                        enum:
                                          - parse_csv
                                  then:
                                    properties:
                                      options:
                                        $ref: '#csv-parser-options'
                              properties:
                                label:
                                  oneOf:
                                    - type: 'null'
                                    - type: string
                                      maxLength: 20
                                  title: Title
                                  description: >-
                                    An arbitrary name you choose to identify the
                                    results of this processor for use when
                                    connecting them to other components.
                                parser:
                                  oneOf:
                                    - label: AWS Cloudfront Access Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - aws_cloudfront_access_log
                                    - label: AWS Cloudwatch Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - >-
                                          parse_aws_cloudwatch_log_subscription_message
                                    - label: AWS Load Balancer Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_aws_alb_log
                                    - label: AWS S3 Access Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - aws_s3_access_log
                                    - label: Apache Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_apache_log
                                    - label: CSV
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_csv
                                    - label: Common Event Format (CEF) Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_cef
                                    - label: Common Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_common_log
                                    - label: Elasticsearch Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - elasticsearch_log
                                    - label: Golang Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - golang_log
                                    - label: Google Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_glog
                                    - label: Grok Pattern
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_grok
                                    - label: Integer
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_int
                                    - label: JSON
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_json
                                    - label: Key/Value
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_key_value
                                    - label: Kubernetes Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_klog
                                    - label: Linux Authorization
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_linux_authorization
                                    - label: Mongo Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - mongo_log
                                    - label: Mongo3 Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - mongo3_log
                                    - label: Nginx Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_nginx_log
                                    - label: PSQL Log
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - psql_log
                                    - label: Query String
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_query_string
                                    - label: Regular Expression
                                      group: Line Parsers
                                      ui:
                                        feature_flag: pipeline-parser-regex
                                      enum:
                                        - parse_regex
                                    - label: Syslog
                                      group: Line Parsers
                                      ui: {}
                                      enum:
                                        - parse_syslog
                                    - label: Timestamp
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_timestamp
                                    - label: Tokens
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_tokens
                                    - label: URL
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_url
                                    - label: User Agent
                                      group: Field Parsers
                                      ui: {}
                                      enum:
                                        - parse_user_agent
                                    - label: VPC Flow Log
                                      group: Line Parsers
                                      ui: {}
                                      description: >-
                                        Parse VPC logs using default format for
                                        fields from v2 to v4
                                      enum:
                                        - parse_aws_vpc_flow_log
                                  ui:
                                    display_type: list
                                  errorMessage: must be one of allowed parsers
                                  title: Parser
                                  description: >-
                                    The kind of parser to use against the input
                                    value from "field".
                                _output_name:
                                  type: string
                                  title: '[INTERNAL]'
                                  description: >-
                                    Internal-only field that holds a static id
                                    for the output_name. This way, labels for
                                    outputs can be updated independent of the
                                    id.
                                  default: ''
                              required:
                                - parser
                                - _output_name
                              additionalProperties:
                                type: object
                            minItems: 1
                            ui:
                              display_type: multi-output-map
                            unique_parser_and_options: true
                            errorMessage:
                              uniqueItemProperties: parser can not be defined more than once
                        required:
                          - field
                          - parsers
                - if:
                    properties:
                      type:
                        enum:
                          - route
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Route
                        description: >-
                          Route data based on whether it matches (or doesn't
                          match) logical comparisons
                        additionalProperties: false
                        properties:
                          conditionals:
                            type: array
                            minItems: 1
                            title: Conditionals
                            description: >-
                              A list of complete conditionals, including
                              expressions and label
                            items:
                              type: object
                              additionalProperties: false
                              title: Conditional
                              description: A list of conditions and a label
                              properties:
                                conditional:
                                  $ref: '#condition-group'
                                label:
                                  type: string
                                  minLength: 1
                                  maxLength: 255
                                  title: Label
                                  description: >-
                                    An arbitrary name you choose to identify the
                                    results of this processor for use when
                                    connecting them to other components.
                                _output_name:
                                  type: string
                                  title: '[INTERNAL]'
                                  description: >-
                                    Internal-only field that holds a static id
                                    for the output_name. This way, labels for
                                    outputs can be updated independent of the
                                    id.
                                  default: ''
                              required:
                                - conditional
                                - label
                                - _output_name
                        required:
                          - conditionals
                - if:
                    properties:
                      type:
                        enum:
                          - stringify
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Stringify
                        description: Stringify messages as JSON
                        additionalProperties: false
                - if:
                    properties:
                      type:
                        enum:
                          - compact-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Compact Fields
                        description: Remove empty values from a list of fields
                        additionalProperties: false
                        properties:
                          fields:
                            type: array
                            title: Fields
                            description: A list of fields to remove empty values from
                            items:
                              type: string
                              title: Field
                              description: Field to remove empty value from
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            minItems: 1
                          options:
                            type: object
                            additionalProperties: false
                            title: Compact Options
                            description: >-
                              Additional options for removing empty values from
                              fields
                            properties:
                              compact_array:
                                type: boolean
                                title: Compact Array
                                description: Remove empty arrays from a field
                                default: true
                              compact_object:
                                type: boolean
                                title: Compact Object
                                description: Remove empty objects from a field
                                default: true
                        required:
                          - fields
                - if:
                    properties:
                      type:
                        enum:
                          - flatten-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Flatten Fields
                        description: >-
                          Flattens the object or array value of a field into a
                          single level representation
                        additionalProperties: false
                        properties:
                          fields:
                            type: array
                            title: Fields
                            description: >-
                              Define specific nested objects you wish to
                              flatten. This will not flatten the entire object,
                              just the specified fields. Leave blank to flatten
                              the entire object
                            items:
                              type: string
                              title: Field
                              description: Field to flatten
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                          options:
                            type: object
                            additionalProperties: false
                            title: Flatten Options
                            description: Additional options for flattening fields
                            properties:
                              delimiter:
                                type: string
                                default: _
                                title: Delimiter
                                description: >-
                                  When flattening, the nested field labels will
                                  be appended to the higher level field names
                                  along with a delimiter to allow understanding
                                  of the original structure. The default is an
                                  underscore (_) to ensure no collisions with
                                  the . notation used for field identifiers
                                minLength: 1
                                maxLength: 1
                - if:
                    properties:
                      type:
                        enum:
                          - dedupe
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Dedupe
                        description: Dedupe (remove duplicates) from the data stream
                        additionalProperties: false
                        properties:
                          number_of_events:
                            type: number
                            description: Number of events to compare across
                            title: Number of Events
                            minimum: 2
                            maximum: 5000
                            default: 5000
                          comparison_type:
                            type: string
                            enum:
                              - Ignore
                              - Match
                            description: >-
                              Match: Only compares across the fields which are
                              specified by the user.Ignore: Compares everything
                              but the fields specified by the user.
                            title: Comparison Type
                            default: Match
                          fields:
                            type: array
                            title: Fields
                            description: A list of fields on which to base deduping
                            items:
                              type: string
                              title: Field
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            minItems: 1
                        required:
                          - number_of_events
                          - comparison_type
                          - fields
                - if:
                    properties:
                      type:
                        enum:
                          - encrypt-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Encrypt Field
                        description: Encrypts the value of the provided field
                        additionalProperties: false
                        allOf:
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Encryption key
                                  description: The encryption key
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                        properties:
                          field:
                            type: string
                            title: Field
                            description: >-
                              Field to encrypt. The value of the field must be a
                              primitive (string, number, boolean)
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          algorithm:
                            oneOf:
                              - label: >-
                                  AES-256-CFB (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-CFB (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-CFB
                              - label: >-
                                  AES-192-CFB (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-CFB (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-CFB
                              - label: >-
                                  AES-128-CFB (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-CFB (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-CFB
                              - label: >-
                                  AES-256-OFB (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-OFB (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-OFB
                              - label: >-
                                  AES-192-OFB (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-OFB (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-OFB
                              - label: >-
                                  AES-128-OFB (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-OFB (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-OFB
                              - label: >-
                                  AES-256-CTR (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-CTR (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-CTR
                              - label: >-
                                  AES-192-CTR (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-CTR (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-CTR
                              - label: >-
                                  AES-128-CTR (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-CTR (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-CTR
                              - label: >-
                                  AES-256-CBC-PKCS7 (key = 32 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-256-CBC-PKCS7 (key = 32 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-256-CBC-PKCS7
                              - label: >-
                                  AES-192-CBC-PKCS7 (key = 24 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-192-CBC-PKCS7 (key = 24 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-192-CBC-PKCS7
                              - label: >-
                                  AES-128-CBC-PKCS7 (key = 16 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-128-CBC-PKCS7 (key = 16 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-128-CBC-PKCS7
                              - label: >-
                                  AES-256-CBC-ANSIX923 (key = 32 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-256-CBC-ANSIX923 (key = 32 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-256-CBC-ANSIX923
                              - label: >-
                                  AES-192-CBC-ANSIX923 (key = 24 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-192-CBC-ANSIX923 (key = 24 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-192-CBC-ANSIX923
                              - label: >-
                                  AES-128-CBC-ANSIX923 (key = 16 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-128-CBC-ANSIX923 (key = 16 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-128-CBC-ANSIX923
                              - label: >-
                                  AES-256-CBC-ISO7816 (key = 32 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-256-CBC-ISO7816 (key = 32 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-256-CBC-ISO7816
                              - label: >-
                                  AES-192-CBC-ISO7816 (key = 24 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-192-CBC-ISO7816 (key = 24 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-192-CBC-ISO7816
                              - label: >-
                                  AES-128-CBC-ISO7816 (key = 16 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-128-CBC-ISO7816 (key = 16 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-128-CBC-ISO7816
                              - label: >-
                                  AES-256-CBC-ISO10126 (key = 32 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-256-CBC-ISO10126 (key = 32 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-256-CBC-ISO10126
                              - label: >-
                                  AES-192-CBC-ISO10126 (key = 24 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-192-CBC-ISO10126 (key = 24 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-192-CBC-ISO10126
                              - label: >-
                                  AES-128-CBC-ISO10126 (key = 16 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-128-CBC-ISO10126 (key = 16 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-128-CBC-ISO10126
                            ui:
                              display_type: list
                            title: Encryption algorithm
                            description: The encryption algorithm to use
                          key:
                            type: string
                            title: Encryption key
                            description: The encryption key
                            minLength: 16
                            maxLength: 32
                          iv_field:
                            type: string
                            title: Initialization vector (IV) field
                            description: >-
                              The field in which to store the generated
                              initialization vector, IV. Each encrypted value
                              will have a unique IV
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          encode_raw_bytes:
                            type: boolean
                            title: Encode encrypted field and IV as Base 64 text
                            description: >-
                              Encode the encrypted value and generated
                              initialization vector as Base64 text
                            default: true
                        required:
                          - field
                          - algorithm
                          - key
                          - iv_field
                - if:
                    properties:
                      type:
                        enum:
                          - decrypt-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Decrypt Field
                        additionalProperties: false
                        description: Decrypts the value of the provided field
                        allOf:
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-OFB
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CTR
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-PKCS7
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ANSIX923
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ISO7816
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-256-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 32
                                  maxLength: 32
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-192-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 24
                                  maxLength: 24
                              required:
                                - key
                          - if:
                              properties:
                                algorithm:
                                  enum:
                                    - AES-128-CBC-ISO10126
                              required:
                                - algorithm
                            then:
                              properties:
                                key:
                                  type: string
                                  title: Decryption key
                                  description: The key/secret used to encrypt the value
                                  minLength: 16
                                  maxLength: 16
                              required:
                                - key
                        properties:
                          field:
                            type: string
                            title: Field
                            description: >-
                              Field to decrypt. The value of the field must be a
                              string
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          algorithm:
                            oneOf:
                              - label: >-
                                  AES-256-CFB (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-CFB (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-CFB
                              - label: >-
                                  AES-192-CFB (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-CFB (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-CFB
                              - label: >-
                                  AES-128-CFB (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-CFB (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-CFB
                              - label: >-
                                  AES-256-OFB (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-OFB (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-OFB
                              - label: >-
                                  AES-192-OFB (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-OFB (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-OFB
                              - label: >-
                                  AES-128-OFB (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-OFB (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-OFB
                              - label: >-
                                  AES-256-CTR (key = 32 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-256-CTR (key = 32 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-256-CTR
                              - label: >-
                                  AES-192-CTR (key = 24 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-192-CTR (key = 24 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-192-CTR
                              - label: >-
                                  AES-128-CTR (key = 16 characters, iv = 16
                                  characters)
                                description: >-
                                  AES-128-CTR (key = 16 characters, iv = 16
                                  characters)
                                enum:
                                  - AES-128-CTR
                              - label: >-
                                  AES-256-CBC-PKCS7 (key = 32 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-256-CBC-PKCS7 (key = 32 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-256-CBC-PKCS7
                              - label: >-
                                  AES-192-CBC-PKCS7 (key = 24 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-192-CBC-PKCS7 (key = 24 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-192-CBC-PKCS7
                              - label: >-
                                  AES-128-CBC-PKCS7 (key = 16 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-128-CBC-PKCS7 (key = 16 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-128-CBC-PKCS7
                              - label: >-
                                  AES-256-CBC-ANSIX923 (key = 32 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-256-CBC-ANSIX923 (key = 32 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-256-CBC-ANSIX923
                              - label: >-
                                  AES-192-CBC-ANSIX923 (key = 24 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-192-CBC-ANSIX923 (key = 24 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-192-CBC-ANSIX923
                              - label: >-
                                  AES-128-CBC-ANSIX923 (key = 16 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-128-CBC-ANSIX923 (key = 16 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-128-CBC-ANSIX923
                              - label: >-
                                  AES-256-CBC-ISO7816 (key = 32 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-256-CBC-ISO7816 (key = 32 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-256-CBC-ISO7816
                              - label: >-
                                  AES-192-CBC-ISO7816 (key = 24 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-192-CBC-ISO7816 (key = 24 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-192-CBC-ISO7816
                              - label: >-
                                  AES-128-CBC-ISO7816 (key = 16 characters, iv =
                                  16 characters)
                                description: >-
                                  AES-128-CBC-ISO7816 (key = 16 characters, iv =
                                  16 characters)
                                enum:
                                  - AES-128-CBC-ISO7816
                              - label: >-
                                  AES-256-CBC-ISO10126 (key = 32 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-256-CBC-ISO10126 (key = 32 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-256-CBC-ISO10126
                              - label: >-
                                  AES-192-CBC-ISO10126 (key = 24 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-192-CBC-ISO10126 (key = 24 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-192-CBC-ISO10126
                              - label: >-
                                  AES-128-CBC-ISO10126 (key = 16 characters, iv
                                  = 16 characters)
                                description: >-
                                  AES-128-CBC-ISO10126 (key = 16 characters, iv
                                  = 16 characters)
                                enum:
                                  - AES-128-CBC-ISO10126
                            ui:
                              display_type: list
                            title: Decryption algorithm
                            description: The algorithm with which the data was encrypted
                          key:
                            type: string
                            title: Decryption key
                            description: The key/secret used to encrypt the value
                            minLength: 16
                            maxLength: 32
                          iv_field:
                            type: string
                            title: Initialization vector (IV) field
                            description: >-
                              The field from which to read the initialization
                              vector, IV
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          decode_raw_bytes:
                            type: boolean
                            title: Decode the encrypted value and IV as Base 64 text
                            description: >-
                              Decode the encrypted value and initialization
                              vector as Base64 text
                            default: true
                        required:
                          - field
                          - algorithm
                          - key
                          - iv_field
                - if:
                    properties:
                      type:
                        enum:
                          - js-script
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Script Execution
                        description: >-
                          Use JavaScript to reshape and transform your data. You
                          can combine multiple actions like filtering, dropping,
                          mapping, and casting inside of a single js script.
                        additionalProperties: true
                        properties:
                          script:
                            type: string
                            title: Script
                            ui:
                              display_type: code-editor
                              options:
                                language: js
                            description: >-
                              The JavaScript representation of the event
                              transformation.
                            minLength: 1
                            maxLength: 10000
                            default: >

                              // Modify the event using a subset of the
                              JavaScript language.

                              // The function must return the modified event

                              function processEvent(message, metadata,
                              timestamp, annotations) {

                                return message
                              }
                - if:
                    properties:
                      type:
                        enum:
                          - unroll
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Unroll
                        description: >-
                          Takes an array of events and emits them all as
                          individual events.
                        additionalProperties: false
                        properties:
                          field:
                            type: string
                            title: Field
                            description: >-
                              The JSON field name that contains an array of
                              events
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          values_only:
                            type: boolean
                            title: Values only?
                            description: >-
                              When enabled, the values from the specified array
                              field will be emitted as new events. Otherwise,
                              the original event will be duplicated for each
                              value in the array field, with the unrolled value
                              present in the field specified.
                            default: true
                        required:
                          - field
                - if:
                    properties:
                      type:
                        enum:
                          - vrl
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: VRL
                        description: >-
                          Modify your observability data using Vector Remap
                          Language (VRL)
                        additionalProperties: false
                        properties:
                          source:
                            type: string
                            title: VRL Source
                            description: VRL code to execute for each event
                            ui:
                              display_type: code-editor
                              options:
                                language: vrl
                            minLength: 1
                            default: .message = .message
                        required:
                          - source
                - if:
                    properties:
                      type:
                        enum:
                          - reduce
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Reduce
                        description: >-
                          Combine multiple events over time into one based on a
                          set of criteria
                        additionalProperties: false
                        properties:
                          duration_ms:
                            type: number
                            maximum: 7200000
                            title: Duration
                            description: >-
                              The amount of time (in milliseconds) to allow
                              streaming events to accumulate into a single
                              "reduced" event. The process repeats indefinitely,
                              or until an "ends when" condition is satisfied.
                            ui:
                              display_type: milliseconds-to-human-readable
                            default: 30000
                          max_events:
                            type: number
                            minimum: 1
                            maximum: 100000
                            title: Max Events
                            description: >-
                              The maximum number of events that can be included
                              in a time window (specified by Duration above).
                              The reduce operation will stop once it has reached
                              this number of events, regardless of whether the
                              Duration seconds have elapsed.
                          group_by:
                            type: array
                            minItems: 1
                            title: Group By Field Path
                            items:
                              type: string
                              title: Field
                              description: The dot-notated property path
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            description: >-
                              Before reducing, group events based on matching
                              data from each of these field paths. Supports
                              nesting via dot-notation.
                          date_formats:
                            type: array
                            title: Date Formats
                            description: >-
                              Describes which root-level properties are dates,
                              and their expected format. Dot-notation is
                              supported, but nested field lookup paths will be
                              an error.
                            minItems: 1
                            items:
                              type: object
                              additionalProperties: false
                              properties:
                                field:
                                  type: string
                                  title: Date Field Path
                                  description: >-
                                    Specifies a root-level path property that
                                    contains a date value.
                                  maxLength: 200
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                format:
                                  type: string
                                  title: Date Format
                                  description: The template describing the date format
                                  format: strftime_datetime
                                  errorMessage: must be a valid strftime datetime format
                                  maxLength: 200
                              required:
                                - field
                                - format
                          merge_strategies:
                            type: array
                            title: Merge Strategy per Field
                            minItems: 1
                            description: >-
                              Specify merge strategies for individual root-level
                              properties. Dot-notation is supported, but nested
                              field lookup paths will be an error.
                            items:
                              type: object
                              additionalProperties: false
                              properties:
                                field:
                                  type: string
                                  title: Field Path
                                  description: >-
                                    This is a root-level path property to apply
                                    a merge strategy to its value
                                  maxLength: 200
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                strategy:
                                  oneOf:
                                    - label: Array
                                      description: Append each value onto an array
                                      enum:
                                        - array
                                    - label: Smallest array
                                      description: >-
                                        Keep the smallest array within each
                                        reduce time window
                                      enum:
                                        - shortest_array
                                    - label: Largest array
                                      description: >-
                                        Keep the largest array within each
                                        reduce time window
                                      enum:
                                        - longest_array
                                    - label: Unique Array
                                      description: >-
                                        All unique values go into a flattened
                                        array
                                      enum:
                                        - flat_unique
                                    - label: Join with space
                                      description: >-
                                        Concatenate into a single
                                        space-delimited string
                                      enum:
                                        - concat
                                    - label: Join with newline
                                      description: >-
                                        Concatenate into a single
                                        newline-delimited string
                                      enum:
                                        - concat_newline
                                    - label: Join
                                      description: >-
                                        Concatenate into a single string without
                                        using a delimiter
                                      enum:
                                        - concat_raw
                                    - label: Keep first
                                      description: >-
                                        Keep only the first value and discard
                                        the rest
                                      enum:
                                        - discard
                                    - label: Keep last
                                      description: Keep only the last non-null value
                                      enum:
                                        - retain
                                    - label: Min value
                                      description: >-
                                        Keep the minimum numeric value within
                                        each reduce time window
                                      enum:
                                        - min
                                    - label: Max value
                                      description: >-
                                        Keep the maximum numeric value within
                                        each reduce time window
                                      enum:
                                        - max
                                    - label: Sum
                                      description: Add numeric values together
                                      enum:
                                        - sum
                                  ui:
                                    display_type: list
                                  errorMessage: must be one of the allowed merge strategies
                                  title: Merge Strategy
                                  description: >-
                                    The merge strategy to be used for the
                                    specified property
                              required:
                                - field
                                - strategy
                          flush_condition:
                            title: Event Flush Condition
                            description: >-
                              Force accumulated event reduction to flush the
                              result when a conditional expression evaluates to
                              true on an inbound event.
                            allOf:
                              - type: object
                                properties:
                                  when:
                                    type: string
                                    enum:
                                      - none
                                      - starts_when
                                      - ends_when
                                    default: none
                                    ui:
                                      display_type: list
                                    errorMessage: ''
                                    title: Flush When
                                required:
                                  - when
                              - if:
                                  properties:
                                    when:
                                      not:
                                        enum:
                                          - none
                                then:
                                  properties:
                                    conditional:
                                      allOf:
                                        - $ref: '#condition-group'
                                      ui:
                                        display_type: rules-engine
                                  required:
                                    - conditional
                - if:
                    properties:
                      type:
                        enum:
                          - map-fields
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Map Fields
                        description: >-
                          Maps data from one field to another, either by moving
                          or copying.
                        additionalProperties: false
                        properties:
                          mappings:
                            type: array
                            title: Mappings
                            description: >-
                              A list of field mappings. Mappings are applied in
                              the order they are defined.
                            minItems: 1
                            ui:
                              display_type: sortable
                            items:
                              type: object
                              properties:
                                source_field:
                                  type: string
                                  title: Source field
                                  description: The field to copy data from
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                target_field:
                                  type: string
                                  title: Target field
                                  description: The field to copy data into
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                drop_source:
                                  type: boolean
                                  title: Drop source?
                                  description: >-
                                    When enabled, the source field is dropped
                                    after the data is copied to the target
                                    field. Otherwise, it is preserved.
                                  default: false
                                overwrite_target:
                                  type: boolean
                                  title: Overwrite target?
                                  description: >-
                                    When enabled, any existing data in the
                                    target field is overwritten. Otherwise, the
                                    target field will be preserved and this
                                    mapping will have no effect.
                                  default: false
                              required:
                                - source_field
                                - target_field
                                - drop_source
                                - overwrite_target
                              if:
                                properties:
                                  drop_source:
                                    enum:
                                      - true
                                required:
                                  - drop_source
                              then:
                                properties:
                                  source_field:
                                    type: string
                                    title: Source field
                                    description: The field to copy data from
                                    pattern: >-
                                      ^(?:metadata|\.|(?:metadata|message)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                    minLength: 1
                                    errorMessage: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields).
                                      Note that dropping an event's message or
                                      timestamp is not allowed
                                required:
                                  - source_field
                        required:
                          - mappings
                - if:
                    properties:
                      type:
                        enum:
                          - metrics-tag-cardinality-limit
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Tag Cardinality Limit (Metrics)
                        description: >-
                          Limits the cardinality of metric events by either
                          dropping events  or tags that exceed a specified value
                          limit
                        additionalProperties: false
                        allOf:
                          - if:
                              title: Mode
                              properties:
                                mode:
                                  type: string
                                  enum:
                                    - exact
                            then:
                              title: Value Limit
                              properties:
                                value_limit:
                                  type: integer
                                  title: Value Limit
                                  description: Maximum number of unique values for tags
                                  minimum: 1
                                  maximum: 500
                              required:
                                - value_limit
                          - if:
                              title: Mode
                              properties:
                                mode:
                                  type: string
                                  enum:
                                    - probabilistic
                            then:
                              title: Value Limit
                              properties:
                                value_limit:
                                  type: integer
                                  title: Value Limit
                                  description: Maximum number of unique values for tags
                                  minimum: 1
                                  maximum: 5000
                              required:
                                - value_limit
                        properties:
                          tags:
                            type: array
                            title: Tags
                            description: >-
                              A list of tags to apply cardinality limits. If
                              none are provided, all tags will be considered.
                            items:
                              type: string
                              title: Tag
                              minLength: 1
                              maxLength: 100
                            minItems: 0
                            maxItems: 10
                          exclude_tags:
                            type: array
                            title: Exclude Tags
                            description: >-
                              A list of tags to explicitly exclude from
                              cardinality limits.
                            items:
                              type: string
                              title: Tag
                              minLength: 1
                              maxLength: 100
                            minItems: 0
                            maxItems: 10
                          action:
                            type: string
                            title: Action
                            description: >-
                              The action to take when a tag's cardinality
                              exceeds the value limit
                            enum:
                              - drop_tag
                              - drop_event
                            default: drop_event
                          value_limit:
                            type: integer
                            title: Value Limit
                            description: Maximum number of unique values for tags
                          mode:
                            type: string
                            title: Mode
                            description: The method to used to reduce tag value cardinality
                            enum:
                              - exact
                              - probabilistic
                            default: exact
                - if:
                    properties:
                      type:
                        enum:
                          - aggregate
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Aggregate
                        description: >-
                          Aggregates multiple events into a single event using
                          either a tumbling interval window or a sliding
                          interval window.
                        additionalProperties: false
                        properties:
                          group_by:
                            type: array
                            minItems: 1
                            maxItems: 100
                            title: Group By Field Path
                            description: >-
                              When aggregating, group events based on matching
                              values from each of these field paths. Supports
                              nesting via dot-notation.
                            items:
                              type: string
                              title: Field
                              description: The dot-notated property path
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            ui:
                              default_hint:
                                - .name
                                - .namespace
                                - .tags
                          evaluate:
                            additionalProperties:
                              type: string
                            title: Evaluate
                            description: >-
                              How events should be aggregated within an
                              interval.
                            allOf:
                              - if:
                                  properties:
                                    operation:
                                      enum:
                                        - CUSTOM
                                then:
                                  properties:
                                    script:
                                      type: string
                                      title: Script
                                      ui:
                                        display_type: code-editor
                                        options:
                                          language: js
                                      description: >-
                                        The JavaScript representation of an
                                        event aggregation.
                                      minLength: 1
                                      maxLength: 2048
                                      default: >

                                        // Perform custom aggregation of the
                                        current event into the accumulated
                                        event.

                                        // The accumulated event is persisted
                                        across the entire aggregation window.

                                        // The function must return the
                                        accumulated event, which will be emitted
                                        when

                                        // the aggregation window elapses.

                                        function aggregateEvent(accum, event,
                                        metadata, timestamp, annotations) {

                                          return accum
                                        }
                                  required:
                                    - script
                            properties:
                              operation:
                                title: Operation
                                oneOf:
                                  - label: add
                                    description: >-
                                      Adds new values together if they are of
                                      the same type. For counters and gauges the
                                      values are added together. For sets, this
                                      is a union of the elements. For
                                      distribution, the samples are
                                      concatenated. For histograms, values in
                                      the same bucket will be added together.
                                    enum:
                                      - DEFAULT
                                  - label: sum
                                    description: >-
                                      Values are added together. Works for the
                                      GAUGE and COUNT metric types.
                                    enum:
                                      - SUM
                                  - label: minimum
                                    description: >-
                                      Get the minimum value for a series of
                                      events. Works for the GAUGE and COUNT
                                      metric types.
                                    enum:
                                      - MIN
                                  - label: maximum
                                    description: >-
                                      Get the maximum value for a series of
                                      events. Works for the GAUGE and COUNT
                                      metric types.
                                    enum:
                                      - MAX
                                  - label: average
                                    description: >-
                                      Values are averaged together. Works for
                                      the GAUGE and COUNT metric types.
                                    enum:
                                      - AVG
                                  - label: set intersection
                                    description: >-
                                      The aggregate produces a set of unique
                                      values.
                                    enum:
                                      - SET_INTERSECTION
                                  - label: distribution concatenation
                                    description: >-
                                      The aggregate produces a list of values
                                      combined together.
                                    enum:
                                      - DIST_CONCAT
                                  - label: custom
                                    description: >-
                                      Use a custom script to perform
                                      aggregation.
                                    enum:
                                      - CUSTOM
                                ui:
                                  display_type: list
                            required:
                              - operation
                          window:
                            default: {}
                            additionalProperties:
                              type: integer
                            title: Window Type
                            description: >-
                              Sliding windows can overlap, whereas tumbling
                              windows are disjoint. For example, a tumbling
                              window has a fixed time span and any events that
                              fall within the "interval" will be used in the
                              aggregate. Whereas in a sliding window, the
                              aggregation occurs every "window duration" seconds
                              after an event is encountered.
                            allOf:
                              - if:
                                  properties:
                                    type:
                                      enum:
                                        - sliding
                                  required:
                                    - type
                                then:
                                  properties:
                                    window_min:
                                      type: integer
                                      title: Slide Duration (seconds)
                                      description: >-
                                        The amount of time to wait before
                                        creating a new sliding window for future
                                        events.
                                      minimum: 1
                                      maximum: 200
                                      default: 5
                                  required:
                                    - window_min
                            properties:
                              type:
                                type: string
                                title: Type
                                enum:
                                  - tumbling
                                  - sliding
                                default: tumbling
                              interval:
                                type: integer
                                title: Interval (seconds)
                                description: >-
                                  The interval over which events are aggregated
                                  in seconds.
                                default: 5
                                minimum: 1
                                maximum: 90000
                            required:
                              - type
                              - interval
                          event_timestamp:
                            type: string
                            title: Event Timestamp
                            description: >-
                              The path to a field on the event that contains a
                              epoch timestamp value. If an event does not have a
                              timestamp field, events will be associated to the
                              wall clock value when the event is processed.
                            default: timestamp
                            maxLength: 200
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                          conditional:
                            ui:
                              display_type: rules-engine
                            title: Event Flush Condition
                            description: >-
                              Force accumulated event reduction to flush the
                              result when a conditional expression evaluates to
                              true on an inbound event.
                            allOf:
                              - $ref: '#condition-group'
                        required:
                          - evaluate
                          - window
                - if:
                    properties:
                      type:
                        enum:
                          - event-to-metric
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Event to Metric
                        description: >-
                          Allows conversion between arbitrary events and a
                          Metric.
                        additionalProperties: false
                        properties:
                          metric_name:
                            type: string
                            title: Metric Name
                            description: The machine name of the metric to emit.
                            minLength: 1
                            maxLength: 128
                            pattern: ^[a-zA-Z][a-zA-Z0-9_:]*$
                            errorMessage: must be a valid metric name
                          metric_kind:
                            title: Kind
                            description: >-
                              The kind of metric to emit, Absolute or
                              Incremental. Absolute metrics represent a complete
                              value, and will generally replace an existing
                              value for the metric in the target destination.
                              Incremental metrics represent an additive value
                              which is aggregated in the target destination to
                              produce a new value.
                            oneOf:
                              - label: Incremental
                                enum:
                                  - incremental
                              - label: Absolute
                                enum:
                                  - absolute
                            default: incremental
                            ui:
                              display_type: radio-group
                          metric_type:
                            title: Type
                            oneOf:
                              - label: Counter
                                enum:
                                  - counter
                              - label: Sum
                                enum:
                                  - sum
                              - label: Gauge
                                enum:
                                  - gauge
                            default: counter
                            ui:
                              display_type: list
                          value:
                            title: Value
                            description: The value of this metric.
                            additionalProperties: false
                            allOf:
                              - if:
                                  properties:
                                    value_type:
                                      enum:
                                        - field
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      type: string
                                      title: Field value
                                      description: The field to use as the value.
                                      pattern: >-
                                        ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                      errorMessage: >-
                                        Must be a valid data access syntax.
                                        [Syntax
                                        Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                      ui:
                                        display_type: field-reference
                                  required:
                                    - value
                              - if:
                                  properties:
                                    value_type:
                                      enum:
                                        - value
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      type: number
                                      title: Value
                                      description: The value.
                                  required:
                                    - value
                            properties:
                              value_type:
                                title: Value type
                                description: >-
                                  Either a value from an event field, or a new
                                  value input.
                                oneOf:
                                  - label: Value from event field
                                    enum:
                                      - field
                                  - label: New value
                                    enum:
                                      - value
                                default: field
                                ui:
                                  display_type: radio-group
                              value:
                                type:
                                  - number
                                  - string
                            required:
                              - value_type
                          namespace:
                            title: Namespace
                            description: The namespace for this metric.
                            additionalProperties: false
                            allOf:
                              - if:
                                  properties:
                                    value_type:
                                      enum:
                                        - field
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      type: string
                                      title: Field value
                                      description: The field to use as the value.
                                      pattern: >-
                                        ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                      errorMessage: >-
                                        Must be a valid data access syntax.
                                        [Syntax
                                        Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                      ui:
                                        display_type: field-reference
                                  required:
                                    - value
                              - if:
                                  properties:
                                    value_type:
                                      enum:
                                        - value
                                  required:
                                    - value_type
                                then:
                                  title: Value
                                  properties:
                                    value:
                                      type: string
                                      title: Value
                                      description: The value.
                                      minLength: 1
                                      maxLength: 128
                                  required:
                                    - value
                            properties:
                              value_type:
                                title: Value type
                                description: >-
                                  Either a value from an event field, a new
                                  value input, or none to omit the namespace.
                                oneOf:
                                  - label: Value from event field
                                    enum:
                                      - field
                                  - label: New value
                                    enum:
                                      - value
                                  - label: None
                                    enum:
                                      - none
                                default: none
                                ui:
                                  display_type: radio-group
                              value:
                                type:
                                  - string
                                  - 'null'
                            required:
                              - value_type
                          tags:
                            type: array
                            maxItems: 10
                            title: Tags
                            description: >-
                              A set of tags (also called labels) to apply to the
                              metric event.
                            items:
                              type: object
                              title: Tag
                              description: A tag to apply to the metric event.
                              allOf:
                                - if:
                                    properties:
                                      value_type:
                                        enum:
                                          - field
                                  then:
                                    title: Value
                                    properties:
                                      value:
                                        type: string
                                        title: Field value
                                        description: >-
                                          The field to use as the value of this
                                          tag. Note that fields with
                                          highly-variable values will result in
                                          high-cardinality metrics, which may
                                          impact storage or cost in downstream
                                          destinations.
                                        pattern: >-
                                          ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                        errorMessage: >-
                                          Must be a valid data access syntax.
                                          [Syntax
                                          Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                        ui:
                                          display_type: field-reference
                                      fallback:
                                        type: string
                                        title: Fallback value
                                        description: >-
                                          The value to use for this tag when the
                                          field value is missing.
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - value
                                - if:
                                    properties:
                                      value_type:
                                        enum:
                                          - value
                                  then:
                                    title: Value
                                    properties:
                                      value:
                                        type: string
                                        title: Value
                                        description: The value for this tag.
                                        minLength: 1
                                        maxLength: 128
                                    required:
                                      - value
                              properties:
                                name:
                                  type: string
                                  title: Name
                                  description: The tag name
                                  pattern: ^[a-zA-Z][a-zA-Z0-9_]*$
                                  minLength: 1
                                  maxLength: 128
                                  errorMessage: must be a valid metric tag name
                                value_type:
                                  title: Value type
                                  description: >-
                                    Either a value from an event field, or a new
                                    value input.
                                  oneOf:
                                    - label: Value from event field
                                      enum:
                                        - field
                                    - label: New value
                                      enum:
                                        - value
                                  default: field
                                  ui:
                                    display_type: radio-group
                                value:
                                  type: string
                              required:
                                - name
                                - value_type
                                - value
                              additionalProperties:
                                type: string
                        required:
                          - metric_name
                          - metric_kind
                          - metric_type
                          - value
                          - namespace
                - if:
                    properties:
                      type:
                        enum:
                          - clustering
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Clustering
                        description: Finds clusters of similar values
                        additionalProperties: false
                        properties:
                          cluster_field:
                            type: string
                            title: Field
                            description: Field to cluster values on
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                            default: .message
                          similarity_threshold:
                            type: number
                            title: Similarity threshold
                            description: >-
                              A threshold from 0.0 (not similar) to 1.0 (exactly
                              similar) that determines how close two values need
                              to be to be consider as being part of the same
                              cluster
                            default: 0.4
                            minimum: 0
                            maximum: 1
                          max_clusters:
                            type: integer
                            title: Maximum cluster
                            description: >-
                              Maximum number of clusters kept cached by the
                              transform
                            default: 1000
                            minimum: 1
                            maximum: 2000
                          max_node_depth:
                            type: integer
                            title: Maximum tree depth
                            description: Maximum depth of the prefix tree
                            default: 4
                            minimum: 2
                            maximum: 8
                          max_children:
                            type: integer
                            title: Maximum children
                            default: 100
                            minimum: 2
                            maximum: 200
                            description: >-
                              Maximum number of children per node of the prefix
                              tree
                        required:
                          - cluster_field
                - if:
                    properties:
                      type:
                        enum:
                          - redact
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Redact
                        description: >-
                          Detect and anonymize sensitive data in logs and
                          metrics
                        additionalProperties: false
                        properties:
                          field:
                            type: string
                            title: Field
                            description: >-
                              Detect patterns in the specified field. If the
                              field is empty, the processor will look for
                              patterns across all the fields.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            default: .
                            maxLength: 256
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          mask_patterns:
                            type: array
                            title: Redact Patterns
                            description: List of PII patterns to detect and mask
                            minItems: 1
                            maxItems: 20
                            items:
                              type: object
                              additionalProperties:
                                type: string
                              title: Redact Pattern
                              description: A PII pattern to detect and/or anonymize
                              allOf:
                                - if:
                                    properties:
                                      action:
                                        enum:
                                          - Replace
                                    required:
                                      - action
                                  then:
                                    properties:
                                      replacement:
                                        type: string
                                        title: Replacement
                                        description: >-
                                          The text to replace the detected
                                          pattern. Example: 000-00-0000
                                        minLength: 1
                                        maxLength: 512
                                    required:
                                      - replacement
                                - if:
                                    properties:
                                      action:
                                        enum:
                                          - Hash
                                    required:
                                      - action
                                  then:
                                    properties:
                                      algorithm:
                                        title: Algorithm
                                        description: >-
                                          Hash and encode (base16 or hex) matched
                                          PII data using the specified algorithm
                                        oneOf:
                                          - label: sha2 (sha-512_256)
                                            enum:
                                              - sha2
                                          - label: sha3 (sha3-512)
                                            enum:
                                              - sha3
                                        ui:
                                          display_type: list
                                    required:
                                      - algorithm
                                - if:
                                    properties:
                                      name:
                                        enum:
                                          - custom
                                    required:
                                      - name
                                  then:
                                    properties:
                                      custom_options:
                                        allOf:
                                          - type: object
                                            additionalProperties: false
                                            properties:
                                              pattern:
                                                type: string
                                                title: Pattern
                                                description: The custom pattern
                                                minLength: 1
                                                maxLength: 4096
                                              case_sensitive:
                                                type: boolean
                                                title: Case sensitive
                                                description: Perform case sensitive matching
                                                default: true
                                              multiline:
                                                type: boolean
                                                title: Multiline mode
                                                description: >-
                                                  ^ and $ match beginning and end of line
                                                  respectively
                                                default: false
                                              match_newline:
                                                type: boolean
                                                title: Dot all mode
                                                description: Dot matches newline character
                                                default: false
                                              crlf_newline:
                                                type: boolean
                                                title: Carriage return (CRLF) mode
                                                description: "When multiline mode is enabled, newline character is interpreted as \r\n"
                                                default: false
                                              ignore_whitespace:
                                                type: boolean
                                                title: Verbose mode
                                                description: >-
                                                  Ignore whitespace and allow comment
                                                  lines
                                                default: false
                                            required:
                                              - pattern
                                        title: Replace Expression
                                        description: >-
                                          The regular expression used to find
                                          replacements. Named capture groups are
                                          supported, e.g.
                                          `(?P&lt;key&gt;\w+):(?P&lt;value&gt;.+)`.
                                        ui:
                                          display_type: regex-pattern
                                    required:
                                      - custom_options
                              properties:
                                name:
                                  title: Pattern
                                  description: The PII pattern to match
                                  oneOf:
                                    - label: Credit card number
                                      enum:
                                        - credit_card
                                    - label: Email address
                                      enum:
                                        - email_address
                                    - label: IPv4 address
                                      enum:
                                        - ipv4_address
                                    - label: US or Canada phone number
                                      enum:
                                        - us_canada_phone_number
                                    - label: US social security number
                                      enum:
                                        - us_social_security_number
                                    - label: Custom pattern
                                      ui:
                                        feature_flag: pipeline-parser-regex
                                      enum:
                                        - custom
                                  ui:
                                    display_type: list
                                action:
                                  type: string
                                  title: Action
                                  description: Action to take on the detected PII data
                                  enum:
                                    - Hash
                                    - Replace
                                    - Detect Only
                                  default: Replace
                              required:
                                - name
                                - action
                        required:
                          - mask_patterns
                - if:
                    properties:
                      type:
                        enum:
                          - throttle
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Throttle
                        description: >-
                          Throttle (rate-limit) events passing through this
                          component
                        additionalProperties: false
                        properties:
                          threshold:
                            type: number
                            minimum: 1
                            maximum: 10000000
                            title: Limit
                            description: >-
                              The number of events to allow over the time
                              window. If a Key Field is specified, the limit
                              will be applied to events for each unique value of
                              that field.
                            default: 1
                          window_ms:
                            type: number
                            minimum: 1000
                            maximum: 2592000000
                            title: Window
                            description: >-
                              The time window over which the configured limit is
                              applied
                            ui:
                              display_type: milliseconds-to-human-readable
                            default: 5000
                          key_field:
                            type: string
                            title: Key Field
                            description: >-
                              When configured, the value from this field will be
                              used to group events into separate buckets for
                              throttling. If left blank, or if the event does
                              not contain a value in this field, the event will
                              be throttled as part of the default bucket.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          exclude:
                            allOf:
                              - $ref: '#condition-group'
                            title: Exclude
                            description: >-
                              When configured, events matching this condition
                              will not be throttled.
                            ui:
                              display_type: rules-engine
                        required:
                          - threshold
                          - window_ms
                - if:
                    properties:
                      type:
                        enum:
                          - set-timestamp
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Set Timestamp
                        description: >-
                          Parse a list of fields using a chosen time format.
                          First match will override the default timestamp of the
                          event.
                        additionalProperties: false
                        properties:
                          parsers:
                            type: array
                            title: List of Fields and Parsers
                            description: >-
                              The list of fields and parsers to use in order of
                              priority, short-circuiting on the first successful
                              match.
                            ui:
                              display_type: multi-output-map
                              options:
                                sortable: false
                            items:
                              type: object
                              properties:
                                field:
                                  type: string
                                  title: Field
                                  description: >-
                                    The field whose value will be parsed by the
                                    chosen date pattern
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                  default: .
                                  maxLength: 512
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                options:
                                  $ref: '#timestamp-parser-options'
                              required:
                                - field
                                - options
                            minItems: 1
                        required:
                          - parsers
                - if:
                    properties:
                      type:
                        enum:
                          - data-profiler
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        type: object
                        title: Data Profiler
                        description: >-
                          Profile the data sent through your pipeline. The
                          system will generate annotations such as event type
                          and total bytes to be used downstream. It will also
                          normalize the app/host/level/line fields before
                          sending the event downstream. A profile of the data
                          including total, events, event size, log composition,
                          and message templates will be generated as well.
                        additionalProperties: false
                        properties:
                          app_fields:
                            type: array
                            title: App Path(s)
                            description: A list of paths to look for the app value
                            minItems: 1
                            maxItems: 10
                            uniqueItems: true
                            items:
                              type: string
                              title: App
                              description: The path to the app
                              maxLength: 512
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            ui:
                              default_hint:
                                - .app
                                - .application
                                - .container
                          host_fields:
                            type: array
                            title: Host Path(s)
                            description: A list of paths to look for the host value
                            minItems: 1
                            maxItems: 10
                            uniqueItems: true
                            items:
                              type: string
                              title: Host
                              description: The path to the host
                              maxLength: 512
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            ui:
                              default_hint:
                                - .host
                                - .hostname
                          level_fields:
                            type: array
                            title: Level Path(s)
                            description: A list of paths to look for the log level
                            minItems: 1
                            maxItems: 10
                            uniqueItems: true
                            items:
                              type: string
                              title: Level
                              description: The path to the level
                              maxLength: 512
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            ui:
                              default_hint:
                                - .level
                                - .log_level
                          line_fields:
                            type: array
                            title: Line Path(s)
                            description: A list of paths to look for the event line
                            minItems: 1
                            maxItems: 10
                            uniqueItems: true
                            items:
                              type: string
                              title: Line
                              description: The path to the line
                              maxLength: 512
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            ui:
                              default_hint:
                                - .line
                                - .message
                          label_fields:
                            type: array
                            title: Label Path(s)
                            description: A list of paths to look for the event labels
                            maxItems: 10
                            uniqueItems: true
                            items:
                              type: string
                              title: Label
                              description: The path to the labels
                              maxLength: 512
                              pattern: >-
                                ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                              errorMessage:
                                pattern: >-
                                  Must be a valid data access syntax. [Syntax
                                  Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                              ui:
                                display_type: field-reference
                            ui:
                              default_hint:
                                - .labels
                          field_summary:
                            type: boolean
                            default: false
                            title: Field Summary
                            description: >-
                              If enabled the profiler will attempt to summarize
                              the values in fields of events passing through the
                              node.
                            ui:
                              display_type: hidden
                              ff_default_value: pipeline-node-transform-field-summary
                        required:
                          - app_fields
                          - host_fields
                          - level_fields
                          - line_fields
                - if:
                    properties:
                      type:
                        enum:
                          - replace
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Replace
                        description: >-
                          Replace parts of a string using a regular expression
                          or static string
                        additionalProperties:
                          type: object
                        allOf:
                          - if:
                              properties:
                                replacement_type:
                                  enum:
                                    - regex
                              required:
                                - replacement_type
                            then:
                              properties:
                                options:
                                  allOf:
                                    - type: object
                                      additionalProperties: false
                                      properties:
                                        pattern:
                                          type: string
                                          minLength: 1
                                          maxLength: 4096
                                        case_sensitive:
                                          type: boolean
                                          title: Case sensitive
                                          description: Perform case sensitive matching
                                          default: true
                                        multiline:
                                          type: boolean
                                          title: Multiline mode
                                          description: >-
                                            ^ and $ match beginning and end of line
                                            respectively
                                          default: false
                                        match_newline:
                                          type: boolean
                                          title: Dot all mode
                                          description: Dot matches newline character
                                          default: false
                                        crlf_newline:
                                          type: boolean
                                          title: Carriage return (CRLF) mode
                                          description: "When multiline mode is enabled, newline character is interpreted as \r\n"
                                          default: false
                                        ignore_whitespace:
                                          type: boolean
                                          title: Verbose mode
                                          description: >-
                                            Ignore whitespace and allow comment
                                            lines
                                          default: false
                                      required:
                                        - pattern
                                  title: Replace Expression
                                  description: >-
                                    The regular expression used to find
                                    replacements. Named capture groups are
                                    supported, e.g.
                                    `(?P&lt;key&gt;\w+):(?P&lt;value&gt;.+)`.
                                  ui:
                                    display_type: regex-pattern
                                replace_with:
                                  type: string
                                  minLength: 1
                                  maxLength: 4096
                                  title: Replacement String
                                  description: >-
                                    The replacement string can be static or
                                    optionally contain capture group references.
                                    Capture groups can be positional or named.
                                    For example, to switch the position of two
                                    strings in the source string `onetwo`, the
                                    pattern could be `(?P<one>one)(?P<two>.+)`,
                                    and the replacement would be `$two$one`. To
                                    do the same thing with positional capture
                                    groups, a pattern of `(\w{3})(\w{3})`, and a
                                    replacement of `$2$1` would have the same
                                    result. <br><br>To render a literal dollar
                                    sign `$` in the replacement, escape it with
                                    `$$`. So, if you had a capture group named
                                    `price`, to prepend a dollar sign to the
                                    replacement, you would use `$$$price`.
                              required:
                                - options
                                - replace_with
                          - if:
                              properties:
                                replacement_type:
                                  enum:
                                    - string
                              required:
                                - replacement_type
                            then:
                              properties:
                                string_pattern:
                                  type: string
                                  title: String Pattern
                                  minLength: 1
                                  maxLength: 4096
                                  description: >-
                                    A static, case-sensitive string, which will
                                    be searched and replaced.
                                replace_with:
                                  type: string
                                  minLength: 1
                                  maxLength: 4096
                                  title: Replacement String
                                  description: The static string used in each replacement.
                              required:
                                - string_pattern
                                - replace_with
                        properties:
                          source_field:
                            type: string
                            title: Source Field
                            description: >-
                              The field that contains a string for replacement
                              to operate on.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            default: .
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                          max_times:
                            type: number
                            title: Maximum Replacements
                            description: >-
                              The maximum number of replacements to be made. If
                              not specified, all occurrences will be replaced.
                            minimum: 1
                          replacement_type:
                            title: Replacement Type
                            description: >-
                              Specifies how the source string will be searched
                              for replacement.
                            ui:
                              display_type: list
                            errorMessage: must be one of the available pattern types
                            oneOf:
                              - label: String
                                description: Replace a specified string one or more times.
                                enum:
                                  - string
                              - label: Regular Expression
                                description: Replace using a regular expression.
                                enum:
                                  - regex
                        required:
                          - source_field
                          - replacement_type
                - if:
                    properties:
                      type:
                        enum:
                          - trace-sampling
                      deploy_type:
                        anyOf:
                          - enum:
                              - saas
                          - type: 'null'
                    required:
                      - type
                  then:
                    properties:
                      user_config:
                        title: Trace Sampling
                        description: >-
                          Performs sampling of traces per a given rate using the
                          Trace ID as the unique identifier. If a trace is rate
                          selected, all spans of the trace are forwarded. If the
                          Trace ID cannot be found, the event is dropped.
                        allOf:
                          - if:
                              properties:
                                sample_type:
                                  enum:
                                    - head
                            then:
                              properties:
                                rate:
                                  type: integer
                                  title: Rate
                                  description: >-
                                    The rate at which events will be forwarded,
                                    expressed as 1/N. For example, `rate = 10`
                                    means 1 out of every 10 unique traces will
                                    be forwarded and all others will be dropped
                                  default: 10
                                  minimum: 2
                                  maximum: 100000
                                parent_span_id_field:
                                  type: 'null'
                                conditionals:
                                  type: 'null'
                              required:
                                - rate
                          - if:
                              properties:
                                sample_type:
                                  enum:
                                    - tail
                            then:
                              properties:
                                parent_span_id_field:
                                  type: string
                                  default: .parent_span_id
                                  title: Parent Span ID
                                  description: >-
                                    The field to use as the parent span
                                    identifier
                                  pattern: >-
                                    ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                                  errorMessage:
                                    pattern: >-
                                      Must be a valid data access syntax.
                                      [Syntax
                                      Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                                  ui:
                                    display_type: field-reference
                                conditionals:
                                  type: array
                                  minItems: 1
                                  title: Conditionals
                                  description: >-
                                    A list of complete conditionals, including
                                    expressions and a sample rate to maintain
                                  items:
                                    type: object
                                    additionalProperties: false
                                    title: Conditional
                                    description: >-
                                      A list of conditions and a sample rate to
                                      maintain
                                    properties:
                                      rate:
                                        type: integer
                                        title: Rate
                                        description: >-
                                          The rate at which events will be
                                          forwarded, expressed as 1/N. For
                                          example, `rate = 10` means 1 out of
                                          every 10 unique traces will be forwarded
                                          and all others will be dropped. A `rate
                                          = 1` means keep all traces that match
                                          the condition.
                                        minimum: 1
                                        maximum: 100000
                                        default: 10
                                      conditional:
                                        allOf:
                                          - $ref: '#condition-group'
                                        title: Conditional
                                        description: >-
                                          A group of expressions joined together
                                          by an and/or operator.
                                        ui:
                                          display_type: rules-engine
                                      _output_name:
                                        type: string
                                        title: '[INTERNAL]'
                                        description: >-
                                          Internal-only field that holds a static
                                          id for the output_name. This way, labels
                                          for outputs can be updated independent
                                          of the id.
                                    required:
                                      - rate
                                      - conditional
                              required:
                                - parent_span_id_field
                                - conditionals
                        properties:
                          sample_type:
                            type: string
                            description: The type of trace sampling to apply.
                            enum:
                              - head
                            title: Sample Type
                            default: head
                          trace_id_field:
                            type: string
                            default: .trace_id
                            title: Trace ID
                            description: The field to use as the identifier of a trace.
                            pattern: >-
                              ^(?:timestamp|annotations|metadata|message|\.|(?:metadata|message|annotations)?(?:\.\w+\w*(?:\[\d+\])?|(?:\."(?:.+?)+"(:?\[\d+\])?))+)$
                            errorMessage:
                              pattern: >-
                                Must be a valid data access syntax. [Syntax
                                Reference](https://docs.mezmo.com/telemetry-pipelines/syntax-for-editing-pipeline-component-configuration-values#data-fields)
                            ui:
                              display_type: field-reference
                        required:
                          - sample_type
                          - trace_id_field
              properties:
                title:
                  oneOf:
                    - type: string
                      minLength: 1
                      maxLength: 512
                      pattern: ^[^<>"]+$
                    - type: 'null'
                  errorMessage: invalid title name
                description:
                  oneOf:
                    - type: string
                      minLength: 1
                      pattern: ^[^<>"]+$
                    - type: 'null'
                  errorMessage: invalid description
                type:
                  type: string
                  enum:
                    - filter
                    - sample
                    - drop-fields
                    - parse
                    - parse-sequentially
                    - route
                    - stringify
                    - compact-fields
                    - flatten-fields
                    - dedupe
                    - encrypt-fields
                    - decrypt-fields
                    - js-script
                    - unroll
                    - vrl
                    - reduce
                    - map-fields
                    - metrics-tag-cardinality-limit
                    - aggregate
                    - event-to-metric
                    - clustering
                    - redact
                    - throttle
                    - set-timestamp
                    - data-profiler
                    - replace
                    - trace-sampling
                deploy_type:
                  type: string
                  enum:
                    - saas
                    - local
                  default: saas
                user_config:
                  type: object
                generation_id:
                  type: integer
                inputs:
                  type: array
                  items:
                    type: string
              required:
                - type
                - user_config
                - generation_id
                - inputs
        required: true
      responses:
        '200':
          description: Default Response
components:
  securitySchemes:
    PipelineServiceKey:
      type: apiKey
      name: Authorization
      in: header
      description: 'Enter your token in the format: Token mytokengoeshere'

````