---
title: "Create a pipeline"
method: POST
path: "/api/v1/logs/config/pipelines"
tags: ["Logs Pipelines"]
---

# Create a pipeline

`POST /api/v1/logs/config/pipelines`

Create a pipeline in your organization.

## Request body

- LogsPipeline — Pipelines and processors operate on incoming logs, parsing and transforming them into structured attributes for easier querying. **Note**: These endpoints are only available for admin users. Make sure to use an application key created by an admin.
  - `description` string — A description of the pipeline.
  - `filter` LogsFilter — Filter for logs.
    - `query` string — The filter query.
  - `id` string — ID of the pipeline.
  - `is_enabled` boolean — Whether or not the pipeline is enabled.
  - `is_read_only` boolean — Whether or not the pipeline can be edited.
  - `name` string, required — Name of the pipeline.
  - `processors` LogsProcessor[] — Ordered list of processors in this pipeline.
    - union — Definition of a logs processor.
      - LogsGrokParser — Create custom grok rules to parse the full message or [a specific attribute of your raw event](https://docs.datadoghq.com/logs/log_configuration/parsing/#advanced-settings). For more information, see the [parsing section](https://docs.datadoghq.com/logs/log_configuration/parsing).
        - `grok` LogsGrokParserRules, required — Set of rules for the grok parser.
          - `match_rules` string, required — List of match rules for the grok parser, separated by a new line.
          - `support_rules` string — List of support rules for the grok parser, separated by a new line.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `samples` string[] — List of sample logs to test this grok parser.
        - `source` string, required — Name of the log attribute to parse.
        - `type` 'grok-parser', required — Type of logs grok parser.
      - LogsDateRemapper — As Datadog receives logs, it timestamps them using the value(s) from any of these default attributes. - `timestamp` - `date` - `_timestamp` - `Timestamp` - `eventTime` - `published_date` If your logs put their dates in an attribute not in this list, use the log date Remapper Processor to define their date attribute as the official log timestamp. The recognized date formats are ISO8601, UNIX (the milliseconds EPOCH format), and RFC3164. **Note:** If your logs don’t contain any of the default attributes and you haven’t defined your own date attribute, Datadog timestamps the logs with the date it received them. If multiple log date remapper processors can be applied to a given log, only the first one (according to the pipelines order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'date-remapper', required — Type of logs date remapper.
      - LogsStatusRemapper — Use this Processor if you want to assign some attributes as the official status. Each incoming status value is mapped as follows. - Integers from 0 to 7 map to the Syslog severity standards - Strings beginning with `emerg` or f (case-insensitive) map to `emerg` (0) - Strings beginning with `a` (case-insensitive) map to `alert` (1) - Strings beginning with `c` (case-insensitive) map to `critical` (2) - Strings beginning with `err` (case-insensitive) map to `error` (3) - Strings beginning with `w` (case-insensitive) map to `warning` (4) - Strings beginning with `n` (case-insensitive) map to `notice` (5) - Strings beginning with `i` (case-insensitive) map to `info` (6) - Strings beginning with `d`, `trace` or `verbose` (case-insensitive) map to `debug` (7) - Strings beginning with `o` or matching `OK` or `Success` (case-insensitive) map to OK - All others map to `info` (6) **Note:** If multiple log status remapper processors can be applied to a given log, only the first one (according to the pipelines order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'status-remapper', required — Type of logs status remapper.
      - LogsServiceRemapper — Use this processor if you want to assign one or more attributes as the official service. **Note:** If multiple service remapper processors can be applied to a given log, only the first one (according to the pipeline order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'service-remapper', required — Type of logs service remapper.
      - LogsMessageRemapper — The message is a key attribute in Datadog. It is displayed in the message column of the Log Explorer and you can do full string search on it. Use this Processor to define one or more attributes as the official log message. **Note:** If multiple log message remapper processors can be applied to a given log, only the first one (according to the pipeline order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'message-remapper', required — Type of logs message remapper.
      - LogsAttributeRemapper — The remapper processor remaps any source attribute(s) or tag to another target attribute or tag. Constraints on the tag/attribute name are explained in the [Tag Best Practice documentation](https://docs.datadoghq.com/logs/guide/log-parsing-best-practice). Some additional constraints are applied as `:` or `,` are not allowed in the target tag/attribute name.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `override_on_conflict` boolean — Override or not the target element if already set,
        - `preserve_source` boolean — Remove or preserve the remapped source element.
        - `source_type` string — Defines if the sources are from log `attribute` or `tag`.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Final attribute or tag name to remap the sources to.
        - `target_format` 'auto' | 'string' | 'integer' | 'double' — If the `target_type` of the remapper is `attribute`, try to cast the value to a new specific type. If the cast is not possible, the original type is kept. `string`, `integer`, or `double` are the possible types. If the `target_type` is `tag`, this parameter may not be specified.
        - `target_type` string — Defines if the final attribute or tag name is from log `attribute` or `tag`.
        - `type` 'attribute-remapper', required — Type of logs attribute remapper.
      - LogsURLParser — This processor extracts query parameters and other important parameters from a URL.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `normalize_ending_slashes` boolean, nullable — Normalize the ending slashes or not.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'url-parser', required — Type of logs URL parser.
      - LogsUserAgentParser — The User-Agent parser takes a User-Agent attribute and extracts the OS, browser, device, and other user data. It recognizes major bots like the Google Bot, Yahoo Slurp, and Bing.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_encoded` boolean — Define if the source attribute is URL encoded or not.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'user-agent-parser', required — Type of logs User-Agent parser.
      - LogsCategoryProcessor — Use the Category Processor to add a new attribute (without spaces or special characters in the new attribute name) to a log matching a provided search query. Use categories to create groups for an analytical view. For example, URL groups, machine groups, environments, and response time buckets. **Notes**: - The syntax of the query is the one of Logs Explorer search bar. The query can be done on any log attribute or tag, whether it is a facet or not. Wildcards can also be used inside your query. - Once the log has matched one of the Processor queries, it stops. Make sure they are properly ordered in case a log could match several queries. - The names of the categories must be unique. - Once defined in the Category Processor, you can map categories to log status using the Log Status Remapper.
        - `categories` LogsCategoryProcessorCategory[], required — Array of filters to match or not a log and their corresponding `name` to assign a custom value to the log.
          - `filter` LogsFilter — Filter for logs.
            - `query` string — The filter query.
          - `name` string — Value to assign to the target attribute.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `target` string, required — Name of the target attribute which value is defined by the matching category.
        - `type` 'category-processor', required — Type of logs category processor.
      - LogsArithmeticProcessor — Use the Arithmetic Processor to add a new attribute (without spaces or special characters in the new attribute name) to a log with the result of the provided formula. This enables you to remap different time attributes with different units into a single attribute, or to compute operations on attributes within the same log. The formula can use parentheses and the basic arithmetic operators `-`, `+`, `*`, `/`. By default, the calculation is skipped if an attribute is missing. Select “Replace missing attribute by 0” to automatically populate missing attribute values with 0 to ensure that the calculation is done. An attribute is missing if it is not found in the log attributes, or if it cannot be converted to a number. *Notes*: - The operator `-` needs to be space split in the formula as it can also be contained in attribute names. - If the target attribute already exists, it is overwritten by the result of the formula. - Results are rounded up to the 9th decimal. For example, if the result of the formula is `0.1234567891`, the actual value stored for the attribute is `0.123456789`. - If you need to scale a unit of measure, see [Scale Filter](https://docs.datadoghq.com/logs/log_configuration/parsing/?tab=filter#matcher-and-filter).
        - `expression` string, required — Arithmetic operation between one or more log attributes.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_replace_missing` boolean — If `true`, it replaces all missing attributes of expression by `0`, `false` skip the operation if an attribute is missing.
        - `name` string — Name of the processor.
        - `target` string, required — Name of the attribute that contains the result of the arithmetic operation.
        - `type` 'arithmetic-processor', required — Type of logs arithmetic processor.
      - LogsStringBuilderProcessor — Use the string builder processor to add a new attribute (without spaces or special characters) to a log with the result of the provided template. This enables aggregation of different attributes or raw strings into a single attribute. The template is defined by both raw text and blocks with the syntax `%{attribute_path}`. **Notes**: - The processor only accepts attributes with values or an array of values in the blocks. - If an attribute cannot be used (object or array of object), it is replaced by an empty string or the entire operation is skipped depending on your selection. - If the target attribute already exists, it is overwritten by the result of the template. - Results of the template cannot exceed 256 characters.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_replace_missing` boolean — If true, it replaces all missing attributes of `template` by an empty string. If `false` (default), skips the operation for missing attributes.
        - `name` string — Name of the processor.
        - `target` string, required — The name of the attribute that contains the result of the template.
        - `template` string, required — A formula with one or more attributes and raw text.
        - `type` 'string-builder-processor', required — Type of logs string builder processor.
      - LogsPipelineProcessor — Nested Pipelines are pipelines within a pipeline. Use Nested Pipelines to split the processing into two steps. For example, first use a high-level filtering such as team and then a second level of filtering based on the integration, service, or any other tag or attribute. A pipeline can contain Nested Pipelines and Processors whereas a Nested Pipeline can only contain Processors.
        - `description` string — A description of the pipeline.
        - `filter` LogsFilter — Filter for logs.
          - `query` string — The filter query.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `processors` LogsProcessor[] — Ordered list of processors in this pipeline.
        - `tags` string[] — A list of tags associated with the pipeline.
        - `type` 'pipeline', required — Type of logs pipeline processor.
      - LogsGeoIPParser — The GeoIP parser takes an IP address attribute and extracts if available the Continent, Country, Subdivision, and City information in the target attribute path.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'geo-ip-parser', required — Type of GeoIP parser.
      - LogsLookupProcessor — Use the Lookup Processor to define a mapping between a log attribute and a human readable value saved in the processors mapping table. For example, you can use the Lookup Processor to map an internal service ID into a human readable service name. Alternatively, you could also use it to check if the MAC address that just attempted to connect to the production environment belongs to your list of stolen machines.
        - `default_lookup` string — Value to set the target attribute if the source value is not found in the list.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `lookup_table` string[], required — Mapping table of values for the source attribute and their associated target attribute values, formatted as `["source_key1,target_value1", "source_key2,target_value2"]`
        - `name` string — Name of the processor.
        - `source` string, required — Source attribute used to perform the lookup.
        - `target` string, required — Name of the attribute that contains the corresponding value in the mapping list or the `default_lookup` if not found in the mapping list.
        - `type` 'lookup-processor', required — Type of logs lookup processor.
      - ReferenceTableLogsLookupProcessor — **Note**: Reference Tables are in public beta. Use the Lookup Processor to define a mapping between a log attribute and a human readable value saved in a Reference Table. For example, you can use the Lookup Processor to map an internal service ID into a human readable service name. Alternatively, you could also use it to check if the MAC address that just attempted to connect to the production environment belongs to your list of stolen machines.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `lookup_enrichment_table` string, required — Name of the Reference Table for the source attribute and their associated target attribute values.
        - `name` string — Name of the processor.
        - `source` string, required — Source attribute used to perform the lookup.
        - `target` string, required — Name of the attribute that contains the corresponding value in the mapping list.
        - `type` 'lookup-processor', required — Type of logs lookup processor.
      - LogsTraceRemapper — There are two ways to improve correlation between application traces and logs. 1. Follow the documentation on [how to inject a trace ID in the application logs](https://docs.datadoghq.com/tracing/connect_logs_and_traces) and by default log integrations take care of all the rest of the setup. 2. Use the Trace remapper processor to define a log attribute as its associated trace ID.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[] — Array of source attributes.
        - `type` 'trace-id-remapper', required — Type of logs trace remapper.
      - LogsSpanRemapper — There are two ways to define correlation between application spans and logs: 1. Follow the documentation on [how to inject a span ID in the application logs](https://docs.datadoghq.com/tracing/connect_logs_and_traces). Log integrations automatically handle all remaining setup steps by default. 2. Use the span remapper processor to define a log attribute as its associated span ID.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[] — Array of source attributes.
        - `type` 'span-id-remapper', required — Type of logs span remapper.
      - LogsArrayProcessor — A processor for extracting, aggregating, or transforming values from JSON arrays within your logs. Supported operations are: - Select value from matching element - Compute array length - Append a value to an array
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `operation` union, required — Configuration of the array processor operation to perform.
          - LogsArrayProcessorOperationAppend — Operation that appends a value to a target array attribute.
            - `preserve_source` boolean — Remove or preserve the remapped source element.
            - `source` string, required — Attribute path containing the value to append.
            - `target` string, required — Attribute path of the array to append to.
            - `type` 'append', required — Operation type.
          - LogsArrayProcessorOperationLength — Operation that computes the length of a `source` array and stores the result in the `target` attribute.
            - `source` string, required — Attribute path of the array to measure.
            - `target` string, required — Attribute that receives the computed length.
            - `type` 'length', required — Operation type.
          - LogsArrayProcessorOperationSelect — Operation that finds an object in a `source` array using a `filter`, and then extracts a specific value into the `target` attribute.
            - `filter` string, required — Filter condition expressed as `key:value` used to find the matching element.
            - `source` string, required — Attribute path of the array to search into.
            - `target` string, required — Attribute that receives the extracted value.
            - `type` 'select', required — Operation type.
            - `value_to_extract` string, required — Key of the value to extract from the matching element.
        - `type` 'array-processor', required — Type of logs array processor.
      - LogsDecoderProcessor — The decoder processor decodes any source attribute containing a base64/base16-encoded UTF-8/ASCII string back to its original value, storing the result in a target attribute.
        - `binary_to_text_encoding` 'base64' | 'base16', required — The encoding used to represent the binary data.
        - `input_representation` 'utf_8' | 'integer', required — The original representation of input string.
        - `is_enabled` boolean — Whether the processor is enabled.
        - `name` string — Name of the processor.
        - `source` string, required — Name of the log attribute with the encoded data.
        - `target` string, required — Name of the log attribute that contains the decoded data.
        - `type` 'decoder-processor', required — Type of logs decoder processor.
      - LogsSchemaProcessor — A processor that has additional validations and checks for a given schema. Currently supported schema types include OCSF.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `mappers` LogsSchemaMapper[], required — The `LogsSchemaProcessor` `mappers`.
          - union — Configuration of the schema processor mapper to use.
            - LogsSchemaRemapper — The schema remapper maps source log fields to their correct fields.
              - …
            - LogsSchemaCategoryMapper — Use the Schema Category Mapper to categorize log event into enum fields. In the case of OCSF, they can be used to map sibling fields which are composed of an ID and a name. **Notes**: - The syntax of the query is the one of Logs Explorer search bar. The query can be done on any log attribute or tag, whether it is a facet or not. Wildcards can also be used inside your query. - Categories are executed in order and processing stops at the first match. Make sure categories are properly ordered in case a log could match multiple queries. - Sibling fields always have a numerical ID field and a human-readable string name. - A fallback section handles cases where the name or ID value matches a specific value. If the name matches "Other" or the ID matches 99, the value of the sibling name field will be pulled from a source field from the original log.
              - …
        - `name` string, required — Name of the processor.
        - `schema` LogsSchemaData, required — Configuration of the schema data to use.
          - `class_name` string, required — Class name of the schema to use.
          - `class_uid` integer, required — Class UID of the schema to use.
          - `profiles` string[] — Optional list of profiles to modify the schema.
          - `schema_type` string, required — Type of schema to use.
          - `version` string, required — Version of the schema to use.
        - `type` 'schema-processor', required — Type of logs schema processor.
      - LogsExcludeAttributeProcessor — Use this processor to remove an attribute from a log during processing. The processor strips the specified attribute from the log event, which is useful when the attribute contains sensitive data or is no longer needed downstream.
        - `attribute_to_exclude` string, required — Name of the log attribute to remove from the log event.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `type` 'exclude-attribute', required — Type of logs exclude attribute processor.
      - LogsArrayMapProcessor — The array-map processor transforms each element of a source array by applying sub-processors in order and collecting the results into a target array. Results can be written to a new array, to the source array (in-place), or to an existing target array. Sub-processors can read from `$sourceElem.<field>` (object element field), bare `$sourceElem` (primitive element), or any parent log attribute path. Sub-processors write to `$targetElem.<field>` (object output field) or bare `$targetElem` (primitive output).
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `preserve_source` boolean — When `false` and `source != target`, the source attribute is removed after processing. Cannot be `false` when `source == target`.
        - `processors` LogsArrayMapSubProcessor[], required — Sub-processors applied to each element. Allowed types: `attribute-remapper`, `string-builder-processor`, `arithmetic-processor`, `category-processor`.
          - union — A sub-processor used inside an array-map processor. Allowed types: `attribute-remapper`, `string-builder-processor`, `arithmetic-processor`, `category-processor`.
            - LogsArrayMapAttributeRemapper — An attribute remapper sub-processor for use inside an array-map processor. Unlike the top-level attribute remapper, `is_enabled`, `source_type`, and `target_type` are not supported.
              - …
            - LogsArrayMapArithmeticSubProcessor — An arithmetic sub-processor for use inside an array-map processor. Unlike the top-level arithmetic processor, `is_enabled` is not supported.
              - …
            - LogsArrayMapStringBuilderSubProcessor — A string builder sub-processor for use inside an array-map processor. Unlike the top-level string builder processor, `is_enabled` is not supported.
              - …
            - LogsArrayMapCategorySubProcessor — A category sub-processor for use inside an array-map processor. Unlike the top-level category processor, `is_enabled` is not supported.
              - …
        - `source` string, required — Attribute path of the source array. Elements are read-only via `$sourceElem` inside sub-processors.
        - `target` string, required — Attribute path of the output array. Sub-processors write to `$targetElem` (or `$targetElem.<field>`) to build each output element.
        - `type` 'array-map-processor', required — Type of logs array-map processor.
  - `tags` string[] — A list of tags associated with the pipeline.
  - `type` string — Type of pipeline.

## Response `200`

OK

- LogsPipeline — Pipelines and processors operate on incoming logs, parsing and transforming them into structured attributes for easier querying. **Note**: These endpoints are only available for admin users. Make sure to use an application key created by an admin.
  - `description` string — A description of the pipeline.
  - `filter` LogsFilter — Filter for logs.
    - `query` string — The filter query.
  - `id` string — ID of the pipeline.
  - `is_enabled` boolean — Whether or not the pipeline is enabled.
  - `is_read_only` boolean — Whether or not the pipeline can be edited.
  - `name` string, required — Name of the pipeline.
  - `processors` LogsProcessor[] — Ordered list of processors in this pipeline.
    - union — Definition of a logs processor.
      - LogsGrokParser — Create custom grok rules to parse the full message or [a specific attribute of your raw event](https://docs.datadoghq.com/logs/log_configuration/parsing/#advanced-settings). For more information, see the [parsing section](https://docs.datadoghq.com/logs/log_configuration/parsing).
        - `grok` LogsGrokParserRules, required — Set of rules for the grok parser.
          - `match_rules` string, required — List of match rules for the grok parser, separated by a new line.
          - `support_rules` string — List of support rules for the grok parser, separated by a new line.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `samples` string[] — List of sample logs to test this grok parser.
        - `source` string, required — Name of the log attribute to parse.
        - `type` 'grok-parser', required — Type of logs grok parser.
      - LogsDateRemapper — As Datadog receives logs, it timestamps them using the value(s) from any of these default attributes. - `timestamp` - `date` - `_timestamp` - `Timestamp` - `eventTime` - `published_date` If your logs put their dates in an attribute not in this list, use the log date Remapper Processor to define their date attribute as the official log timestamp. The recognized date formats are ISO8601, UNIX (the milliseconds EPOCH format), and RFC3164. **Note:** If your logs don’t contain any of the default attributes and you haven’t defined your own date attribute, Datadog timestamps the logs with the date it received them. If multiple log date remapper processors can be applied to a given log, only the first one (according to the pipelines order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'date-remapper', required — Type of logs date remapper.
      - LogsStatusRemapper — Use this Processor if you want to assign some attributes as the official status. Each incoming status value is mapped as follows. - Integers from 0 to 7 map to the Syslog severity standards - Strings beginning with `emerg` or f (case-insensitive) map to `emerg` (0) - Strings beginning with `a` (case-insensitive) map to `alert` (1) - Strings beginning with `c` (case-insensitive) map to `critical` (2) - Strings beginning with `err` (case-insensitive) map to `error` (3) - Strings beginning with `w` (case-insensitive) map to `warning` (4) - Strings beginning with `n` (case-insensitive) map to `notice` (5) - Strings beginning with `i` (case-insensitive) map to `info` (6) - Strings beginning with `d`, `trace` or `verbose` (case-insensitive) map to `debug` (7) - Strings beginning with `o` or matching `OK` or `Success` (case-insensitive) map to OK - All others map to `info` (6) **Note:** If multiple log status remapper processors can be applied to a given log, only the first one (according to the pipelines order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'status-remapper', required — Type of logs status remapper.
      - LogsServiceRemapper — Use this processor if you want to assign one or more attributes as the official service. **Note:** If multiple service remapper processors can be applied to a given log, only the first one (according to the pipeline order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'service-remapper', required — Type of logs service remapper.
      - LogsMessageRemapper — The message is a key attribute in Datadog. It is displayed in the message column of the Log Explorer and you can do full string search on it. Use this Processor to define one or more attributes as the official log message. **Note:** If multiple log message remapper processors can be applied to a given log, only the first one (according to the pipeline order) is taken into account.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `type` 'message-remapper', required — Type of logs message remapper.
      - LogsAttributeRemapper — The remapper processor remaps any source attribute(s) or tag to another target attribute or tag. Constraints on the tag/attribute name are explained in the [Tag Best Practice documentation](https://docs.datadoghq.com/logs/guide/log-parsing-best-practice). Some additional constraints are applied as `:` or `,` are not allowed in the target tag/attribute name.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `override_on_conflict` boolean — Override or not the target element if already set,
        - `preserve_source` boolean — Remove or preserve the remapped source element.
        - `source_type` string — Defines if the sources are from log `attribute` or `tag`.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Final attribute or tag name to remap the sources to.
        - `target_format` 'auto' | 'string' | 'integer' | 'double' — If the `target_type` of the remapper is `attribute`, try to cast the value to a new specific type. If the cast is not possible, the original type is kept. `string`, `integer`, or `double` are the possible types. If the `target_type` is `tag`, this parameter may not be specified.
        - `target_type` string — Defines if the final attribute or tag name is from log `attribute` or `tag`.
        - `type` 'attribute-remapper', required — Type of logs attribute remapper.
      - LogsURLParser — This processor extracts query parameters and other important parameters from a URL.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `normalize_ending_slashes` boolean, nullable — Normalize the ending slashes or not.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'url-parser', required — Type of logs URL parser.
      - LogsUserAgentParser — The User-Agent parser takes a User-Agent attribute and extracts the OS, browser, device, and other user data. It recognizes major bots like the Google Bot, Yahoo Slurp, and Bing.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_encoded` boolean — Define if the source attribute is URL encoded or not.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'user-agent-parser', required — Type of logs User-Agent parser.
      - LogsCategoryProcessor — Use the Category Processor to add a new attribute (without spaces or special characters in the new attribute name) to a log matching a provided search query. Use categories to create groups for an analytical view. For example, URL groups, machine groups, environments, and response time buckets. **Notes**: - The syntax of the query is the one of Logs Explorer search bar. The query can be done on any log attribute or tag, whether it is a facet or not. Wildcards can also be used inside your query. - Once the log has matched one of the Processor queries, it stops. Make sure they are properly ordered in case a log could match several queries. - The names of the categories must be unique. - Once defined in the Category Processor, you can map categories to log status using the Log Status Remapper.
        - `categories` LogsCategoryProcessorCategory[], required — Array of filters to match or not a log and their corresponding `name` to assign a custom value to the log.
          - `filter` LogsFilter — Filter for logs.
            - `query` string — The filter query.
          - `name` string — Value to assign to the target attribute.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `target` string, required — Name of the target attribute which value is defined by the matching category.
        - `type` 'category-processor', required — Type of logs category processor.
      - LogsArithmeticProcessor — Use the Arithmetic Processor to add a new attribute (without spaces or special characters in the new attribute name) to a log with the result of the provided formula. This enables you to remap different time attributes with different units into a single attribute, or to compute operations on attributes within the same log. The formula can use parentheses and the basic arithmetic operators `-`, `+`, `*`, `/`. By default, the calculation is skipped if an attribute is missing. Select “Replace missing attribute by 0” to automatically populate missing attribute values with 0 to ensure that the calculation is done. An attribute is missing if it is not found in the log attributes, or if it cannot be converted to a number. *Notes*: - The operator `-` needs to be space split in the formula as it can also be contained in attribute names. - If the target attribute already exists, it is overwritten by the result of the formula. - Results are rounded up to the 9th decimal. For example, if the result of the formula is `0.1234567891`, the actual value stored for the attribute is `0.123456789`. - If you need to scale a unit of measure, see [Scale Filter](https://docs.datadoghq.com/logs/log_configuration/parsing/?tab=filter#matcher-and-filter).
        - `expression` string, required — Arithmetic operation between one or more log attributes.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_replace_missing` boolean — If `true`, it replaces all missing attributes of expression by `0`, `false` skip the operation if an attribute is missing.
        - `name` string — Name of the processor.
        - `target` string, required — Name of the attribute that contains the result of the arithmetic operation.
        - `type` 'arithmetic-processor', required — Type of logs arithmetic processor.
      - LogsStringBuilderProcessor — Use the string builder processor to add a new attribute (without spaces or special characters) to a log with the result of the provided template. This enables aggregation of different attributes or raw strings into a single attribute. The template is defined by both raw text and blocks with the syntax `%{attribute_path}`. **Notes**: - The processor only accepts attributes with values or an array of values in the blocks. - If an attribute cannot be used (object or array of object), it is replaced by an empty string or the entire operation is skipped depending on your selection. - If the target attribute already exists, it is overwritten by the result of the template. - Results of the template cannot exceed 256 characters.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `is_replace_missing` boolean — If true, it replaces all missing attributes of `template` by an empty string. If `false` (default), skips the operation for missing attributes.
        - `name` string — Name of the processor.
        - `target` string, required — The name of the attribute that contains the result of the template.
        - `template` string, required — A formula with one or more attributes and raw text.
        - `type` 'string-builder-processor', required — Type of logs string builder processor.
      - LogsPipelineProcessor — Nested Pipelines are pipelines within a pipeline. Use Nested Pipelines to split the processing into two steps. For example, first use a high-level filtering such as team and then a second level of filtering based on the integration, service, or any other tag or attribute. A pipeline can contain Nested Pipelines and Processors whereas a Nested Pipeline can only contain Processors.
        - `description` string — A description of the pipeline.
        - `filter` LogsFilter — Filter for logs.
          - `query` string — The filter query.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `processors` LogsProcessor[] — Ordered list of processors in this pipeline.
        - `tags` string[] — A list of tags associated with the pipeline.
        - `type` 'pipeline', required — Type of logs pipeline processor.
      - LogsGeoIPParser — The GeoIP parser takes an IP address attribute and extracts if available the Continent, Country, Subdivision, and City information in the target attribute path.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[], required — Array of source attributes.
        - `target` string, required — Name of the parent attribute that contains all the extracted details from the `sources`.
        - `type` 'geo-ip-parser', required — Type of GeoIP parser.
      - LogsLookupProcessor — Use the Lookup Processor to define a mapping between a log attribute and a human readable value saved in the processors mapping table. For example, you can use the Lookup Processor to map an internal service ID into a human readable service name. Alternatively, you could also use it to check if the MAC address that just attempted to connect to the production environment belongs to your list of stolen machines.
        - `default_lookup` string — Value to set the target attribute if the source value is not found in the list.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `lookup_table` string[], required — Mapping table of values for the source attribute and their associated target attribute values, formatted as `["source_key1,target_value1", "source_key2,target_value2"]`
        - `name` string — Name of the processor.
        - `source` string, required — Source attribute used to perform the lookup.
        - `target` string, required — Name of the attribute that contains the corresponding value in the mapping list or the `default_lookup` if not found in the mapping list.
        - `type` 'lookup-processor', required — Type of logs lookup processor.
      - ReferenceTableLogsLookupProcessor — **Note**: Reference Tables are in public beta. Use the Lookup Processor to define a mapping between a log attribute and a human readable value saved in a Reference Table. For example, you can use the Lookup Processor to map an internal service ID into a human readable service name. Alternatively, you could also use it to check if the MAC address that just attempted to connect to the production environment belongs to your list of stolen machines.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `lookup_enrichment_table` string, required — Name of the Reference Table for the source attribute and their associated target attribute values.
        - `name` string — Name of the processor.
        - `source` string, required — Source attribute used to perform the lookup.
        - `target` string, required — Name of the attribute that contains the corresponding value in the mapping list.
        - `type` 'lookup-processor', required — Type of logs lookup processor.
      - LogsTraceRemapper — There are two ways to improve correlation between application traces and logs. 1. Follow the documentation on [how to inject a trace ID in the application logs](https://docs.datadoghq.com/tracing/connect_logs_and_traces) and by default log integrations take care of all the rest of the setup. 2. Use the Trace remapper processor to define a log attribute as its associated trace ID.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[] — Array of source attributes.
        - `type` 'trace-id-remapper', required — Type of logs trace remapper.
      - LogsSpanRemapper — There are two ways to define correlation between application spans and logs: 1. Follow the documentation on [how to inject a span ID in the application logs](https://docs.datadoghq.com/tracing/connect_logs_and_traces). Log integrations automatically handle all remaining setup steps by default. 2. Use the span remapper processor to define a log attribute as its associated span ID.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `sources` string[] — Array of source attributes.
        - `type` 'span-id-remapper', required — Type of logs span remapper.
      - LogsArrayProcessor — A processor for extracting, aggregating, or transforming values from JSON arrays within your logs. Supported operations are: - Select value from matching element - Compute array length - Append a value to an array
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `operation` union, required — Configuration of the array processor operation to perform.
          - LogsArrayProcessorOperationAppend — Operation that appends a value to a target array attribute.
            - `preserve_source` boolean — Remove or preserve the remapped source element.
            - `source` string, required — Attribute path containing the value to append.
            - `target` string, required — Attribute path of the array to append to.
            - `type` 'append', required — Operation type.
          - LogsArrayProcessorOperationLength — Operation that computes the length of a `source` array and stores the result in the `target` attribute.
            - `source` string, required — Attribute path of the array to measure.
            - `target` string, required — Attribute that receives the computed length.
            - `type` 'length', required — Operation type.
          - LogsArrayProcessorOperationSelect — Operation that finds an object in a `source` array using a `filter`, and then extracts a specific value into the `target` attribute.
            - `filter` string, required — Filter condition expressed as `key:value` used to find the matching element.
            - `source` string, required — Attribute path of the array to search into.
            - `target` string, required — Attribute that receives the extracted value.
            - `type` 'select', required — Operation type.
            - `value_to_extract` string, required — Key of the value to extract from the matching element.
        - `type` 'array-processor', required — Type of logs array processor.
      - LogsDecoderProcessor — The decoder processor decodes any source attribute containing a base64/base16-encoded UTF-8/ASCII string back to its original value, storing the result in a target attribute.
        - `binary_to_text_encoding` 'base64' | 'base16', required — The encoding used to represent the binary data.
        - `input_representation` 'utf_8' | 'integer', required — The original representation of input string.
        - `is_enabled` boolean — Whether the processor is enabled.
        - `name` string — Name of the processor.
        - `source` string, required — Name of the log attribute with the encoded data.
        - `target` string, required — Name of the log attribute that contains the decoded data.
        - `type` 'decoder-processor', required — Type of logs decoder processor.
      - LogsSchemaProcessor — A processor that has additional validations and checks for a given schema. Currently supported schema types include OCSF.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `mappers` LogsSchemaMapper[], required — The `LogsSchemaProcessor` `mappers`.
          - union — Configuration of the schema processor mapper to use.
            - LogsSchemaRemapper — The schema remapper maps source log fields to their correct fields.
              - …
            - LogsSchemaCategoryMapper — Use the Schema Category Mapper to categorize log event into enum fields. In the case of OCSF, they can be used to map sibling fields which are composed of an ID and a name. **Notes**: - The syntax of the query is the one of Logs Explorer search bar. The query can be done on any log attribute or tag, whether it is a facet or not. Wildcards can also be used inside your query. - Categories are executed in order and processing stops at the first match. Make sure categories are properly ordered in case a log could match multiple queries. - Sibling fields always have a numerical ID field and a human-readable string name. - A fallback section handles cases where the name or ID value matches a specific value. If the name matches "Other" or the ID matches 99, the value of the sibling name field will be pulled from a source field from the original log.
              - …
        - `name` string, required — Name of the processor.
        - `schema` LogsSchemaData, required — Configuration of the schema data to use.
          - `class_name` string, required — Class name of the schema to use.
          - `class_uid` integer, required — Class UID of the schema to use.
          - `profiles` string[] — Optional list of profiles to modify the schema.
          - `schema_type` string, required — Type of schema to use.
          - `version` string, required — Version of the schema to use.
        - `type` 'schema-processor', required — Type of logs schema processor.
      - LogsExcludeAttributeProcessor — Use this processor to remove an attribute from a log during processing. The processor strips the specified attribute from the log event, which is useful when the attribute contains sensitive data or is no longer needed downstream.
        - `attribute_to_exclude` string, required — Name of the log attribute to remove from the log event.
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `type` 'exclude-attribute', required — Type of logs exclude attribute processor.
      - LogsArrayMapProcessor — The array-map processor transforms each element of a source array by applying sub-processors in order and collecting the results into a target array. Results can be written to a new array, to the source array (in-place), or to an existing target array. Sub-processors can read from `$sourceElem.<field>` (object element field), bare `$sourceElem` (primitive element), or any parent log attribute path. Sub-processors write to `$targetElem.<field>` (object output field) or bare `$targetElem` (primitive output).
        - `is_enabled` boolean — Whether or not the processor is enabled.
        - `name` string — Name of the processor.
        - `preserve_source` boolean — When `false` and `source != target`, the source attribute is removed after processing. Cannot be `false` when `source == target`.
        - `processors` LogsArrayMapSubProcessor[], required — Sub-processors applied to each element. Allowed types: `attribute-remapper`, `string-builder-processor`, `arithmetic-processor`, `category-processor`.
          - union — A sub-processor used inside an array-map processor. Allowed types: `attribute-remapper`, `string-builder-processor`, `arithmetic-processor`, `category-processor`.
            - LogsArrayMapAttributeRemapper — An attribute remapper sub-processor for use inside an array-map processor. Unlike the top-level attribute remapper, `is_enabled`, `source_type`, and `target_type` are not supported.
              - …
            - LogsArrayMapArithmeticSubProcessor — An arithmetic sub-processor for use inside an array-map processor. Unlike the top-level arithmetic processor, `is_enabled` is not supported.
              - …
            - LogsArrayMapStringBuilderSubProcessor — A string builder sub-processor for use inside an array-map processor. Unlike the top-level string builder processor, `is_enabled` is not supported.
              - …
            - LogsArrayMapCategorySubProcessor — A category sub-processor for use inside an array-map processor. Unlike the top-level category processor, `is_enabled` is not supported.
              - …
        - `source` string, required — Attribute path of the source array. Elements are read-only via `$sourceElem` inside sub-processors.
        - `target` string, required — Attribute path of the output array. Sub-processors write to `$targetElem` (or `$targetElem.<field>`) to build each output element.
        - `type` 'array-map-processor', required — Type of logs array-map processor.
  - `tags` string[] — A list of tags associated with the pipeline.
  - `type` string — Type of pipeline.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `429` — Too many requests

---

[API](https://skmtc.net/datadog/apis/api-v1.md) · [All operations](https://skmtc.net/datadog/apis/api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/datadog/api-v1/revisions/ca5871004d26/schema)
