diff --git a/.apigentools-info b/.apigentools-info index a8220bd03f676..7a589c9cab94e 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-04-22 18:30:05.951046", - "spec_repo_commit": "2b6fa951" + "regenerated": "2025-04-24 14:27:59.948510", + "spec_repo_commit": "ff8c84cf" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-04-22 18:30:14.967308", - "spec_repo_commit": "2b6fa951" + "regenerated": "2025-04-24 14:28:09.074905", + "spec_repo_commit": "ff8c84cf" } } } \ No newline at end of file diff --git a/content/en/api/v2/observability-pipelines/examples.json b/content/en/api/v2/observability-pipelines/examples.json index 07f7f8f34d11b..be9bcad04365b 100644 --- a/content/en/api/v2/observability-pipelines/examples.json +++ b/content/en/api/v2/observability-pipelines/examples.json @@ -57,7 +57,7 @@ "type": "pipelines" } }, - "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The google_chronicle destination sends logs to Google Chronicle.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

customer_id [required]

\n
\n

string

\n

The Google Chronicle customer ID.

\n
\n \n
\n
\n
\n
\n
\n

encoding

\n
\n

enum

\n

The encoding format for the logs sent to Chronicle. \nAllowed enum values: json,raw_message

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

log_type

\n
\n

string

\n

The log type metadata associated with the Chronicle destination.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be google_chronicle. \nAllowed enum values: google_chronicle

default: google_chronicle

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The new_relic destination sends logs to the New Relic platform.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The New Relic region. \nAllowed enum values: us,eu

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be new_relic. \nAllowed enum values: new_relic

default: new_relic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The sentinel_one destination sends logs to SentinelOne.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The SentinelOne region to send logs to. \nAllowed enum values: us,eu,ca,data_set_us

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be sentinel_one. \nAllowed enum values: sentinel_one

default: sentinel_one

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 7

\n
\n

object

\n

The ocsf_mapper processor transforms logs into the OCSF schema using a predefined mapping configuration.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mappings [required]

\n
\n

[object]

\n

A list of mapping rules to convert events to the OCSF format.

\n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to select the logs that this mapping should apply to.

\n
\n \n
\n
\n
\n
\n
\n

mapping [required]

\n
\n

 <oneOf>

\n

The definition of ObservabilityPipelineOcsfMapperProcessorMappingMapping object.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

enum

\n

Predefined library mappings for common log formats. \nAllowed enum values: CloudTrail Account Change,GCP Cloud Audit CreateBucket,GCP Cloud Audit CreateSink,GCP Cloud Audit SetIamPolicy,GCP Cloud Audit UpdateSink,Github Audit Log API Activity,Google Workspace Admin Audit addPrivilege,Microsoft 365 Defender Incident,Microsoft 365 Defender UserLoggedIn,Okta System Log Authentication,Palo Alto Networks Firewall Traffic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be ocsf_mapper. \nAllowed enum values: ocsf_mapper

default: ocsf_mapper

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 8

\n
\n

object

\n

The add_env_vars processor adds environment variable values to log events.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this processor in the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_env_vars. \nAllowed enum values: add_env_vars

default: add_env_vars

\n
\n \n
\n
\n
\n
\n
\n

variables [required]

\n
\n

[object]

\n

A list of environment variable mappings to apply to log fields.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The target field in the log event.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the environment variable to read.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Option 9

\n
\n

object

\n

The dedupe processor removes duplicate fields in log events.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of log field paths to check for duplicates.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mode [required]

\n
\n

enum

\n

The deduplication mode to apply to the fields. \nAllowed enum values: match,ignore

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be dedupe. \nAllowed enum values: dedupe

default: dedupe

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 10

\n
\n

object

\n

The enrichment_table processor enriches logs using a static CSV file or GeoIP database.

\n
\n
\n
\n
\n
\n

file

\n
\n

object

\n

Defines a static enrichment table loaded from a CSV file.

\n
\n
\n
\n
\n
\n

encoding [required]

\n
\n

object

\n

File encoding format.

\n
\n
\n
\n
\n
\n

delimiter [required]

\n
\n

string

\n

The encoding delimiter.

\n
\n \n
\n
\n
\n
\n
\n

includes_headers [required]

\n
\n

boolean

\n

The encoding includes_headers.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileEncodingType object. \nAllowed enum values: csv

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

key [required]

\n
\n

[object]

\n

Key fields used to look up enrichment values.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

comparison [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileKeyItemsComparison object. \nAllowed enum values: equals

\n
\n \n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The items field.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the CSV file.

\n
\n \n
\n
\n
\n
\n
\n

schema [required]

\n
\n

[object]

\n

Schema defining column names and their types.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileSchemaItemsType object. \nAllowed enum values: string,boolean,integer,float,date,timestamp

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

geoip

\n
\n

object

\n

Uses a GeoIP database to enrich logs based on an IP field.

\n
\n
\n
\n
\n
\n

key_field [required]

\n
\n

string

\n

Path to the IP field in the log.

\n
\n \n
\n
\n
\n
\n
\n

locale [required]

\n
\n

string

\n

Locale used to resolve geographical names.

\n
\n \n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the GeoIP database file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

target [required]

\n
\n

string

\n

Path where enrichment results should be stored in the log.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be enrichment_table. \nAllowed enum values: enrichment_table

default: enrichment_table

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 11

\n
\n

object

\n

The reduce processor aggregates and merges logs based on matching keys and merge strategies.

\n
\n
\n
\n
\n
\n

group_by [required]

\n
\n

[string]

\n

A list of fields used to group log events for merging.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

merge_strategies [required]

\n
\n

[object]

\n

List of merge strategies defining how values from grouped events should be combined.

\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

The field path in the log event.

\n
\n \n
\n
\n
\n
\n
\n

strategy [required]

\n
\n

enum

\n

The merge strategy to apply. \nAllowed enum values: discard,retain,sum,max,min,array,concat,concat_newline,concat_raw,shortest_array,longest_array,flat_unique

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be reduce. \nAllowed enum values: reduce

default: reduce

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 12

\n
\n

object

\n

The throttle processor limits the number of events that pass through over a given time window.

\n
\n
\n
\n
\n
\n

group_by

\n
\n

[string]

\n

Optional list of fields used to group events before applying throttling.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

threshold [required]

\n
\n

int64

\n

The number of events to allow before throttling is applied.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be throttle. \nAllowed enum values: throttle

default: throttle

\n
\n \n
\n
\n
\n
\n
\n

window [required]

\n
\n

double

\n

The time window in seconds over which the threshold applies.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The amazon_data_firehose source ingests logs from AWS Data Firehose.

\n
\n
\n
\n
\n
\n

auth

\n
\n

object

\n

AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).

\n
\n
\n
\n
\n
\n

assume_role

\n
\n

string

\n

The Amazon Resource Name (ARN) of the role to assume.

\n
\n \n
\n
\n
\n
\n
\n

external_id

\n
\n

string

\n

A unique identifier for cross-account role assumption.

\n
\n \n
\n
\n
\n
\n
\n

session_name

\n
\n

string

\n

A session identifier used for logging and tracing the assumed role session.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be amazon_data_firehose. \nAllowed enum values: amazon_data_firehose

default: amazon_data_firehose

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The google_pubsub source ingests logs from a Google Cloud Pub/Sub subscription.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

project [required]

\n
\n

string

\n

The GCP project ID that owns the Pub/Sub subscription.

\n
\n \n
\n
\n
\n
\n
\n

subscription [required]

\n
\n

string

\n

The Pub/Sub subscription name from which messages are consumed.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be google_pubsub. \nAllowed enum values: google_pubsub

default: google_pubsub

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The http_client source scrapes logs from HTTP endpoints at regular intervals.

\n
\n
\n
\n
\n
\n

auth_strategy

\n
\n

enum

\n

Optional authentication strategy for HTTP requests. \nAllowed enum values: basic,bearer

\n
\n \n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

scrape_interval_secs

\n
\n

int64

\n

The interval (in seconds) between HTTP scrape requests.

\n
\n \n
\n
\n
\n
\n
\n

scrape_timeout_secs

\n
\n

int64

\n

The timeout (in seconds) for each scrape request.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be http_client. \nAllowed enum values: http_client

default: http_client

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The logstash source ingests logs from a Logstash forwarder.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be logstash. \nAllowed enum values: logstash

default: logstash

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" }, "400": { "json": { @@ -176,7 +176,7 @@ "type": "pipelines" } }, - "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The google_chronicle destination sends logs to Google Chronicle.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

customer_id [required]

\n
\n

string

\n

The Google Chronicle customer ID.

\n
\n \n
\n
\n
\n
\n
\n

encoding

\n
\n

enum

\n

The encoding format for the logs sent to Chronicle. \nAllowed enum values: json,raw_message

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

log_type

\n
\n

string

\n

The log type metadata associated with the Chronicle destination.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be google_chronicle. \nAllowed enum values: google_chronicle

default: google_chronicle

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The new_relic destination sends logs to the New Relic platform.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The New Relic region. \nAllowed enum values: us,eu

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be new_relic. \nAllowed enum values: new_relic

default: new_relic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The sentinel_one destination sends logs to SentinelOne.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The SentinelOne region to send logs to. \nAllowed enum values: us,eu,ca,data_set_us

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be sentinel_one. \nAllowed enum values: sentinel_one

default: sentinel_one

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 7

\n
\n

object

\n

The ocsf_mapper processor transforms logs into the OCSF schema using a predefined mapping configuration.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mappings [required]

\n
\n

[object]

\n

A list of mapping rules to convert events to the OCSF format.

\n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to select the logs that this mapping should apply to.

\n
\n \n
\n
\n
\n
\n
\n

mapping [required]

\n
\n

 <oneOf>

\n

The definition of ObservabilityPipelineOcsfMapperProcessorMappingMapping object.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

enum

\n

Predefined library mappings for common log formats. \nAllowed enum values: CloudTrail Account Change,GCP Cloud Audit CreateBucket,GCP Cloud Audit CreateSink,GCP Cloud Audit SetIamPolicy,GCP Cloud Audit UpdateSink,Github Audit Log API Activity,Google Workspace Admin Audit addPrivilege,Microsoft 365 Defender Incident,Microsoft 365 Defender UserLoggedIn,Okta System Log Authentication,Palo Alto Networks Firewall Traffic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be ocsf_mapper. \nAllowed enum values: ocsf_mapper

default: ocsf_mapper

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 8

\n
\n

object

\n

The add_env_vars processor adds environment variable values to log events.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this processor in the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_env_vars. \nAllowed enum values: add_env_vars

default: add_env_vars

\n
\n \n
\n
\n
\n
\n
\n

variables [required]

\n
\n

[object]

\n

A list of environment variable mappings to apply to log fields.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The target field in the log event.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the environment variable to read.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Option 9

\n
\n

object

\n

The dedupe processor removes duplicate fields in log events.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of log field paths to check for duplicates.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mode [required]

\n
\n

enum

\n

The deduplication mode to apply to the fields. \nAllowed enum values: match,ignore

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be dedupe. \nAllowed enum values: dedupe

default: dedupe

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 10

\n
\n

object

\n

The enrichment_table processor enriches logs using a static CSV file or GeoIP database.

\n
\n
\n
\n
\n
\n

file

\n
\n

object

\n

Defines a static enrichment table loaded from a CSV file.

\n
\n
\n
\n
\n
\n

encoding [required]

\n
\n

object

\n

File encoding format.

\n
\n
\n
\n
\n
\n

delimiter [required]

\n
\n

string

\n

The encoding delimiter.

\n
\n \n
\n
\n
\n
\n
\n

includes_headers [required]

\n
\n

boolean

\n

The encoding includes_headers.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileEncodingType object. \nAllowed enum values: csv

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

key [required]

\n
\n

[object]

\n

Key fields used to look up enrichment values.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

comparison [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileKeyItemsComparison object. \nAllowed enum values: equals

\n
\n \n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The items field.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the CSV file.

\n
\n \n
\n
\n
\n
\n
\n

schema [required]

\n
\n

[object]

\n

Schema defining column names and their types.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileSchemaItemsType object. \nAllowed enum values: string,boolean,integer,float,date,timestamp

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

geoip

\n
\n

object

\n

Uses a GeoIP database to enrich logs based on an IP field.

\n
\n
\n
\n
\n
\n

key_field [required]

\n
\n

string

\n

Path to the IP field in the log.

\n
\n \n
\n
\n
\n
\n
\n

locale [required]

\n
\n

string

\n

Locale used to resolve geographical names.

\n
\n \n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the GeoIP database file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

target [required]

\n
\n

string

\n

Path where enrichment results should be stored in the log.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be enrichment_table. \nAllowed enum values: enrichment_table

default: enrichment_table

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 11

\n
\n

object

\n

The reduce processor aggregates and merges logs based on matching keys and merge strategies.

\n
\n
\n
\n
\n
\n

group_by [required]

\n
\n

[string]

\n

A list of fields used to group log events for merging.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

merge_strategies [required]

\n
\n

[object]

\n

List of merge strategies defining how values from grouped events should be combined.

\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

The field path in the log event.

\n
\n \n
\n
\n
\n
\n
\n

strategy [required]

\n
\n

enum

\n

The merge strategy to apply. \nAllowed enum values: discard,retain,sum,max,min,array,concat,concat_newline,concat_raw,shortest_array,longest_array,flat_unique

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be reduce. \nAllowed enum values: reduce

default: reduce

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 12

\n
\n

object

\n

The throttle processor limits the number of events that pass through over a given time window.

\n
\n
\n
\n
\n
\n

group_by

\n
\n

[string]

\n

Optional list of fields used to group events before applying throttling.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

threshold [required]

\n
\n

int64

\n

The number of events to allow before throttling is applied.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be throttle. \nAllowed enum values: throttle

default: throttle

\n
\n \n
\n
\n
\n
\n
\n

window [required]

\n
\n

double

\n

The time window in seconds over which the threshold applies.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The amazon_data_firehose source ingests logs from AWS Data Firehose.

\n
\n
\n
\n
\n
\n

auth

\n
\n

object

\n

AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).

\n
\n
\n
\n
\n
\n

assume_role

\n
\n

string

\n

The Amazon Resource Name (ARN) of the role to assume.

\n
\n \n
\n
\n
\n
\n
\n

external_id

\n
\n

string

\n

A unique identifier for cross-account role assumption.

\n
\n \n
\n
\n
\n
\n
\n

session_name

\n
\n

string

\n

A session identifier used for logging and tracing the assumed role session.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be amazon_data_firehose. \nAllowed enum values: amazon_data_firehose

default: amazon_data_firehose

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The google_pubsub source ingests logs from a Google Cloud Pub/Sub subscription.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

project [required]

\n
\n

string

\n

The GCP project ID that owns the Pub/Sub subscription.

\n
\n \n
\n
\n
\n
\n
\n

subscription [required]

\n
\n

string

\n

The Pub/Sub subscription name from which messages are consumed.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be google_pubsub. \nAllowed enum values: google_pubsub

default: google_pubsub

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The http_client source scrapes logs from HTTP endpoints at regular intervals.

\n
\n
\n
\n
\n
\n

auth_strategy

\n
\n

enum

\n

Optional authentication strategy for HTTP requests. \nAllowed enum values: basic,bearer

\n
\n \n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

scrape_interval_secs

\n
\n

int64

\n

The interval (in seconds) between HTTP scrape requests.

\n
\n \n
\n
\n
\n
\n
\n

scrape_timeout_secs

\n
\n

int64

\n

The timeout (in seconds) for each scrape request.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be http_client. \nAllowed enum values: http_client

default: http_client

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The logstash source ingests logs from a Logstash forwarder.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be logstash. \nAllowed enum values: logstash

default: logstash

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" } }, "DeletePipeline": { @@ -278,7 +278,7 @@ "type": "pipelines" } }, - "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The google_chronicle destination sends logs to Google Chronicle.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

customer_id [required]

\n
\n

string

\n

The Google Chronicle customer ID.

\n
\n \n
\n
\n
\n
\n
\n

encoding

\n
\n

enum

\n

The encoding format for the logs sent to Chronicle. \nAllowed enum values: json,raw_message

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

log_type

\n
\n

string

\n

The log type metadata associated with the Chronicle destination.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be google_chronicle. \nAllowed enum values: google_chronicle

default: google_chronicle

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The new_relic destination sends logs to the New Relic platform.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The New Relic region. \nAllowed enum values: us,eu

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be new_relic. \nAllowed enum values: new_relic

default: new_relic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The sentinel_one destination sends logs to SentinelOne.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The SentinelOne region to send logs to. \nAllowed enum values: us,eu,ca,data_set_us

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be sentinel_one. \nAllowed enum values: sentinel_one

default: sentinel_one

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 7

\n
\n

object

\n

The ocsf_mapper processor transforms logs into the OCSF schema using a predefined mapping configuration.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mappings [required]

\n
\n

[object]

\n

A list of mapping rules to convert events to the OCSF format.

\n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to select the logs that this mapping should apply to.

\n
\n \n
\n
\n
\n
\n
\n

mapping [required]

\n
\n

 <oneOf>

\n

The definition of ObservabilityPipelineOcsfMapperProcessorMappingMapping object.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

enum

\n

Predefined library mappings for common log formats. \nAllowed enum values: CloudTrail Account Change,GCP Cloud Audit CreateBucket,GCP Cloud Audit CreateSink,GCP Cloud Audit SetIamPolicy,GCP Cloud Audit UpdateSink,Github Audit Log API Activity,Google Workspace Admin Audit addPrivilege,Microsoft 365 Defender Incident,Microsoft 365 Defender UserLoggedIn,Okta System Log Authentication,Palo Alto Networks Firewall Traffic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be ocsf_mapper. \nAllowed enum values: ocsf_mapper

default: ocsf_mapper

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 8

\n
\n

object

\n

The add_env_vars processor adds environment variable values to log events.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this processor in the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_env_vars. \nAllowed enum values: add_env_vars

default: add_env_vars

\n
\n \n
\n
\n
\n
\n
\n

variables [required]

\n
\n

[object]

\n

A list of environment variable mappings to apply to log fields.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The target field in the log event.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the environment variable to read.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Option 9

\n
\n

object

\n

The dedupe processor removes duplicate fields in log events.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of log field paths to check for duplicates.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mode [required]

\n
\n

enum

\n

The deduplication mode to apply to the fields. \nAllowed enum values: match,ignore

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be dedupe. \nAllowed enum values: dedupe

default: dedupe

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 10

\n
\n

object

\n

The enrichment_table processor enriches logs using a static CSV file or GeoIP database.

\n
\n
\n
\n
\n
\n

file

\n
\n

object

\n

Defines a static enrichment table loaded from a CSV file.

\n
\n
\n
\n
\n
\n

encoding [required]

\n
\n

object

\n

File encoding format.

\n
\n
\n
\n
\n
\n

delimiter [required]

\n
\n

string

\n

The encoding delimiter.

\n
\n \n
\n
\n
\n
\n
\n

includes_headers [required]

\n
\n

boolean

\n

The encoding includes_headers.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileEncodingType object. \nAllowed enum values: csv

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

key [required]

\n
\n

[object]

\n

Key fields used to look up enrichment values.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

comparison [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileKeyItemsComparison object. \nAllowed enum values: equals

\n
\n \n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The items field.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the CSV file.

\n
\n \n
\n
\n
\n
\n
\n

schema [required]

\n
\n

[object]

\n

Schema defining column names and their types.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileSchemaItemsType object. \nAllowed enum values: string,boolean,integer,float,date,timestamp

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

geoip

\n
\n

object

\n

Uses a GeoIP database to enrich logs based on an IP field.

\n
\n
\n
\n
\n
\n

key_field [required]

\n
\n

string

\n

Path to the IP field in the log.

\n
\n \n
\n
\n
\n
\n
\n

locale [required]

\n
\n

string

\n

Locale used to resolve geographical names.

\n
\n \n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the GeoIP database file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

target [required]

\n
\n

string

\n

Path where enrichment results should be stored in the log.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be enrichment_table. \nAllowed enum values: enrichment_table

default: enrichment_table

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 11

\n
\n

object

\n

The reduce processor aggregates and merges logs based on matching keys and merge strategies.

\n
\n
\n
\n
\n
\n

group_by [required]

\n
\n

[string]

\n

A list of fields used to group log events for merging.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

merge_strategies [required]

\n
\n

[object]

\n

List of merge strategies defining how values from grouped events should be combined.

\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

The field path in the log event.

\n
\n \n
\n
\n
\n
\n
\n

strategy [required]

\n
\n

enum

\n

The merge strategy to apply. \nAllowed enum values: discard,retain,sum,max,min,array,concat,concat_newline,concat_raw,shortest_array,longest_array,flat_unique

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be reduce. \nAllowed enum values: reduce

default: reduce

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 12

\n
\n

object

\n

The throttle processor limits the number of events that pass through over a given time window.

\n
\n
\n
\n
\n
\n

group_by

\n
\n

[string]

\n

Optional list of fields used to group events before applying throttling.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

threshold [required]

\n
\n

int64

\n

The number of events to allow before throttling is applied.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be throttle. \nAllowed enum values: throttle

default: throttle

\n
\n \n
\n
\n
\n
\n
\n

window [required]

\n
\n

double

\n

The time window in seconds over which the threshold applies.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The amazon_data_firehose source ingests logs from AWS Data Firehose.

\n
\n
\n
\n
\n
\n

auth

\n
\n

object

\n

AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).

\n
\n
\n
\n
\n
\n

assume_role

\n
\n

string

\n

The Amazon Resource Name (ARN) of the role to assume.

\n
\n \n
\n
\n
\n
\n
\n

external_id

\n
\n

string

\n

A unique identifier for cross-account role assumption.

\n
\n \n
\n
\n
\n
\n
\n

session_name

\n
\n

string

\n

A session identifier used for logging and tracing the assumed role session.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be amazon_data_firehose. \nAllowed enum values: amazon_data_firehose

default: amazon_data_firehose

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The google_pubsub source ingests logs from a Google Cloud Pub/Sub subscription.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

project [required]

\n
\n

string

\n

The GCP project ID that owns the Pub/Sub subscription.

\n
\n \n
\n
\n
\n
\n
\n

subscription [required]

\n
\n

string

\n

The Pub/Sub subscription name from which messages are consumed.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be google_pubsub. \nAllowed enum values: google_pubsub

default: google_pubsub

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The http_client source scrapes logs from HTTP endpoints at regular intervals.

\n
\n
\n
\n
\n
\n

auth_strategy

\n
\n

enum

\n

Optional authentication strategy for HTTP requests. \nAllowed enum values: basic,bearer

\n
\n \n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

scrape_interval_secs

\n
\n

int64

\n

The interval (in seconds) between HTTP scrape requests.

\n
\n \n
\n
\n
\n
\n
\n

scrape_timeout_secs

\n
\n

int64

\n

The timeout (in seconds) for each scrape request.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be http_client. \nAllowed enum values: http_client

default: http_client

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The logstash source ingests logs from a Logstash forwarder.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be logstash. \nAllowed enum values: logstash

default: logstash

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" }, "403": { "json": { @@ -361,7 +361,7 @@ "type": "pipelines" } }, - "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The google_chronicle destination sends logs to Google Chronicle.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

customer_id [required]

\n
\n

string

\n

The Google Chronicle customer ID.

\n
\n \n
\n
\n
\n
\n
\n

encoding

\n
\n

enum

\n

The encoding format for the logs sent to Chronicle. \nAllowed enum values: json,raw_message

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

log_type

\n
\n

string

\n

The log type metadata associated with the Chronicle destination.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be google_chronicle. \nAllowed enum values: google_chronicle

default: google_chronicle

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The new_relic destination sends logs to the New Relic platform.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The New Relic region. \nAllowed enum values: us,eu

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be new_relic. \nAllowed enum values: new_relic

default: new_relic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The sentinel_one destination sends logs to SentinelOne.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The SentinelOne region to send logs to. \nAllowed enum values: us,eu,ca,data_set_us

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be sentinel_one. \nAllowed enum values: sentinel_one

default: sentinel_one

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 7

\n
\n

object

\n

The ocsf_mapper processor transforms logs into the OCSF schema using a predefined mapping configuration.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mappings [required]

\n
\n

[object]

\n

A list of mapping rules to convert events to the OCSF format.

\n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to select the logs that this mapping should apply to.

\n
\n \n
\n
\n
\n
\n
\n

mapping [required]

\n
\n

 <oneOf>

\n

The definition of ObservabilityPipelineOcsfMapperProcessorMappingMapping object.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

enum

\n

Predefined library mappings for common log formats. \nAllowed enum values: CloudTrail Account Change,GCP Cloud Audit CreateBucket,GCP Cloud Audit CreateSink,GCP Cloud Audit SetIamPolicy,GCP Cloud Audit UpdateSink,Github Audit Log API Activity,Google Workspace Admin Audit addPrivilege,Microsoft 365 Defender Incident,Microsoft 365 Defender UserLoggedIn,Okta System Log Authentication,Palo Alto Networks Firewall Traffic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be ocsf_mapper. \nAllowed enum values: ocsf_mapper

default: ocsf_mapper

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 8

\n
\n

object

\n

The add_env_vars processor adds environment variable values to log events.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this processor in the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_env_vars. \nAllowed enum values: add_env_vars

default: add_env_vars

\n
\n \n
\n
\n
\n
\n
\n

variables [required]

\n
\n

[object]

\n

A list of environment variable mappings to apply to log fields.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The target field in the log event.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the environment variable to read.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Option 9

\n
\n

object

\n

The dedupe processor removes duplicate fields in log events.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of log field paths to check for duplicates.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mode [required]

\n
\n

enum

\n

The deduplication mode to apply to the fields. \nAllowed enum values: match,ignore

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be dedupe. \nAllowed enum values: dedupe

default: dedupe

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 10

\n
\n

object

\n

The enrichment_table processor enriches logs using a static CSV file or GeoIP database.

\n
\n
\n
\n
\n
\n

file

\n
\n

object

\n

Defines a static enrichment table loaded from a CSV file.

\n
\n
\n
\n
\n
\n

encoding [required]

\n
\n

object

\n

File encoding format.

\n
\n
\n
\n
\n
\n

delimiter [required]

\n
\n

string

\n

The encoding delimiter.

\n
\n \n
\n
\n
\n
\n
\n

includes_headers [required]

\n
\n

boolean

\n

The encoding includes_headers.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileEncodingType object. \nAllowed enum values: csv

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

key [required]

\n
\n

[object]

\n

Key fields used to look up enrichment values.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

comparison [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileKeyItemsComparison object. \nAllowed enum values: equals

\n
\n \n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The items field.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the CSV file.

\n
\n \n
\n
\n
\n
\n
\n

schema [required]

\n
\n

[object]

\n

Schema defining column names and their types.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileSchemaItemsType object. \nAllowed enum values: string,boolean,integer,float,date,timestamp

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

geoip

\n
\n

object

\n

Uses a GeoIP database to enrich logs based on an IP field.

\n
\n
\n
\n
\n
\n

key_field [required]

\n
\n

string

\n

Path to the IP field in the log.

\n
\n \n
\n
\n
\n
\n
\n

locale [required]

\n
\n

string

\n

Locale used to resolve geographical names.

\n
\n \n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the GeoIP database file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

target [required]

\n
\n

string

\n

Path where enrichment results should be stored in the log.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be enrichment_table. \nAllowed enum values: enrichment_table

default: enrichment_table

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 11

\n
\n

object

\n

The reduce processor aggregates and merges logs based on matching keys and merge strategies.

\n
\n
\n
\n
\n
\n

group_by [required]

\n
\n

[string]

\n

A list of fields used to group log events for merging.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

merge_strategies [required]

\n
\n

[object]

\n

List of merge strategies defining how values from grouped events should be combined.

\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

The field path in the log event.

\n
\n \n
\n
\n
\n
\n
\n

strategy [required]

\n
\n

enum

\n

The merge strategy to apply. \nAllowed enum values: discard,retain,sum,max,min,array,concat,concat_newline,concat_raw,shortest_array,longest_array,flat_unique

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be reduce. \nAllowed enum values: reduce

default: reduce

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 12

\n
\n

object

\n

The throttle processor limits the number of events that pass through over a given time window.

\n
\n
\n
\n
\n
\n

group_by

\n
\n

[string]

\n

Optional list of fields used to group events before applying throttling.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

threshold [required]

\n
\n

int64

\n

The number of events to allow before throttling is applied.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be throttle. \nAllowed enum values: throttle

default: throttle

\n
\n \n
\n
\n
\n
\n
\n

window [required]

\n
\n

double

\n

The time window in seconds over which the threshold applies.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The amazon_data_firehose source ingests logs from AWS Data Firehose.

\n
\n
\n
\n
\n
\n

auth

\n
\n

object

\n

AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).

\n
\n
\n
\n
\n
\n

assume_role

\n
\n

string

\n

The Amazon Resource Name (ARN) of the role to assume.

\n
\n \n
\n
\n
\n
\n
\n

external_id

\n
\n

string

\n

A unique identifier for cross-account role assumption.

\n
\n \n
\n
\n
\n
\n
\n

session_name

\n
\n

string

\n

A session identifier used for logging and tracing the assumed role session.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be amazon_data_firehose. \nAllowed enum values: amazon_data_firehose

default: amazon_data_firehose

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The google_pubsub source ingests logs from a Google Cloud Pub/Sub subscription.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

project [required]

\n
\n

string

\n

The GCP project ID that owns the Pub/Sub subscription.

\n
\n \n
\n
\n
\n
\n
\n

subscription [required]

\n
\n

string

\n

The Pub/Sub subscription name from which messages are consumed.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be google_pubsub. \nAllowed enum values: google_pubsub

default: google_pubsub

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The http_client source scrapes logs from HTTP endpoints at regular intervals.

\n
\n
\n
\n
\n
\n

auth_strategy

\n
\n

enum

\n

Optional authentication strategy for HTTP requests. \nAllowed enum values: basic,bearer

\n
\n \n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

scrape_interval_secs

\n
\n

int64

\n

The interval (in seconds) between HTTP scrape requests.

\n
\n \n
\n
\n
\n
\n
\n

scrape_timeout_secs

\n
\n

int64

\n

The timeout (in seconds) for each scrape request.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be http_client. \nAllowed enum values: http_client

default: http_client

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The logstash source ingests logs from a Logstash forwarder.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be logstash. \nAllowed enum values: logstash

default: logstash

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" }, "400": { "json": { @@ -490,7 +490,7 @@ "type": "pipelines" } }, - "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" + "html": "
\n
\n
\n
\n

data [required]

\n
\n

object

\n

Contains the pipeline’s ID, type, and configuration attributes.

\n
\n
\n
\n
\n
\n

attributes [required]

\n
\n

object

\n

Defines the pipeline’s name and its components (sources, processors, and destinations).

\n
\n
\n
\n
\n
\n

config [required]

\n
\n

object

\n

Specifies the pipeline's configuration, including its sources, processors, and destinations.

\n
\n
\n
\n
\n
\n

destinations [required]

\n
\n

[ <oneOf>]

\n

A list of destination components where processed logs are sent.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The datadog_logs destination forwards logs to Datadog Log Management.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be datadog_logs. \nAllowed enum values: datadog_logs

default: datadog_logs

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The google_chronicle destination sends logs to Google Chronicle.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

customer_id [required]

\n
\n

string

\n

The Google Chronicle customer ID.

\n
\n \n
\n
\n
\n
\n
\n

encoding

\n
\n

enum

\n

The encoding format for the logs sent to Chronicle. \nAllowed enum values: json,raw_message

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

log_type

\n
\n

string

\n

The log type metadata associated with the Chronicle destination.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be google_chronicle. \nAllowed enum values: google_chronicle

default: google_chronicle

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The new_relic destination sends logs to the New Relic platform.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The New Relic region. \nAllowed enum values: us,eu

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be new_relic. \nAllowed enum values: new_relic

default: new_relic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The sentinel_one destination sends logs to SentinelOne.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

region [required]

\n
\n

enum

\n

The SentinelOne region to send logs to. \nAllowed enum values: us,eu,ca,data_set_us

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The destination type. The value should always be sentinel_one. \nAllowed enum values: sentinel_one

default: sentinel_one

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

processors [required]

\n
\n

[ <oneOf>]

\n

A list of processors that transform or enrich log data.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The filter processor allows conditional processing of logs based on a Datadog search query. Logs that match the include query are passed through; others are discarded.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs should pass through the filter. Logs that match this query continue to downstream components; others are dropped.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be filter. \nAllowed enum values: filter

default: filter

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The parse_json processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The name of the log field that contains a JSON string.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be parse_json. \nAllowed enum values: parse_json

default: parse_json

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert.

\n
\n
\n
\n
\n
\n

drop_events [required]

\n
\n

boolean

\n

If set to true, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

ignore_when_missing_partitions

\n
\n

boolean

\n

If true, the processor skips quota checks when partition fields are missing from the logs.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name for identifying the processor.

\n
\n \n
\n
\n
\n
\n
\n

overrides

\n
\n

[object]

\n

A list of alternate quota rules that apply to specific sets of events, identified by matching field values. Each override can define a custom limit.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of field matchers used to apply a specific override. If an event matches all listed key-value pairs, the corresponding override limit is enforced.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

limit [required]

\n
\n

object

\n

The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events.

\n
\n
\n
\n
\n
\n

enforce [required]

\n
\n

enum

\n

Unit for quota enforcement in bytes for data size or events for count. \nAllowed enum values: bytes,events

\n
\n \n
\n
\n
\n
\n
\n

limit [required]

\n
\n

int64

\n

The limit for quota enforcement.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

partition_fields

\n
\n

[string]

\n

A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be quota. \nAllowed enum values: quota

default: quota

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The add_fields processor adds static key-value fields to logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of static fields (key-value pairs) that is added to each log event processed by this component.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The field name.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The field value.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_fields. \nAllowed enum values: add_fields

default: add_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The remove_fields processor deletes specified fields from logs.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of field names to be removed from each log event.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

The PipelineRemoveFieldsProcessor inputs.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be remove_fields. \nAllowed enum values: remove_fields

default: remove_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The rename_fields processor changes field names.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[object]

\n

A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.

\n
\n
\n
\n
\n
\n

destination [required]

\n
\n

string

\n

The field name to assign the renamed value to.

\n
\n \n
\n
\n
\n
\n
\n

preserve_source [required]

\n
\n

boolean

\n

Indicates whether the original field, that is received from the source, should be kept (true) or removed (false) after renaming.

\n
\n \n
\n
\n
\n
\n
\n

source [required]

\n
\n

string

\n

The original field name in the log event that should be renamed.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this component.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be rename_fields. \nAllowed enum values: rename_fields

default: rename_fields

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 7

\n
\n

object

\n

The ocsf_mapper processor transforms logs into the OCSF schema using a predefined mapping configuration.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mappings [required]

\n
\n

[object]

\n

A list of mapping rules to convert events to the OCSF format.

\n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to select the logs that this mapping should apply to.

\n
\n \n
\n
\n
\n
\n
\n

mapping [required]

\n
\n

 <oneOf>

\n

The definition of ObservabilityPipelineOcsfMapperProcessorMappingMapping object.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

enum

\n

Predefined library mappings for common log formats. \nAllowed enum values: CloudTrail Account Change,GCP Cloud Audit CreateBucket,GCP Cloud Audit CreateSink,GCP Cloud Audit SetIamPolicy,GCP Cloud Audit UpdateSink,Github Audit Log API Activity,Google Workspace Admin Audit addPrivilege,Microsoft 365 Defender Incident,Microsoft 365 Defender UserLoggedIn,Okta System Log Authentication,Palo Alto Networks Firewall Traffic

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be ocsf_mapper. \nAllowed enum values: ocsf_mapper

default: ocsf_mapper

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 8

\n
\n

object

\n

The add_env_vars processor adds environment variable values to log events.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this processor in the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be add_env_vars. \nAllowed enum values: add_env_vars

default: add_env_vars

\n
\n \n
\n
\n
\n
\n
\n

variables [required]

\n
\n

[object]

\n

A list of environment variable mappings to apply to log fields.

\n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The target field in the log event.

\n
\n \n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the environment variable to read.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

Option 9

\n
\n

object

\n

The dedupe processor removes duplicate fields in log events.

\n
\n
\n
\n
\n
\n

fields [required]

\n
\n

[string]

\n

A list of log field paths to check for duplicates.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

mode [required]

\n
\n

enum

\n

The deduplication mode to apply to the fields. \nAllowed enum values: match,ignore

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be dedupe. \nAllowed enum values: dedupe

default: dedupe

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 10

\n
\n

object

\n

The enrichment_table processor enriches logs using a static CSV file or GeoIP database.

\n
\n
\n
\n
\n
\n

file

\n
\n

object

\n

Defines a static enrichment table loaded from a CSV file.

\n
\n
\n
\n
\n
\n

encoding [required]

\n
\n

object

\n

File encoding format.

\n
\n
\n
\n
\n
\n

delimiter [required]

\n
\n

string

\n

The encoding delimiter.

\n
\n \n
\n
\n
\n
\n
\n

includes_headers [required]

\n
\n

boolean

\n

The encoding includes_headers.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileEncodingType object. \nAllowed enum values: csv

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

key [required]

\n
\n

[object]

\n

Key fields used to look up enrichment values.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

comparison [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileKeyItemsComparison object. \nAllowed enum values: equals

\n
\n \n
\n
\n
\n
\n
\n

field [required]

\n
\n

string

\n

The items field.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the CSV file.

\n
\n \n
\n
\n
\n
\n
\n

schema [required]

\n
\n

[object]

\n

Schema defining column names and their types.

\n
\n
\n
\n
\n
\n

column [required]

\n
\n

string

\n

The items column.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The definition of ObservabilityPipelineEnrichmentTableFileSchemaItemsType object. \nAllowed enum values: string,boolean,integer,float,date,timestamp

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

geoip

\n
\n

object

\n

Uses a GeoIP database to enrich logs based on an IP field.

\n
\n
\n
\n
\n
\n

key_field [required]

\n
\n

string

\n

Path to the IP field in the log.

\n
\n \n
\n
\n
\n
\n
\n

locale [required]

\n
\n

string

\n

Locale used to resolve geographical names.

\n
\n \n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

Path to the GeoIP database file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

target [required]

\n
\n

string

\n

Path where enrichment results should be stored in the log.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be enrichment_table. \nAllowed enum values: enrichment_table

default: enrichment_table

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 11

\n
\n

object

\n

The reduce processor aggregates and merges logs based on matching keys and merge strategies.

\n
\n
\n
\n
\n
\n

group_by [required]

\n
\n

[string]

\n

A list of fields used to group log events for merging.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

merge_strategies [required]

\n
\n

[object]

\n

List of merge strategies defining how values from grouped events should be combined.

\n
\n
\n
\n
\n
\n

path [required]

\n
\n

string

\n

The field path in the log event.

\n
\n \n
\n
\n
\n
\n
\n

strategy [required]

\n
\n

enum

\n

The merge strategy to apply. \nAllowed enum values: discard,retain,sum,max,min,array,concat,concat_newline,concat_raw,shortest_array,longest_array,flat_unique

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be reduce. \nAllowed enum values: reduce

default: reduce

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 12

\n
\n

object

\n

The throttle processor limits the number of events that pass through over a given time window.

\n
\n
\n
\n
\n
\n

group_by

\n
\n

[string]

\n

Optional list of fields used to group events before applying throttling.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this processor.

\n
\n \n
\n
\n
\n
\n
\n

include [required]

\n
\n

string

\n

A Datadog search query used to determine which logs this processor targets.

\n
\n \n
\n
\n
\n
\n
\n

inputs [required]

\n
\n

[string]

\n

A list of component IDs whose output is used as the input for this processor.

\n
\n \n
\n
\n
\n
\n
\n

threshold [required]

\n
\n

int64

\n

The number of events to allow before throttling is applied.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The processor type. The value should always be throttle. \nAllowed enum values: throttle

default: throttle

\n
\n \n
\n
\n
\n
\n
\n

window [required]

\n
\n

double

\n

The time window in seconds over which the threshold applies.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

sources [required]

\n
\n

[ <oneOf>]

\n

A list of configured data sources for the pipeline.

\n
\n
\n
\n
\n
\n

Option 1

\n
\n

object

\n

The kafka source ingests data from Apache Kafka topics.

\n
\n
\n
\n
\n
\n

group_id [required]

\n
\n

string

\n

Consumer group ID used by the Kafka client.

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

librdkafka_options

\n
\n

[object]

\n

Optional list of advanced Kafka client configuration options, defined as key-value pairs.

\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

The name of the librdkafka configuration option to set.

\n
\n \n
\n
\n
\n
\n
\n

value [required]

\n
\n

string

\n

The value assigned to the specified librdkafka configuration option.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

sasl

\n
\n

object

\n

Specifies the SASL mechanism for authenticating with a Kafka cluster.

\n
\n
\n
\n
\n
\n

mechanism

\n
\n

enum

\n

SASL mechanism used for Kafka authentication. \nAllowed enum values: PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

topics [required]

\n
\n

[string]

\n

A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be kafka. \nAllowed enum values: kafka

default: kafka

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 2

\n
\n

object

\n

The datadog_agent source collects logs from the Datadog Agent.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be datadog_agent. \nAllowed enum values: datadog_agent

default: datadog_agent

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 3

\n
\n

object

\n

The amazon_data_firehose source ingests logs from AWS Data Firehose.

\n
\n
\n
\n
\n
\n

auth

\n
\n

object

\n

AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).

\n
\n
\n
\n
\n
\n

assume_role

\n
\n

string

\n

The Amazon Resource Name (ARN) of the role to assume.

\n
\n \n
\n
\n
\n
\n
\n

external_id

\n
\n

string

\n

A unique identifier for cross-account role assumption.

\n
\n \n
\n
\n
\n
\n
\n

session_name

\n
\n

string

\n

A session identifier used for logging and tracing the assumed role session.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be amazon_data_firehose. \nAllowed enum values: amazon_data_firehose

default: amazon_data_firehose

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 4

\n
\n

object

\n

The google_pubsub source ingests logs from a Google Cloud Pub/Sub subscription.

\n
\n
\n
\n
\n
\n

auth [required]

\n
\n

object

\n

GCP credentials used to authenticate with Google Cloud Storage.

\n
\n
\n
\n
\n
\n

credentials_file [required]

\n
\n

string

\n

Path to the GCP service account key file.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

project [required]

\n
\n

string

\n

The GCP project ID that owns the Pub/Sub subscription.

\n
\n \n
\n
\n
\n
\n
\n

subscription [required]

\n
\n

string

\n

The Pub/Sub subscription name from which messages are consumed.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be google_pubsub. \nAllowed enum values: google_pubsub

default: google_pubsub

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 5

\n
\n

object

\n

The http_client source scrapes logs from HTTP endpoints at regular intervals.

\n
\n
\n
\n
\n
\n

auth_strategy

\n
\n

enum

\n

Optional authentication strategy for HTTP requests. \nAllowed enum values: basic,bearer

\n
\n \n
\n
\n
\n
\n
\n

decoding [required]

\n
\n

enum

\n

The decoding format used to interpret incoming logs. \nAllowed enum values: bytes,gelf,json,syslog

\n
\n \n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

scrape_interval_secs

\n
\n

int64

\n

The interval (in seconds) between HTTP scrape requests.

\n
\n \n
\n
\n
\n
\n
\n

scrape_timeout_secs

\n
\n

int64

\n

The timeout (in seconds) for each scrape request.

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be http_client. \nAllowed enum values: http_client

default: http_client

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

Option 6

\n
\n

object

\n

The logstash source ingests logs from a Logstash forwarder.

\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).

\n
\n \n
\n
\n
\n
\n
\n

tls

\n
\n

object

\n

Configuration for enabling TLS encryption.

\n
\n
\n
\n
\n
\n

ca_file

\n
\n

string

\n

Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.

\n
\n \n
\n
\n
\n
\n
\n

crt_file [required]

\n
\n

string

\n

Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.

\n
\n \n
\n
\n
\n
\n
\n

key_file

\n
\n

string

\n

Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

type [required]

\n
\n

enum

\n

The source type. The value should always be logstash. \nAllowed enum values: logstash

default: logstash

\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

name [required]

\n
\n

string

\n

Name of the pipeline.

\n
\n \n
\n
\n
\n
\n
\n
\n
\n

id [required]

\n
\n

string

\n

Unique identifier for the pipeline.

\n
\n \n
\n
\n
\n
\n
\n

type [required]

\n
\n

string

\n

The resource type identifier. For pipeline resources, this should always be set to pipelines.

default: pipelines

\n
\n \n
\n
\n
\n
" } } } \ No newline at end of file diff --git a/data/api/v2/full_spec.yaml b/data/api/v2/full_spec.yaml index a9bf295b11428..9ce1a10746e0d 100644 --- a/data/api/v2/full_spec.yaml +++ b/data/api/v2/full_spec.yaml @@ -22899,6 +22899,66 @@ components: required: - data type: object + ObservabilityPipelineAddEnvVarsProcessor: + description: The `add_env_vars` processor adds environment variable values to + log events. + properties: + id: + description: The unique identifier for this component. Used to reference + this processor in the pipeline. + example: add-env-vars-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: service:my-service + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - datadog-agent-source + items: + type: string + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorType' + variables: + description: A list of environment variable mappings to apply to log fields. + items: + $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessorVariable' + type: array + required: + - id + - type + - include + - inputs + - variables + type: object + ObservabilityPipelineAddEnvVarsProcessorType: + default: add_env_vars + description: The processor type. The value should always be `add_env_vars`. + enum: + - add_env_vars + example: add_env_vars + type: string + x-enum-varnames: + - ADD_ENV_VARS + ObservabilityPipelineAddEnvVarsProcessorVariable: + description: Defines a mapping between an environment variable and a log field. + properties: + field: + description: The target field in the log event. + example: log.environment.region + type: string + name: + description: The name of the environment variable to read. + example: AWS_REGION + type: string + required: + - field + - name + type: object ObservabilityPipelineAddFieldsProcessor: description: The `add_fields` processor adds static key-value fields to logs. properties: @@ -22945,6 +23005,50 @@ components: type: string x-enum-varnames: - ADD_FIELDS + ObservabilityPipelineAmazonDataFirehoseSource: + description: The `amazon_data_firehose` source ingests logs from AWS Data Firehose. + properties: + auth: + $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline (e.g., as input to downstream + components). + example: amazon-firehose-source + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSourceType' + required: + - id + - type + type: object + ObservabilityPipelineAmazonDataFirehoseSourceType: + default: amazon_data_firehose + description: The source type. The value should always be `amazon_data_firehose`. + enum: + - amazon_data_firehose + example: amazon_data_firehose + type: string + x-enum-varnames: + - AMAZON_DATA_FIREHOSE + ObservabilityPipelineAwsAuth: + description: "AWS authentication credentials used for accessing AWS services + such as S3.\nIf omitted, the system\u2019s default credentials are used (for + example, the IAM role and environment variables).\n" + properties: + assume_role: + description: The Amazon Resource Name (ARN) of the role to assume. + type: string + external_id: + description: A unique identifier for cross-account role assumption. + type: string + session_name: + description: A session identifier used for logging and tracing the assumed + role session. + type: string + type: object ObservabilityPipelineConfig: description: Specifies the pipeline's configuration, including its sources, processors, and destinations. @@ -22987,6 +23091,9 @@ components: description: A destination for the pipeline. oneOf: - $ref: '#/components/schemas/ObservabilityPipelineDatadogLogsDestination' + - $ref: '#/components/schemas/ObservabilityPipelineGoogleChronicleDestination' + - $ref: '#/components/schemas/ObservabilityPipelineNewRelicDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestination' ObservabilityPipelineConfigProcessorItem: description: A processor for the pipeline. oneOf: @@ -22996,11 +23103,21 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineAddFieldsProcessor' - $ref: '#/components/schemas/ObservabilityPipelineRemoveFieldsProcessor' - $ref: '#/components/schemas/ObservabilityPipelineRenameFieldsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineReduceProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineThrottleProcessor' ObservabilityPipelineConfigSourceItem: description: A data source for the pipeline. oneOf: - $ref: '#/components/schemas/ObservabilityPipelineKafkaSource' - $ref: '#/components/schemas/ObservabilityPipelineDatadogAgentSource' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSource' + - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubSource' + - $ref: '#/components/schemas/ObservabilityPipelineHttpClientSource' + - $ref: '#/components/schemas/ObservabilityPipelineLogstashSource' ObservabilityPipelineCreateRequest: description: Top-level schema representing a pipeline. properties: @@ -23115,6 +23232,259 @@ components: type: string x-enum-varnames: - DATADOG_LOGS + ObservabilityPipelineDecoding: + description: The decoding format used to interpret incoming logs. + enum: + - bytes + - gelf + - json + - syslog + example: json + type: string + x-enum-varnames: + - DECODE_BYTES + - DECODE_GELF + - DECODE_JSON + - DECODE_SYSLOG + ObservabilityPipelineDedupeProcessor: + description: The `dedupe` processor removes duplicate fields in log events. + properties: + fields: + description: A list of log field paths to check for duplicates. + example: + - log.message + - log.error + items: + type: string + type: array + id: + description: The unique identifier for this processor. + example: dedupe-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: service:my-service + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - parse-json-processor + items: + type: string + type: array + mode: + $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessorMode' + type: + $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessorType' + required: + - id + - type + - include + - inputs + - fields + - mode + type: object + ObservabilityPipelineDedupeProcessorMode: + description: The deduplication mode to apply to the fields. + enum: + - match + - ignore + example: match + type: string + x-enum-varnames: + - MATCH + - IGNORE + ObservabilityPipelineDedupeProcessorType: + default: dedupe + description: The processor type. The value should always be `dedupe`. + enum: + - dedupe + example: dedupe + type: string + x-enum-varnames: + - DEDUPE + ObservabilityPipelineEnrichmentTableFile: + description: Defines a static enrichment table loaded from a CSV file. + properties: + encoding: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncoding' + key: + description: Key fields used to look up enrichment values. + items: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItems' + type: array + path: + description: Path to the CSV file. + example: /etc/enrichment/lookup.csv + type: string + schema: + description: Schema defining column names and their types. + items: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItems' + type: array + required: + - encoding + - key + - path + - schema + type: object + ObservabilityPipelineEnrichmentTableFileEncoding: + description: File encoding format. + properties: + delimiter: + description: The `encoding` `delimiter`. + example: ',' + type: string + includes_headers: + description: The `encoding` `includes_headers`. + example: true + type: boolean + type: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileEncodingType' + required: + - type + - delimiter + - includes_headers + type: object + ObservabilityPipelineEnrichmentTableFileEncodingType: + description: The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` + object. + enum: + - csv + example: csv + type: string + x-enum-varnames: + - CSV + ObservabilityPipelineEnrichmentTableFileKeyItems: + description: The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` + object. + properties: + column: + description: The `items` `column`. + example: user_id + type: string + comparison: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileKeyItemsComparison' + field: + description: The `items` `field`. + example: log.user.id + type: string + required: + - column + - comparison + - field + type: object + ObservabilityPipelineEnrichmentTableFileKeyItemsComparison: + description: The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` + object. + enum: + - equals + example: equals + type: string + x-enum-varnames: + - EQUALS + ObservabilityPipelineEnrichmentTableFileSchemaItems: + description: The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` + object. + properties: + column: + description: The `items` `column`. + example: region + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFileSchemaItemsType' + required: + - column + - type + type: object + ObservabilityPipelineEnrichmentTableFileSchemaItemsType: + description: The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` + object. + enum: + - string + - boolean + - integer + - float + - date + - timestamp + example: string + type: string + x-enum-varnames: + - STRING + - BOOLEAN + - INTEGER + - FLOAT + - DATE + - TIMESTAMP + ObservabilityPipelineEnrichmentTableGeoIp: + description: Uses a GeoIP database to enrich logs based on an IP field. + properties: + key_field: + description: Path to the IP field in the log. + example: log.source.ip + type: string + locale: + description: Locale used to resolve geographical names. + example: en + type: string + path: + description: Path to the GeoIP database file. + example: /etc/geoip/GeoLite2-City.mmdb + type: string + required: + - key_field + - locale + - path + type: object + ObservabilityPipelineEnrichmentTableProcessor: + description: The `enrichment_table` processor enriches logs using a static CSV + file or GeoIP database. + properties: + file: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFile' + geoip: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableGeoIp' + id: + description: The unique identifier for this processor. + example: enrichment-table-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: source:my-source + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - add-fields-processor + items: + type: string + type: array + target: + description: Path where enrichment results should be stored in the log. + example: enriched.geoip + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessorType' + required: + - id + - type + - include + - inputs + - target + type: object + ObservabilityPipelineEnrichmentTableProcessorType: + default: enrichment_table + description: The processor type. The value should always be `enrichment_table`. + enum: + - enrichment_table + example: enrichment_table + type: string + x-enum-varnames: + - ENRICHMENT_TABLE ObservabilityPipelineFieldValue: description: Represents a static key-value pair used in various processors. properties: @@ -23172,6 +23542,168 @@ components: type: string x-enum-varnames: - FILTER + ObservabilityPipelineGcpAuth: + description: 'GCP credentials used to authenticate with Google Cloud Storage. + + ' + properties: + credentials_file: + description: Path to the GCP service account key file. + example: /var/secrets/gcp-credentials.json + type: string + required: + - credentials_file + type: object + ObservabilityPipelineGoogleChronicleDestination: + description: The `google_chronicle` destination sends logs to Google Chronicle. + properties: + auth: + $ref: '#/components/schemas/ObservabilityPipelineGcpAuth' + customer_id: + description: The Google Chronicle customer ID. + example: abcdefg123456789 + type: string + encoding: + $ref: '#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationEncoding' + id: + description: The unique identifier for this component. + example: google-chronicle-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this component. + example: + - parse-json-processor + items: + type: string + type: array + log_type: + description: The log type metadata associated with the Chronicle destination. + example: nginx_logs + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationType' + required: + - id + - type + - inputs + - auth + - customer_id + type: object + ObservabilityPipelineGoogleChronicleDestinationEncoding: + description: The encoding format for the logs sent to Chronicle. + enum: + - json + - raw_message + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineGoogleChronicleDestinationType: + default: google_chronicle + description: The destination type. The value should always be `google_chronicle`. + enum: + - google_chronicle + example: google_chronicle + type: string + x-enum-varnames: + - GOOGLE_CHRONICLE + ObservabilityPipelineGooglePubSubSource: + description: The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub + subscription. + properties: + auth: + $ref: '#/components/schemas/ObservabilityPipelineGcpAuth' + decoding: + $ref: '#/components/schemas/ObservabilityPipelineDecoding' + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline (e.g., as input to downstream + components). + example: google-pubsub-source + type: string + project: + description: The GCP project ID that owns the Pub/Sub subscription. + example: my-gcp-project + type: string + subscription: + description: The Pub/Sub subscription name from which messages are consumed. + example: logs-subscription + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubSourceType' + required: + - id + - type + - auth + - decoding + - project + - subscription + type: object + ObservabilityPipelineGooglePubSubSourceType: + default: google_pubsub + description: The source type. The value should always be `google_pubsub`. + enum: + - google_pubsub + example: google_pubsub + type: string + x-enum-varnames: + - GOOGLE_PUBSUB + ObservabilityPipelineHttpClientSource: + description: The `http_client` source scrapes logs from HTTP endpoints at regular + intervals. + properties: + auth_strategy: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientSourceAuthStrategy' + decoding: + $ref: '#/components/schemas/ObservabilityPipelineDecoding' + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline (e.g., as input to downstream + components). + example: http-client-source + type: string + scrape_interval_secs: + description: The interval (in seconds) between HTTP scrape requests. + example: 60 + format: int64 + type: integer + scrape_timeout_secs: + description: The timeout (in seconds) for each scrape request. + example: 10 + format: int64 + type: integer + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientSourceType' + required: + - id + - type + - decoding + type: object + ObservabilityPipelineHttpClientSourceAuthStrategy: + description: Optional authentication strategy for HTTP requests. + enum: + - basic + - bearer + example: basic + type: string + x-enum-varnames: + - BASIC + - BEARER + ObservabilityPipelineHttpClientSourceType: + default: http_client + description: The source type. The value should always be `http_client`. + enum: + - http_client + example: http_client + type: string + x-enum-varnames: + - HTTP_CLIENT ObservabilityPipelineKafkaSource: description: The `kafka` source ingests data from Apache Kafka topics. properties: @@ -23245,6 +23777,169 @@ components: type: string x-enum-varnames: - KAFKA + ObservabilityPipelineLogstashSource: + description: The `logstash` source ingests logs from a Logstash forwarder. + properties: + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline (e.g., as input to downstream + components). + example: logstash-source + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineLogstashSourceType' + required: + - id + - type + type: object + ObservabilityPipelineLogstashSourceType: + default: logstash + description: The source type. The value should always be `logstash`. + enum: + - logstash + example: logstash + type: string + x-enum-varnames: + - LOGSTASH + ObservabilityPipelineNewRelicDestination: + description: The `new_relic` destination sends logs to the New Relic platform. + properties: + id: + description: The unique identifier for this component. + example: new-relic-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this component. + example: + - parse-json-processor + items: + type: string + type: array + region: + $ref: '#/components/schemas/ObservabilityPipelineNewRelicDestinationRegion' + type: + $ref: '#/components/schemas/ObservabilityPipelineNewRelicDestinationType' + required: + - id + - type + - inputs + - region + type: object + ObservabilityPipelineNewRelicDestinationRegion: + description: The New Relic region. + enum: + - us + - eu + example: us + type: string + x-enum-varnames: + - US + - EU + ObservabilityPipelineNewRelicDestinationType: + default: new_relic + description: The destination type. The value should always be `new_relic`. + enum: + - new_relic + example: new_relic + type: string + x-enum-varnames: + - NEW_RELIC + ObservabilityPipelineOcsfMapperProcessor: + description: The `ocsf_mapper` processor transforms logs into the OCSF schema + using a predefined mapping configuration. + properties: + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline. + example: ocsf-mapper-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: service:my-service + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this processor. + example: + - filter-processor + items: + type: string + type: array + mappings: + description: A list of mapping rules to convert events to the OCSF format. + items: + $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMapping' + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessorType' + required: + - id + - type + - include + - inputs + - mappings + type: object + ObservabilityPipelineOcsfMapperProcessorMapping: + description: Defines how specific events are transformed to OCSF using a mapping + configuration. + properties: + include: + description: A Datadog search query used to select the logs that this mapping + should apply to. + example: service:my-service + type: string + mapping: + $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessorMappingMapping' + required: + - include + - mapping + type: object + ObservabilityPipelineOcsfMapperProcessorMappingMapping: + description: The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` + object. + oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineOcsfMappingLibrary' + ObservabilityPipelineOcsfMapperProcessorType: + default: ocsf_mapper + description: The processor type. The value should always be `ocsf_mapper`. + enum: + - ocsf_mapper + example: ocsf_mapper + type: string + x-enum-varnames: + - OCSF_MAPPER + ObservabilityPipelineOcsfMappingLibrary: + description: Predefined library mappings for common log formats. + enum: + - CloudTrail Account Change + - GCP Cloud Audit CreateBucket + - GCP Cloud Audit CreateSink + - GCP Cloud Audit SetIamPolicy + - GCP Cloud Audit UpdateSink + - Github Audit Log API Activity + - Google Workspace Admin Audit addPrivilege + - Microsoft 365 Defender Incident + - Microsoft 365 Defender UserLoggedIn + - Okta System Log Authentication + - Palo Alto Networks Firewall Traffic + example: CloudTrail Account Change + type: string + x-enum-varnames: + - CLOUDTRAIL_ACCOUNT_CHANGE + - GCP_CLOUD_AUDIT_CREATEBUCKET + - GCP_CLOUD_AUDIT_CREATESINK + - GCP_CLOUD_AUDIT_SETIAMPOLICY + - GCP_CLOUD_AUDIT_UPDATESINK + - GITHUB_AUDIT_LOG_API_ACTIVITY + - GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE + - MICROSOFT_365_DEFENDER_INCIDENT + - MICROSOFT_365_DEFENDER_USERLOGGEDIN + - OKTA_SYSTEM_LOG_AUTHENTICATION + - PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC ObservabilityPipelineParseJSONProcessor: description: The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded @@ -23419,6 +24114,103 @@ components: type: string x-enum-varnames: - QUOTA + ObservabilityPipelineReduceProcessor: + description: The `reduce` processor aggregates and merges logs based on matching + keys and merge strategies. + properties: + group_by: + description: A list of fields used to group log events for merging. + example: + - log.user.id + - log.device.id + items: + type: string + type: array + id: + description: The unique identifier for this processor. + example: reduce-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: env:prod + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - parse-json-processor + items: + type: string + type: array + merge_strategies: + description: List of merge strategies defining how values from grouped events + should be combined. + items: + $ref: '#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategy' + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineReduceProcessorType' + required: + - id + - type + - include + - inputs + - group_by + - merge_strategies + type: object + ObservabilityPipelineReduceProcessorMergeStrategy: + description: Defines how a specific field should be merged across grouped events. + properties: + path: + description: The field path in the log event. + example: log.user.roles + type: string + strategy: + $ref: '#/components/schemas/ObservabilityPipelineReduceProcessorMergeStrategyStrategy' + required: + - path + - strategy + type: object + ObservabilityPipelineReduceProcessorMergeStrategyStrategy: + description: The merge strategy to apply. + enum: + - discard + - retain + - sum + - max + - min + - array + - concat + - concat_newline + - concat_raw + - shortest_array + - longest_array + - flat_unique + example: flat_unique + type: string + x-enum-varnames: + - DISCARD + - RETAIN + - SUM + - MAX + - MIN + - ARRAY + - CONCAT + - CONCAT_NEWLINE + - CONCAT_RAW + - SHORTEST_ARRAY + - LONGEST_ARRAY + - FLAT_UNIQUE + ObservabilityPipelineReduceProcessorType: + default: reduce + description: The processor type. The value should always be `reduce`. + enum: + - reduce + example: reduce + type: string + x-enum-varnames: + - REDUCE ObservabilityPipelineRemoveFieldsProcessor: description: The `remove_fields` processor deletes specified fields from logs. properties: @@ -23534,6 +24326,112 @@ components: type: string x-enum-varnames: - RENAME_FIELDS + ObservabilityPipelineSentinelOneDestination: + description: The `sentinel_one` destination sends logs to SentinelOne. + properties: + id: + description: The unique identifier for this component. + example: sentinelone-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this component. + example: + - filter-processor + items: + type: string + type: array + region: + $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestinationRegion' + type: + $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestinationType' + required: + - id + - type + - inputs + - region + type: object + ObservabilityPipelineSentinelOneDestinationRegion: + description: The SentinelOne region to send logs to. + enum: + - us + - eu + - ca + - data_set_us + example: us + type: string + x-enum-varnames: + - US + - EU + - CA + - DATA_SET_US + ObservabilityPipelineSentinelOneDestinationType: + default: sentinel_one + description: The destination type. The value should always be `sentinel_one`. + enum: + - sentinel_one + example: sentinel_one + type: string + x-enum-varnames: + - SENTINEL_ONE + ObservabilityPipelineThrottleProcessor: + description: The `throttle` processor limits the number of events that pass + through over a given time window. + properties: + group_by: + description: Optional list of fields used to group events before applying + throttling. + example: + - log.user.id + items: + type: string + type: array + id: + description: The unique identifier for this processor. + example: throttle-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: env:prod + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - datadog-agent-source + items: + type: string + type: array + threshold: + description: The number of events to allow before throttling is applied. + example: 1000 + format: int64 + type: integer + type: + $ref: '#/components/schemas/ObservabilityPipelineThrottleProcessorType' + window: + description: The time window in seconds over which the threshold applies. + example: 60.0 + format: double + type: number + required: + - id + - type + - include + - inputs + - threshold + - window + type: object + ObservabilityPipelineThrottleProcessorType: + default: throttle + description: The processor type. The value should always be `throttle`. + enum: + - throttle + example: throttle + type: string + x-enum-varnames: + - THROTTLE ObservabilityPipelineTls: description: Configuration for enabling TLS encryption. properties: diff --git a/data/api/v2/full_spec_deref.json b/data/api/v2/full_spec_deref.json index 176850710c78c..a32c3fad05f10 100644 --- a/data/api/v2/full_spec_deref.json +++ b/data/api/v2/full_spec_deref.json @@ -152674,6 +152674,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -153151,6 +153336,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -153326,6 +154128,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -153376,6 +154480,107 @@ ], "type": "object" }, + "ObservabilityPipelineAddEnvVarsProcessor": { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + "ObservabilityPipelineAddEnvVarsProcessorType": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "ObservabilityPipelineAddEnvVarsProcessorVariable": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, "ObservabilityPipelineAddFieldsProcessor": { "description": "The `add_fields` processor adds static key-value fields to logs.", "properties": { @@ -153457,6 +154662,103 @@ "ADD_FIELDS" ] }, + "ObservabilityPipelineAmazonDataFirehoseSource": { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineAmazonDataFirehoseSourceType": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + }, + "ObservabilityPipelineAwsAuth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, "ObservabilityPipelineConfig": { "description": "Specifies the pipeline's configuration, including its sources, processors, and destinations.", "properties": { @@ -153511,6 +154813,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -153988,42 +155475,659 @@ "inputs" ], "type": "object" - } - ] - }, - "type": "array" - }, - "sources": { - "description": "A list of configured data sources for the pipeline.", - "example": [ - { - "id": "datadog-agent-source", - "type": "datadog_agent" - } - ], - "items": { - "description": "A data source for the pipeline.", - "oneOf": [ + }, { - "description": "The `kafka` source ingests data from Apache Kafka topics.", + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", "properties": { - "group_id": { - "description": "Consumer group ID used by the Kafka client.", - "example": "consumer-group-0", + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", "type": "string" }, - "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "kafka-source", + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", "type": "string" }, - "librdkafka_options": { - "description": "Optional list of advanced Kafka client configuration options, defined as key-value pairs.", + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], "items": { - "description": "Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security settings.", - "properties": { - "name": { - "description": "The name of the `librdkafka` configuration option to set.", + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "sources": { + "description": "A list of configured data sources for the pipeline.", + "example": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ], + "items": { + "description": "A data source for the pipeline.", + "oneOf": [ + { + "description": "The `kafka` source ingests data from Apache Kafka topics.", + "properties": { + "group_id": { + "description": "Consumer group ID used by the Kafka client.", + "example": "consumer-group-0", + "type": "string" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "kafka-source", + "type": "string" + }, + "librdkafka_options": { + "description": "Optional list of advanced Kafka client configuration options, defined as key-value pairs.", + "items": { + "description": "Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security settings.", + "properties": { + "name": { + "description": "The name of the `librdkafka` configuration option to set.", "example": "fetch.message.max.bytes", "type": "string" }, @@ -154163,6 +156267,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -154216,6 +156622,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -154679,6 +157270,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -154844,6 +158052,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -154892,22 +158402,207 @@ "type": "array" }, "type": { - "default": "datadog_logs", - "description": "The destination type. The value should always be `datadog_logs`.", + "default": "datadog_logs", + "description": "The destination type. The value should always be `datadog_logs`.", + "enum": [ + "datadog_logs" + ], + "example": "datadog_logs", + "type": "string", + "x-enum-varnames": [ + "DATADOG_LOGS" + ] + } + }, + "required": [ + "id", + "type", + "inputs" + ], + "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", "enum": [ - "datadog_logs" + "sentinel_one" ], - "example": "datadog_logs", + "example": "sentinel_one", "type": "string", "x-enum-varnames": [ - "DATADOG_LOGS" + "SENTINEL_ONE" ] } }, "required": [ "id", "type", - "inputs" + "inputs", + "region" ], "type": "object" } @@ -155387,6 +159082,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -155562,6 +159874,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -155666,6 +160280,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -155881,55 +160680,357 @@ "enforce": { "description": "Unit for quota enforcement in bytes for data size or events for count.", "enum": [ - "bytes", - "events" + "bytes", + "events" + ], + "example": "bytes", + "type": "string", + "x-enum-varnames": [ + "BYTES", + "EVENTS" + ] + }, + "limit": { + "description": "The limit for quota enforcement.", + "example": 1000, + "format": "int64", + "type": "integer" + } + }, + "required": [ + "enforce", + "limit" + ], + "type": "object" + } + }, + "required": [ + "fields", + "limit" + ], + "type": "object" + }, + "type": "array" + }, + "partition_fields": { + "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "quota", + "description": "The processor type. The value should always be `quota`.", + "enum": [ + "quota" + ], + "example": "quota", + "type": "string", + "x-enum-varnames": [ + "QUOTA" + ] + } + }, + "required": [ + "id", + "type", + "include", + "name", + "drop_events", + "limit", + "inputs" + ], + "type": "object" + }, + { + "description": "The `add_fields` processor adds static key-value fields to logs.", + "properties": { + "fields": { + "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "items": { + "description": "Represents a static key-value pair used in various processors.", + "properties": { + "name": { + "description": "The field name.", + "example": "field_name", + "type": "string" + }, + "value": { + "description": "The field value.", + "example": "field_value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", + "example": "add-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" ], - "example": "bytes", + "example": "CloudTrail Account Change", "type": "string", "x-enum-varnames": [ - "BYTES", - "EVENTS" + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" ] - }, - "limit": { - "description": "The limit for quota enforcement.", - "example": 1000, - "format": "int64", - "type": "integer" } - }, - "required": [ - "enforce", - "limit" - ], - "type": "object" + ] } }, "required": [ - "fields", - "limit" + "include", + "mapping" ], "type": "object" }, "type": "array" }, - "partition_fields": { - "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "quota", - "description": "The processor type. The value should always be `quota`.", + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", "enum": [ - "quota" + "ocsf_mapper" ], - "example": "quota", + "example": "ocsf_mapper", "type": "string", "x-enum-varnames": [ - "QUOTA" + "OCSF_MAPPER" ] } }, @@ -155937,43 +161038,97 @@ "id", "type", "include", - "name", - "drop_events", - "limit", - "inputs" + "inputs", + "mappings" ], "type": "object" }, { - "description": "The `add_fields` processor adds static key-value fields to logs.", + "description": "The `add_env_vars` processor adds environment variable values to log events.", "properties": { - "fields": { - "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], "items": { - "description": "Represents a static key-value pair used in various processors.", + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", "properties": { - "name": { - "description": "The field name.", - "example": "field_name", + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", "type": "string" }, - "value": { - "description": "The field value.", - "example": "field_value", + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", "type": "string" } }, "required": [ - "name", - "value" + "field", + "name" ], "type": "object" }, "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", - "example": "add-fields-processor", + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", "type": "string" }, "include": { @@ -155982,25 +161137,38 @@ "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", "enum": [ - "add_fields" + "dedupe" ], - "example": "add_fields", + "example": "dedupe", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "DEDUPE" ] } }, @@ -156008,55 +161176,201 @@ "id", "type", "include", + "inputs", "fields", - "inputs" + "mode" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", - "example": [ - "field1", - "field2" + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" ], - "items": { - "type": "string" + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } }, - "type": "array" + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "remove_fields" + "enrichment_table" ], - "example": "remove_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -156064,56 +161378,145 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], "items": { - "description": "Defines how to rename a field in log events.", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", "type": "string" }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] } }, "required": [ - "source", - "destination", - "preserve_source" + "path", + "strategy" ], "type": "object" }, "type": "array" }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -156122,25 +161525,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -156318,6 +161734,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -156416,6 +162134,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -156853,17 +162756,621 @@ "type": "array" }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -156872,25 +163379,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -157068,6 +163588,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -157169,6 +163991,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -157646,6 +164653,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -157699,25 +165323,339 @@ }, "type": "array" }, - "sasl": { - "description": "Specifies the SASL mechanism for authenticating with a Kafka cluster.", - "properties": { - "mechanism": { - "description": "SASL mechanism used for Kafka authentication.", - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string", - "x-enum-varnames": [ - "PLAIN", - "SCRAMNOT_SHANOT_256", - "SCRAMNOT_SHANOT_512" - ] - } - }, - "type": "object" + "sasl": { + "description": "Specifies the SASL mechanism for authenticating with a Kafka cluster.", + "properties": { + "mechanism": { + "description": "SASL mechanism used for Kafka authentication.", + "enum": [ + "PLAIN", + "SCRAM-SHA-256", + "SCRAM-SHA-512" + ], + "type": "string", + "x-enum-varnames": [ + "PLAIN", + "SCRAMNOT_SHANOT_256", + "SCRAMNOT_SHANOT_512" + ] + } + }, + "type": "object" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "topics": { + "description": "A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.", + "example": [ + "topic1", + "topic2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "kafka", + "description": "The source type. The value should always be `kafka`.", + "enum": [ + "kafka" + ], + "example": "kafka", + "type": "string", + "x-enum-varnames": [ + "KAFKA" + ] + } + }, + "required": [ + "id", + "type", + "group_id", + "topics" + ], + "type": "object" + }, + { + "description": "The `datadog_agent` source collects logs from the Datadog Agent.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "datadog-agent-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "datadog_agent", + "description": "The source type. The value should always be `datadog_agent`.", + "enum": [ + "datadog_agent" + ], + "example": "datadog_agent", + "type": "string", + "x-enum-varnames": [ + "DATADOG_AGENT" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" }, "tls": { "description": "Configuration for enabling TLS encryption.", @@ -157741,44 +165679,32 @@ ], "type": "object" }, - "topics": { - "description": "A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.", - "example": [ - "topic1", - "topic2" - ], - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "kafka", - "description": "The source type. The value should always be `kafka`.", + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", "enum": [ - "kafka" + "http_client" ], - "example": "kafka", + "example": "http_client", "type": "string", "x-enum-varnames": [ - "KAFKA" + "HTTP_CLIENT" ] } }, "required": [ "id", "type", - "group_id", - "topics" + "decoding" ], "type": "object" }, { - "description": "The `datadog_agent` source collects logs from the Datadog Agent.", + "description": "The `logstash` source ingests logs from a Logstash forwarder.", "properties": { "id": { "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "datadog-agent-source", + "example": "logstash-source", "type": "string" }, "tls": { @@ -157804,15 +165730,15 @@ "type": "object" }, "type": { - "default": "datadog_agent", - "description": "The source type. The value should always be `datadog_agent`.", + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", "enum": [ - "datadog_agent" + "logstash" ], - "example": "datadog_agent", + "example": "logstash", "type": "string", "x-enum-varnames": [ - "DATADOG_AGENT" + "LOGSTASH" ] } }, @@ -157957,6 +165883,625 @@ "DATADOG_LOGS" ] }, + "ObservabilityPipelineDecoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "ObservabilityPipelineDedupeProcessor": { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + "ObservabilityPipelineDedupeProcessorMode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "ObservabilityPipelineDedupeProcessorType": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + }, + "ObservabilityPipelineEnrichmentTableFile": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileEncoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileEncodingType": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + }, + "ObservabilityPipelineEnrichmentTableFileKeyItems": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileKeyItemsComparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "ObservabilityPipelineEnrichmentTableFileSchemaItems": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileSchemaItemsType": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + }, + "ObservabilityPipelineEnrichmentTableGeoIp": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableProcessor": { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableProcessorType": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + }, "ObservabilityPipelineFieldValue": { "description": "Represents a static key-value pair used in various processors.", "properties": { @@ -158033,6 +166578,345 @@ "FILTER" ] }, + "ObservabilityPipelineGcpAuth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "ObservabilityPipelineGoogleChronicleDestination": { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + "ObservabilityPipelineGoogleChronicleDestinationEncoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "ObservabilityPipelineGoogleChronicleDestinationType": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + }, + "ObservabilityPipelineGooglePubSubSource": { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + "ObservabilityPipelineGooglePubSubSourceType": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + }, + "ObservabilityPipelineHttpClientSource": { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + "ObservabilityPipelineHttpClientSourceAuthStrategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "ObservabilityPipelineHttpClientSourceType": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + }, "ObservabilityPipelineKafkaSource": { "description": "The `kafka` source ingests data from Apache Kafka topics.", "properties": { @@ -158196,6 +167080,374 @@ "KAFKA" ] }, + "ObservabilityPipelineLogstashSource": { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineLogstashSourceType": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + }, + "ObservabilityPipelineNewRelicDestination": { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + "ObservabilityPipelineNewRelicDestinationRegion": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "ObservabilityPipelineNewRelicDestinationType": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + }, + "ObservabilityPipelineOcsfMapperProcessor": { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + "ObservabilityPipelineOcsfMapperProcessorMapping": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "ObservabilityPipelineOcsfMapperProcessorMappingMapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + }, + "ObservabilityPipelineOcsfMapperProcessorType": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + }, + "ObservabilityPipelineOcsfMappingLibrary": { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + }, "ObservabilityPipelineParseJSONProcessor": { "description": "The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.", "properties": { @@ -158553,6 +167805,208 @@ "QUOTA" ] }, + "ObservabilityPipelineReduceProcessor": { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + "ObservabilityPipelineReduceProcessorMergeStrategy": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "ObservabilityPipelineReduceProcessorMergeStrategyStrategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + }, + "ObservabilityPipelineReduceProcessorType": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + }, "ObservabilityPipelineRemoveFieldsProcessor": { "description": "The `remove_fields` processor deletes specified fields from logs.", "properties": { @@ -158734,6 +168188,171 @@ "RENAME_FIELDS" ] }, + "ObservabilityPipelineSentinelOneDestination": { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + "ObservabilityPipelineSentinelOneDestinationRegion": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "ObservabilityPipelineSentinelOneDestinationType": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + }, + "ObservabilityPipelineThrottleProcessor": { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" + }, + "ObservabilityPipelineThrottleProcessorType": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, "ObservabilityPipelineTls": { "description": "Configuration for enabling TLS encryption.", "properties": { @@ -396965,6 +406584,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -397442,6 +407246,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -397617,6 +408038,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -397696,11 +408419,178 @@ "description": "A destination for the pipeline.", "oneOf": [ { - "description": "The `datadog_logs` destination forwards logs to Datadog Log Management.", + "description": "The `datadog_logs` destination forwards logs to Datadog Log Management.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "datadog-logs-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "datadog_logs", + "description": "The destination type. The value should always be `datadog_logs`.", + "enum": [ + "datadog_logs" + ], + "example": "datadog_logs", + "type": "string", + "x-enum-varnames": [ + "DATADOG_LOGS" + ] + } + }, + "required": [ + "id", + "type", + "inputs" + ], + "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", "properties": { "id": { "description": "The unique identifier for this component.", - "example": "datadog-logs-destination", + "example": "sentinelone-destination", "type": "string" }, "inputs": { @@ -397713,23 +408603,41 @@ }, "type": "array" }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, "type": { - "default": "datadog_logs", - "description": "The destination type. The value should always be `datadog_logs`.", + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", "enum": [ - "datadog_logs" + "sentinel_one" ], - "example": "datadog_logs", + "example": "sentinel_one", "type": "string", "x-enum-varnames": [ - "DATADOG_LOGS" + "SENTINEL_ONE" ] } }, "required": [ "id", "type", - "inputs" + "inputs", + "region" ], "type": "object" } @@ -398209,6 +409117,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -398384,6 +409909,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -398803,6 +410630,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -399034,39 +411046,341 @@ "format": "int64", "type": "integer" } - }, - "required": [ - "enforce", - "limit" - ], - "type": "object" + }, + "required": [ + "enforce", + "limit" + ], + "type": "object" + } + }, + "required": [ + "fields", + "limit" + ], + "type": "object" + }, + "type": "array" + }, + "partition_fields": { + "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "quota", + "description": "The processor type. The value should always be `quota`.", + "enum": [ + "quota" + ], + "example": "quota", + "type": "string", + "x-enum-varnames": [ + "QUOTA" + ] + } + }, + "required": [ + "id", + "type", + "include", + "name", + "drop_events", + "limit", + "inputs" + ], + "type": "object" + }, + { + "description": "The `add_fields` processor adds static key-value fields to logs.", + "properties": { + "fields": { + "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "items": { + "description": "Represents a static key-value pair used in various processors.", + "properties": { + "name": { + "description": "The field name.", + "example": "field_name", + "type": "string" + }, + "value": { + "description": "The field value.", + "example": "field_value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", + "example": "add-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] } }, "required": [ - "fields", - "limit" + "include", + "mapping" ], "type": "object" }, "type": "array" }, - "partition_fields": { - "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "quota", - "description": "The processor type. The value should always be `quota`.", + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", "enum": [ - "quota" + "ocsf_mapper" ], - "example": "quota", + "example": "ocsf_mapper", "type": "string", "x-enum-varnames": [ - "QUOTA" + "OCSF_MAPPER" ] } }, @@ -399074,43 +411388,97 @@ "id", "type", "include", - "name", - "drop_events", - "limit", - "inputs" + "inputs", + "mappings" ], "type": "object" }, { - "description": "The `add_fields` processor adds static key-value fields to logs.", + "description": "The `add_env_vars` processor adds environment variable values to log events.", "properties": { - "fields": { - "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], "items": { - "description": "Represents a static key-value pair used in various processors.", + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", "properties": { - "name": { - "description": "The field name.", - "example": "field_name", + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", "type": "string" }, - "value": { - "description": "The field value.", - "example": "field_value", + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", "type": "string" } }, "required": [ - "name", - "value" + "field", + "name" ], "type": "object" }, "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", - "example": "add-fields-processor", + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", "type": "string" }, "include": { @@ -399119,25 +411487,38 @@ "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", "enum": [ - "add_fields" + "dedupe" ], - "example": "add_fields", + "example": "dedupe", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "DEDUPE" ] } }, @@ -399145,55 +411526,201 @@ "id", "type", "include", + "inputs", "fields", - "inputs" + "mode" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", - "example": [ - "field1", - "field2" + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" ], - "items": { - "type": "string" + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } }, - "type": "array" + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "remove_fields" + "enrichment_table" ], - "example": "remove_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -399201,56 +411728,145 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], "items": { - "description": "Defines how to rename a field in log events.", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", "type": "string" }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] } }, "required": [ - "source", - "destination", - "preserve_source" + "path", + "strategy" ], "type": "object" }, "type": "array" }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -399259,25 +411875,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -399455,6 +412084,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -399656,6 +412587,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -399968,29 +413084,600 @@ }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "add_fields" + "enrichment_table" ], - "example": "add_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -399998,19 +413685,19 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", + "group_by": { + "description": "A list of fields used to group log events for merging.", "example": [ - "field1", - "field2" + "log.user.id", + "log.device.id" ], "items": { "type": "string" @@ -400018,35 +413705,87 @@ "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "reduce-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", "enum": [ - "remove_fields" + "reduce" ], - "example": "remove_fields", + "example": "reduce", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "REDUCE" ] } }, @@ -400054,56 +413793,37 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "group_by", + "merge_strategies" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], "items": { - "description": "Defines how to rename a field in log events.", - "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", - "type": "string" - }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" - } - }, - "required": [ - "source", - "destination", - "preserve_source" - ], - "type": "object" + "type": "string" }, "type": "array" }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -400112,25 +413832,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -400308,6 +414041,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -400429,6 +414464,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -400906,6 +415126,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -401081,6 +415918,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, diff --git a/static/resources/json/full_spec_v2.json b/static/resources/json/full_spec_v2.json index 176850710c78c..a32c3fad05f10 100644 --- a/static/resources/json/full_spec_v2.json +++ b/static/resources/json/full_spec_v2.json @@ -152674,6 +152674,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -153151,6 +153336,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -153326,6 +154128,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -153376,6 +154480,107 @@ ], "type": "object" }, + "ObservabilityPipelineAddEnvVarsProcessor": { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + "ObservabilityPipelineAddEnvVarsProcessorType": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "ObservabilityPipelineAddEnvVarsProcessorVariable": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, "ObservabilityPipelineAddFieldsProcessor": { "description": "The `add_fields` processor adds static key-value fields to logs.", "properties": { @@ -153457,6 +154662,103 @@ "ADD_FIELDS" ] }, + "ObservabilityPipelineAmazonDataFirehoseSource": { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineAmazonDataFirehoseSourceType": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + }, + "ObservabilityPipelineAwsAuth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, "ObservabilityPipelineConfig": { "description": "Specifies the pipeline's configuration, including its sources, processors, and destinations.", "properties": { @@ -153511,6 +154813,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -153988,42 +155475,659 @@ "inputs" ], "type": "object" - } - ] - }, - "type": "array" - }, - "sources": { - "description": "A list of configured data sources for the pipeline.", - "example": [ - { - "id": "datadog-agent-source", - "type": "datadog_agent" - } - ], - "items": { - "description": "A data source for the pipeline.", - "oneOf": [ + }, { - "description": "The `kafka` source ingests data from Apache Kafka topics.", + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", "properties": { - "group_id": { - "description": "Consumer group ID used by the Kafka client.", - "example": "consumer-group-0", + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", "type": "string" }, - "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "kafka-source", + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", "type": "string" }, - "librdkafka_options": { - "description": "Optional list of advanced Kafka client configuration options, defined as key-value pairs.", + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], "items": { - "description": "Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security settings.", - "properties": { - "name": { - "description": "The name of the `librdkafka` configuration option to set.", + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "sources": { + "description": "A list of configured data sources for the pipeline.", + "example": [ + { + "id": "datadog-agent-source", + "type": "datadog_agent" + } + ], + "items": { + "description": "A data source for the pipeline.", + "oneOf": [ + { + "description": "The `kafka` source ingests data from Apache Kafka topics.", + "properties": { + "group_id": { + "description": "Consumer group ID used by the Kafka client.", + "example": "consumer-group-0", + "type": "string" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "kafka-source", + "type": "string" + }, + "librdkafka_options": { + "description": "Optional list of advanced Kafka client configuration options, defined as key-value pairs.", + "items": { + "description": "Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security settings.", + "properties": { + "name": { + "description": "The name of the `librdkafka` configuration option to set.", "example": "fetch.message.max.bytes", "type": "string" }, @@ -154163,6 +156267,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -154216,6 +156622,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -154679,6 +157270,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -154844,6 +158052,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -154892,22 +158402,207 @@ "type": "array" }, "type": { - "default": "datadog_logs", - "description": "The destination type. The value should always be `datadog_logs`.", + "default": "datadog_logs", + "description": "The destination type. The value should always be `datadog_logs`.", + "enum": [ + "datadog_logs" + ], + "example": "datadog_logs", + "type": "string", + "x-enum-varnames": [ + "DATADOG_LOGS" + ] + } + }, + "required": [ + "id", + "type", + "inputs" + ], + "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", "enum": [ - "datadog_logs" + "sentinel_one" ], - "example": "datadog_logs", + "example": "sentinel_one", "type": "string", "x-enum-varnames": [ - "DATADOG_LOGS" + "SENTINEL_ONE" ] } }, "required": [ "id", "type", - "inputs" + "inputs", + "region" ], "type": "object" } @@ -155387,6 +159082,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -155562,6 +159874,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -155666,6 +160280,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -155881,55 +160680,357 @@ "enforce": { "description": "Unit for quota enforcement in bytes for data size or events for count.", "enum": [ - "bytes", - "events" + "bytes", + "events" + ], + "example": "bytes", + "type": "string", + "x-enum-varnames": [ + "BYTES", + "EVENTS" + ] + }, + "limit": { + "description": "The limit for quota enforcement.", + "example": 1000, + "format": "int64", + "type": "integer" + } + }, + "required": [ + "enforce", + "limit" + ], + "type": "object" + } + }, + "required": [ + "fields", + "limit" + ], + "type": "object" + }, + "type": "array" + }, + "partition_fields": { + "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "quota", + "description": "The processor type. The value should always be `quota`.", + "enum": [ + "quota" + ], + "example": "quota", + "type": "string", + "x-enum-varnames": [ + "QUOTA" + ] + } + }, + "required": [ + "id", + "type", + "include", + "name", + "drop_events", + "limit", + "inputs" + ], + "type": "object" + }, + { + "description": "The `add_fields` processor adds static key-value fields to logs.", + "properties": { + "fields": { + "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "items": { + "description": "Represents a static key-value pair used in various processors.", + "properties": { + "name": { + "description": "The field name.", + "example": "field_name", + "type": "string" + }, + "value": { + "description": "The field value.", + "example": "field_value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", + "example": "add-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" ], - "example": "bytes", + "example": "CloudTrail Account Change", "type": "string", "x-enum-varnames": [ - "BYTES", - "EVENTS" + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" ] - }, - "limit": { - "description": "The limit for quota enforcement.", - "example": 1000, - "format": "int64", - "type": "integer" } - }, - "required": [ - "enforce", - "limit" - ], - "type": "object" + ] } }, "required": [ - "fields", - "limit" + "include", + "mapping" ], "type": "object" }, "type": "array" }, - "partition_fields": { - "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "quota", - "description": "The processor type. The value should always be `quota`.", + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", "enum": [ - "quota" + "ocsf_mapper" ], - "example": "quota", + "example": "ocsf_mapper", "type": "string", "x-enum-varnames": [ - "QUOTA" + "OCSF_MAPPER" ] } }, @@ -155937,43 +161038,97 @@ "id", "type", "include", - "name", - "drop_events", - "limit", - "inputs" + "inputs", + "mappings" ], "type": "object" }, { - "description": "The `add_fields` processor adds static key-value fields to logs.", + "description": "The `add_env_vars` processor adds environment variable values to log events.", "properties": { - "fields": { - "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], "items": { - "description": "Represents a static key-value pair used in various processors.", + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", "properties": { - "name": { - "description": "The field name.", - "example": "field_name", + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", "type": "string" }, - "value": { - "description": "The field value.", - "example": "field_value", + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", "type": "string" } }, "required": [ - "name", - "value" + "field", + "name" ], "type": "object" }, "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", - "example": "add-fields-processor", + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", "type": "string" }, "include": { @@ -155982,25 +161137,38 @@ "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", "enum": [ - "add_fields" + "dedupe" ], - "example": "add_fields", + "example": "dedupe", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "DEDUPE" ] } }, @@ -156008,55 +161176,201 @@ "id", "type", "include", + "inputs", "fields", - "inputs" + "mode" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", - "example": [ - "field1", - "field2" + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" ], - "items": { - "type": "string" + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } }, - "type": "array" + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "remove_fields" + "enrichment_table" ], - "example": "remove_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -156064,56 +161378,145 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], "items": { - "description": "Defines how to rename a field in log events.", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", "type": "string" }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] } }, "required": [ - "source", - "destination", - "preserve_source" + "path", + "strategy" ], "type": "object" }, "type": "array" }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -156122,25 +161525,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -156318,6 +161734,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -156416,6 +162134,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -156853,17 +162756,621 @@ "type": "array" }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -156872,25 +163379,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -157068,6 +163588,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -157169,6 +163991,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -157646,6 +164653,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -157699,25 +165323,339 @@ }, "type": "array" }, - "sasl": { - "description": "Specifies the SASL mechanism for authenticating with a Kafka cluster.", - "properties": { - "mechanism": { - "description": "SASL mechanism used for Kafka authentication.", - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string", - "x-enum-varnames": [ - "PLAIN", - "SCRAMNOT_SHANOT_256", - "SCRAMNOT_SHANOT_512" - ] - } - }, - "type": "object" + "sasl": { + "description": "Specifies the SASL mechanism for authenticating with a Kafka cluster.", + "properties": { + "mechanism": { + "description": "SASL mechanism used for Kafka authentication.", + "enum": [ + "PLAIN", + "SCRAM-SHA-256", + "SCRAM-SHA-512" + ], + "type": "string", + "x-enum-varnames": [ + "PLAIN", + "SCRAMNOT_SHANOT_256", + "SCRAMNOT_SHANOT_512" + ] + } + }, + "type": "object" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "topics": { + "description": "A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.", + "example": [ + "topic1", + "topic2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "kafka", + "description": "The source type. The value should always be `kafka`.", + "enum": [ + "kafka" + ], + "example": "kafka", + "type": "string", + "x-enum-varnames": [ + "KAFKA" + ] + } + }, + "required": [ + "id", + "type", + "group_id", + "topics" + ], + "type": "object" + }, + { + "description": "The `datadog_agent` source collects logs from the Datadog Agent.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "datadog-agent-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "datadog_agent", + "description": "The source type. The value should always be `datadog_agent`.", + "enum": [ + "datadog_agent" + ], + "example": "datadog_agent", + "type": "string", + "x-enum-varnames": [ + "DATADOG_AGENT" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" }, "tls": { "description": "Configuration for enabling TLS encryption.", @@ -157741,44 +165679,32 @@ ], "type": "object" }, - "topics": { - "description": "A list of Kafka topic names to subscribe to. The source ingests messages from each topic specified.", - "example": [ - "topic1", - "topic2" - ], - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "kafka", - "description": "The source type. The value should always be `kafka`.", + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", "enum": [ - "kafka" + "http_client" ], - "example": "kafka", + "example": "http_client", "type": "string", "x-enum-varnames": [ - "KAFKA" + "HTTP_CLIENT" ] } }, "required": [ "id", "type", - "group_id", - "topics" + "decoding" ], "type": "object" }, { - "description": "The `datadog_agent` source collects logs from the Datadog Agent.", + "description": "The `logstash` source ingests logs from a Logstash forwarder.", "properties": { "id": { "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "datadog-agent-source", + "example": "logstash-source", "type": "string" }, "tls": { @@ -157804,15 +165730,15 @@ "type": "object" }, "type": { - "default": "datadog_agent", - "description": "The source type. The value should always be `datadog_agent`.", + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", "enum": [ - "datadog_agent" + "logstash" ], - "example": "datadog_agent", + "example": "logstash", "type": "string", "x-enum-varnames": [ - "DATADOG_AGENT" + "LOGSTASH" ] } }, @@ -157957,6 +165883,625 @@ "DATADOG_LOGS" ] }, + "ObservabilityPipelineDecoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "ObservabilityPipelineDedupeProcessor": { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + "ObservabilityPipelineDedupeProcessorMode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "ObservabilityPipelineDedupeProcessorType": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + }, + "ObservabilityPipelineEnrichmentTableFile": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileEncoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileEncodingType": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + }, + "ObservabilityPipelineEnrichmentTableFileKeyItems": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileKeyItemsComparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "ObservabilityPipelineEnrichmentTableFileSchemaItems": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableFileSchemaItemsType": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + }, + "ObservabilityPipelineEnrichmentTableGeoIp": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableProcessor": { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + "ObservabilityPipelineEnrichmentTableProcessorType": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + }, "ObservabilityPipelineFieldValue": { "description": "Represents a static key-value pair used in various processors.", "properties": { @@ -158033,6 +166578,345 @@ "FILTER" ] }, + "ObservabilityPipelineGcpAuth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "ObservabilityPipelineGoogleChronicleDestination": { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + "ObservabilityPipelineGoogleChronicleDestinationEncoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "ObservabilityPipelineGoogleChronicleDestinationType": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + }, + "ObservabilityPipelineGooglePubSubSource": { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + "ObservabilityPipelineGooglePubSubSourceType": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + }, + "ObservabilityPipelineHttpClientSource": { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + "ObservabilityPipelineHttpClientSourceAuthStrategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "ObservabilityPipelineHttpClientSourceType": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + }, "ObservabilityPipelineKafkaSource": { "description": "The `kafka` source ingests data from Apache Kafka topics.", "properties": { @@ -158196,6 +167080,374 @@ "KAFKA" ] }, + "ObservabilityPipelineLogstashSource": { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + "ObservabilityPipelineLogstashSourceType": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + }, + "ObservabilityPipelineNewRelicDestination": { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + "ObservabilityPipelineNewRelicDestinationRegion": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "ObservabilityPipelineNewRelicDestinationType": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + }, + "ObservabilityPipelineOcsfMapperProcessor": { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + "ObservabilityPipelineOcsfMapperProcessorMapping": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "ObservabilityPipelineOcsfMapperProcessorMappingMapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + }, + "ObservabilityPipelineOcsfMapperProcessorType": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + }, + "ObservabilityPipelineOcsfMappingLibrary": { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + }, "ObservabilityPipelineParseJSONProcessor": { "description": "The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string.", "properties": { @@ -158553,6 +167805,208 @@ "QUOTA" ] }, + "ObservabilityPipelineReduceProcessor": { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + "ObservabilityPipelineReduceProcessorMergeStrategy": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "ObservabilityPipelineReduceProcessorMergeStrategyStrategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + }, + "ObservabilityPipelineReduceProcessorType": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + }, "ObservabilityPipelineRemoveFieldsProcessor": { "description": "The `remove_fields` processor deletes specified fields from logs.", "properties": { @@ -158734,6 +168188,171 @@ "RENAME_FIELDS" ] }, + "ObservabilityPipelineSentinelOneDestination": { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + "ObservabilityPipelineSentinelOneDestinationRegion": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "ObservabilityPipelineSentinelOneDestinationType": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + }, + "ObservabilityPipelineThrottleProcessor": { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" + }, + "ObservabilityPipelineThrottleProcessorType": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, "ObservabilityPipelineTls": { "description": "Configuration for enabling TLS encryption.", "properties": { @@ -396965,6 +406584,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -397442,6 +407246,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -397617,6 +408038,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -397696,11 +408419,178 @@ "description": "A destination for the pipeline.", "oneOf": [ { - "description": "The `datadog_logs` destination forwards logs to Datadog Log Management.", + "description": "The `datadog_logs` destination forwards logs to Datadog Log Management.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "datadog-logs-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "datadog_logs", + "description": "The destination type. The value should always be `datadog_logs`.", + "enum": [ + "datadog_logs" + ], + "example": "datadog_logs", + "type": "string", + "x-enum-varnames": [ + "DATADOG_LOGS" + ] + } + }, + "required": [ + "id", + "type", + "inputs" + ], + "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", "properties": { "id": { "description": "The unique identifier for this component.", - "example": "datadog-logs-destination", + "example": "sentinelone-destination", "type": "string" }, "inputs": { @@ -397713,23 +408603,41 @@ }, "type": "array" }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, "type": { - "default": "datadog_logs", - "description": "The destination type. The value should always be `datadog_logs`.", + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", "enum": [ - "datadog_logs" + "sentinel_one" ], - "example": "datadog_logs", + "example": "sentinel_one", "type": "string", "x-enum-varnames": [ - "DATADOG_LOGS" + "SENTINEL_ONE" ] } }, "required": [ "id", "type", - "inputs" + "inputs", + "region" ], "type": "object" } @@ -398209,6 +409117,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -398384,6 +409909,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -398803,6 +410630,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -399034,39 +411046,341 @@ "format": "int64", "type": "integer" } - }, - "required": [ - "enforce", - "limit" - ], - "type": "object" + }, + "required": [ + "enforce", + "limit" + ], + "type": "object" + } + }, + "required": [ + "fields", + "limit" + ], + "type": "object" + }, + "type": "array" + }, + "partition_fields": { + "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "quota", + "description": "The processor type. The value should always be `quota`.", + "enum": [ + "quota" + ], + "example": "quota", + "type": "string", + "x-enum-varnames": [ + "QUOTA" + ] + } + }, + "required": [ + "id", + "type", + "include", + "name", + "drop_events", + "limit", + "inputs" + ], + "type": "object" + }, + { + "description": "The `add_fields` processor adds static key-value fields to logs.", + "properties": { + "fields": { + "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "items": { + "description": "Represents a static key-value pair used in various processors.", + "properties": { + "name": { + "description": "The field name.", + "example": "field_name", + "type": "string" + }, + "value": { + "description": "The field value.", + "example": "field_value", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", + "example": "add-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] } }, "required": [ - "fields", - "limit" + "include", + "mapping" ], "type": "object" }, "type": "array" }, - "partition_fields": { - "description": "A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values.", - "items": { - "type": "string" - }, - "type": "array" - }, "type": { - "default": "quota", - "description": "The processor type. The value should always be `quota`.", + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", "enum": [ - "quota" + "ocsf_mapper" ], - "example": "quota", + "example": "ocsf_mapper", "type": "string", "x-enum-varnames": [ - "QUOTA" + "OCSF_MAPPER" ] } }, @@ -399074,43 +411388,97 @@ "id", "type", "include", - "name", - "drop_events", - "limit", - "inputs" + "inputs", + "mappings" ], "type": "object" }, { - "description": "The `add_fields` processor adds static key-value fields to logs.", + "description": "The `add_env_vars` processor adds environment variable values to log events.", "properties": { - "fields": { - "description": "A list of static fields (key-value pairs) that is added to each log event processed by this component.", + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], "items": { - "description": "Represents a static key-value pair used in various processors.", + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", "properties": { - "name": { - "description": "The field name.", - "example": "field_name", + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", "type": "string" }, - "value": { - "description": "The field value.", - "example": "field_value", + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", "type": "string" } }, "required": [ - "name", - "value" + "field", + "name" ], "type": "object" }, "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` to downstream components).", - "example": "add-fields-processor", + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", "type": "string" }, "include": { @@ -399119,25 +411487,38 @@ "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", "enum": [ - "add_fields" + "dedupe" ], - "example": "add_fields", + "example": "dedupe", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "DEDUPE" ] } }, @@ -399145,55 +411526,201 @@ "id", "type", "include", + "inputs", "fields", - "inputs" + "mode" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", - "example": [ - "field1", - "field2" + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" ], - "items": { - "type": "string" + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } }, - "type": "array" + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "remove_fields" + "enrichment_table" ], - "example": "remove_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -399201,56 +411728,145 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], "items": { - "description": "Defines how to rename a field in log events.", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", "type": "string" }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] } }, "required": [ - "source", - "destination", - "preserve_source" + "path", + "strategy" ], "type": "object" }, "type": "array" }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -399259,25 +411875,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -399455,6 +412084,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -399656,6 +412587,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -399968,29 +413084,600 @@ }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_fields", + "description": "The processor type. The value should always be `add_fields`.", + "enum": [ + "add_fields" + ], + "example": "add_fields", + "type": "string", + "x-enum-varnames": [ + "ADD_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `remove_fields` processor deletes specified fields from logs.", + "properties": { + "fields": { + "description": "A list of field names to be removed from each log event.", + "example": [ + "field1", + "field2" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "remove-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "remove_fields", + "description": "The processor type. The value should always be `remove_fields`.", + "enum": [ + "remove_fields" + ], + "example": "remove_fields", + "type": "string", + "x-enum-varnames": [ + "REMOVE_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `rename_fields` processor changes field names.", + "properties": { + "fields": { + "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "items": { + "description": "Defines how to rename a field in log events.", + "properties": { + "destination": { + "description": "The field name to assign the renamed value to.", + "example": "destination_field", + "type": "string" + }, + "preserve_source": { + "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", + "example": false, + "type": "boolean" + }, + "source": { + "description": "The original field name in the log event that should be renamed.", + "example": "source_field", + "type": "string" + } + }, + "required": [ + "source", + "destination", + "preserve_source" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "rename-fields-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "rename_fields", + "description": "The processor type. The value should always be `rename_fields`.", + "enum": [ + "rename_fields" + ], + "example": "rename_fields", + "type": "string", + "x-enum-varnames": [ + "RENAME_FIELDS" + ] + } + }, + "required": [ + "id", + "type", + "include", + "fields", + "inputs" + ], + "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "add-fields-processor" ], "items": { "type": "string" }, "type": "array" }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, "type": { - "default": "add_fields", - "description": "The processor type. The value should always be `add_fields`.", + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", "enum": [ - "add_fields" + "enrichment_table" ], - "example": "add_fields", + "example": "enrichment_table", "type": "string", "x-enum-varnames": [ - "ADD_FIELDS" + "ENRICHMENT_TABLE" ] } }, @@ -399998,19 +413685,19 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "target" ], "type": "object" }, { - "description": "The `remove_fields` processor deletes specified fields from logs.", + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", "properties": { - "fields": { - "description": "A list of field names to be removed from each log event.", + "group_by": { + "description": "A list of fields used to group log events for merging.", "example": [ - "field1", - "field2" + "log.user.id", + "log.device.id" ], "items": { "type": "string" @@ -400018,35 +413705,87 @@ "type": "array" }, "id": { - "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "remove-fields-processor", + "description": "The unique identifier for this processor.", + "example": "reduce-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "The `PipelineRemoveFieldsProcessor` `inputs`.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ - "datadog-agent-source" + "parse-json-processor" ], "items": { "type": "string" }, "type": "array" }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, "type": { - "default": "remove_fields", - "description": "The processor type. The value should always be `remove_fields`.", + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", "enum": [ - "remove_fields" + "reduce" ], - "example": "remove_fields", + "example": "reduce", "type": "string", "x-enum-varnames": [ - "REMOVE_FIELDS" + "REDUCE" ] } }, @@ -400054,56 +413793,37 @@ "id", "type", "include", - "fields", - "inputs" + "inputs", + "group_by", + "merge_strategies" ], "type": "object" }, { - "description": "The `rename_fields` processor changes field names.", + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", "properties": { - "fields": { - "description": "A list of rename rules specifying which fields to rename in the event, what to rename them to, and whether to preserve the original fields.", + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], "items": { - "description": "Defines how to rename a field in log events.", - "properties": { - "destination": { - "description": "The field name to assign the renamed value to.", - "example": "destination_field", - "type": "string" - }, - "preserve_source": { - "description": "Indicates whether the original field, that is received from the source, should be kept (`true`) or removed (`false`) after renaming.", - "example": false, - "type": "boolean" - }, - "source": { - "description": "The original field name in the log event that should be renamed.", - "example": "source_field", - "type": "string" - } - }, - "required": [ - "source", - "destination", - "preserve_source" - ], - "type": "object" + "type": "string" }, "type": "array" }, "id": { - "description": "A unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", - "example": "rename-fields-processor", + "description": "The unique identifier for this processor.", + "example": "throttle-processor", "type": "string" }, "include": { "description": "A Datadog search query used to determine which logs this processor targets.", - "example": "service:my-service", + "example": "env:prod", "type": "string" }, "inputs": { - "description": "A list of component IDs whose output is used as the `input` for this component.", + "description": "A list of component IDs whose output is used as the input for this processor.", "example": [ "datadog-agent-source" ], @@ -400112,25 +413832,38 @@ }, "type": "array" }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, "type": { - "default": "rename_fields", - "description": "The processor type. The value should always be `rename_fields`.", + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", "enum": [ - "rename_fields" + "throttle" ], - "example": "rename_fields", + "example": "throttle", "type": "string", "x-enum-varnames": [ - "RENAME_FIELDS" + "THROTTLE" ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" } }, "required": [ "id", "type", "include", - "fields", - "inputs" + "inputs", + "threshold", + "window" ], "type": "object" } @@ -400308,6 +414041,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] }, @@ -400429,6 +414464,191 @@ "inputs" ], "type": "object" + }, + { + "description": "The `google_chronicle` destination sends logs to Google Chronicle.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "customer_id": { + "description": "The Google Chronicle customer ID.", + "example": "abcdefg123456789", + "type": "string" + }, + "encoding": { + "description": "The encoding format for the logs sent to Chronicle.", + "enum": [ + "json", + "raw_message" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "JSON", + "RAW_MESSAGE" + ] + }, + "id": { + "description": "The unique identifier for this component.", + "example": "google-chronicle-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "log_type": { + "description": "The log type metadata associated with the Chronicle destination.", + "example": "nginx_logs", + "type": "string" + }, + "type": { + "default": "google_chronicle", + "description": "The destination type. The value should always be `google_chronicle`.", + "enum": [ + "google_chronicle" + ], + "example": "google_chronicle", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_CHRONICLE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "auth", + "customer_id" + ], + "type": "object" + }, + { + "description": "The `new_relic` destination sends logs to the New Relic platform.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "new-relic-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The New Relic region.", + "enum": [ + "us", + "eu" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU" + ] + }, + "type": { + "default": "new_relic", + "description": "The destination type. The value should always be `new_relic`.", + "enum": [ + "new_relic" + ], + "example": "new_relic", + "type": "string", + "x-enum-varnames": [ + "NEW_RELIC" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" + }, + { + "description": "The `sentinel_one` destination sends logs to SentinelOne.", + "properties": { + "id": { + "description": "The unique identifier for this component.", + "example": "sentinelone-destination", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this component.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "The SentinelOne region to send logs to.", + "enum": [ + "us", + "eu", + "ca", + "data_set_us" + ], + "example": "us", + "type": "string", + "x-enum-varnames": [ + "US", + "EU", + "CA", + "DATA_SET_US" + ] + }, + "type": { + "default": "sentinel_one", + "description": "The destination type. The value should always be `sentinel_one`.", + "enum": [ + "sentinel_one" + ], + "example": "sentinel_one", + "type": "string", + "x-enum-varnames": [ + "SENTINEL_ONE" + ] + } + }, + "required": [ + "id", + "type", + "inputs", + "region" + ], + "type": "object" } ] }, @@ -400906,6 +415126,623 @@ "inputs" ], "type": "object" + }, + { + "description": "The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline.", + "example": "ocsf-mapper-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the `input` for this processor.", + "example": [ + "filter-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mappings": { + "description": "A list of mapping rules to convert events to the OCSF format.", + "items": { + "description": "Defines how specific events are transformed to OCSF using a mapping configuration.", + "properties": { + "include": { + "description": "A Datadog search query used to select the logs that this mapping should apply to.", + "example": "service:my-service", + "type": "string" + }, + "mapping": { + "description": "The definition of `ObservabilityPipelineOcsfMapperProcessorMappingMapping` object.", + "oneOf": [ + { + "description": "Predefined library mappings for common log formats.", + "enum": [ + "CloudTrail Account Change", + "GCP Cloud Audit CreateBucket", + "GCP Cloud Audit CreateSink", + "GCP Cloud Audit SetIamPolicy", + "GCP Cloud Audit UpdateSink", + "Github Audit Log API Activity", + "Google Workspace Admin Audit addPrivilege", + "Microsoft 365 Defender Incident", + "Microsoft 365 Defender UserLoggedIn", + "Okta System Log Authentication", + "Palo Alto Networks Firewall Traffic" + ], + "example": "CloudTrail Account Change", + "type": "string", + "x-enum-varnames": [ + "CLOUDTRAIL_ACCOUNT_CHANGE", + "GCP_CLOUD_AUDIT_CREATEBUCKET", + "GCP_CLOUD_AUDIT_CREATESINK", + "GCP_CLOUD_AUDIT_SETIAMPOLICY", + "GCP_CLOUD_AUDIT_UPDATESINK", + "GITHUB_AUDIT_LOG_API_ACTIVITY", + "GOOGLE_WORKSPACE_ADMIN_AUDIT_ADDPRIVILEGE", + "MICROSOFT_365_DEFENDER_INCIDENT", + "MICROSOFT_365_DEFENDER_USERLOGGEDIN", + "OKTA_SYSTEM_LOG_AUTHENTICATION", + "PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC" + ] + } + ] + } + }, + "required": [ + "include", + "mapping" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "ocsf_mapper", + "description": "The processor type. The value should always be `ocsf_mapper`.", + "enum": [ + "ocsf_mapper" + ], + "example": "ocsf_mapper", + "type": "string", + "x-enum-varnames": [ + "OCSF_MAPPER" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "mappings" + ], + "type": "object" + }, + { + "description": "The `add_env_vars` processor adds environment variable values to log events.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this processor in the pipeline.", + "example": "add-env-vars-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "default": "add_env_vars", + "description": "The processor type. The value should always be `add_env_vars`.", + "enum": [ + "add_env_vars" + ], + "example": "add_env_vars", + "type": "string", + "x-enum-varnames": [ + "ADD_ENV_VARS" + ] + }, + "variables": { + "description": "A list of environment variable mappings to apply to log fields.", + "items": { + "description": "Defines a mapping between an environment variable and a log field.", + "properties": { + "field": { + "description": "The target field in the log event.", + "example": "log.environment.region", + "type": "string" + }, + "name": { + "description": "The name of the environment variable to read.", + "example": "AWS_REGION", + "type": "string" + } + }, + "required": [ + "field", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "variables" + ], + "type": "object" + }, + { + "description": "The `dedupe` processor removes duplicate fields in log events.", + "properties": { + "fields": { + "description": "A list of log field paths to check for duplicates.", + "example": [ + "log.message", + "log.error" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "dedupe-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "service:my-service", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "mode": { + "description": "The deduplication mode to apply to the fields.", + "enum": [ + "match", + "ignore" + ], + "example": "match", + "type": "string", + "x-enum-varnames": [ + "MATCH", + "IGNORE" + ] + }, + "type": { + "default": "dedupe", + "description": "The processor type. The value should always be `dedupe`.", + "enum": [ + "dedupe" + ], + "example": "dedupe", + "type": "string", + "x-enum-varnames": [ + "DEDUPE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "fields", + "mode" + ], + "type": "object" + }, + { + "description": "The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database.", + "properties": { + "file": { + "description": "Defines a static enrichment table loaded from a CSV file.", + "properties": { + "encoding": { + "description": "File encoding format.", + "properties": { + "delimiter": { + "description": "The `encoding` `delimiter`.", + "example": ",", + "type": "string" + }, + "includes_headers": { + "description": "The `encoding` `includes_headers`.", + "example": true, + "type": "boolean" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileEncodingType` object.", + "enum": [ + "csv" + ], + "example": "csv", + "type": "string", + "x-enum-varnames": [ + "CSV" + ] + } + }, + "required": [ + "type", + "delimiter", + "includes_headers" + ], + "type": "object" + }, + "key": { + "description": "Key fields used to look up enrichment values.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "user_id", + "type": "string" + }, + "comparison": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileKeyItemsComparison` object.", + "enum": [ + "equals" + ], + "example": "equals", + "type": "string", + "x-enum-varnames": [ + "EQUALS" + ] + }, + "field": { + "description": "The `items` `field`.", + "example": "log.user.id", + "type": "string" + } + }, + "required": [ + "column", + "comparison", + "field" + ], + "type": "object" + }, + "type": "array" + }, + "path": { + "description": "Path to the CSV file.", + "example": "/etc/enrichment/lookup.csv", + "type": "string" + }, + "schema": { + "description": "Schema defining column names and their types.", + "items": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItems` object.", + "properties": { + "column": { + "description": "The `items` `column`.", + "example": "region", + "type": "string" + }, + "type": { + "description": "The definition of `ObservabilityPipelineEnrichmentTableFileSchemaItemsType` object.", + "enum": [ + "string", + "boolean", + "integer", + "float", + "date", + "timestamp" + ], + "example": "string", + "type": "string", + "x-enum-varnames": [ + "STRING", + "BOOLEAN", + "INTEGER", + "FLOAT", + "DATE", + "TIMESTAMP" + ] + } + }, + "required": [ + "column", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "encoding", + "key", + "path", + "schema" + ], + "type": "object" + }, + "geoip": { + "description": "Uses a GeoIP database to enrich logs based on an IP field.", + "properties": { + "key_field": { + "description": "Path to the IP field in the log.", + "example": "log.source.ip", + "type": "string" + }, + "locale": { + "description": "Locale used to resolve geographical names.", + "example": "en", + "type": "string" + }, + "path": { + "description": "Path to the GeoIP database file.", + "example": "/etc/geoip/GeoLite2-City.mmdb", + "type": "string" + } + }, + "required": [ + "key_field", + "locale", + "path" + ], + "type": "object" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "enrichment-table-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "source:my-source", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "add-fields-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "target": { + "description": "Path where enrichment results should be stored in the log.", + "example": "enriched.geoip", + "type": "string" + }, + "type": { + "default": "enrichment_table", + "description": "The processor type. The value should always be `enrichment_table`.", + "enum": [ + "enrichment_table" + ], + "example": "enrichment_table", + "type": "string", + "x-enum-varnames": [ + "ENRICHMENT_TABLE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "target" + ], + "type": "object" + }, + { + "description": "The `reduce` processor aggregates and merges logs based on matching keys and merge strategies.", + "properties": { + "group_by": { + "description": "A list of fields used to group log events for merging.", + "example": [ + "log.user.id", + "log.device.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "reduce-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "parse-json-processor" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "merge_strategies": { + "description": "List of merge strategies defining how values from grouped events should be combined.", + "items": { + "description": "Defines how a specific field should be merged across grouped events.", + "properties": { + "path": { + "description": "The field path in the log event.", + "example": "log.user.roles", + "type": "string" + }, + "strategy": { + "description": "The merge strategy to apply.", + "enum": [ + "discard", + "retain", + "sum", + "max", + "min", + "array", + "concat", + "concat_newline", + "concat_raw", + "shortest_array", + "longest_array", + "flat_unique" + ], + "example": "flat_unique", + "type": "string", + "x-enum-varnames": [ + "DISCARD", + "RETAIN", + "SUM", + "MAX", + "MIN", + "ARRAY", + "CONCAT", + "CONCAT_NEWLINE", + "CONCAT_RAW", + "SHORTEST_ARRAY", + "LONGEST_ARRAY", + "FLAT_UNIQUE" + ] + } + }, + "required": [ + "path", + "strategy" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "default": "reduce", + "description": "The processor type. The value should always be `reduce`.", + "enum": [ + "reduce" + ], + "example": "reduce", + "type": "string", + "x-enum-varnames": [ + "REDUCE" + ] + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "group_by", + "merge_strategies" + ], + "type": "object" + }, + { + "description": "The `throttle` processor limits the number of events that pass through over a given time window.", + "properties": { + "group_by": { + "description": "Optional list of fields used to group events before applying throttling.", + "example": [ + "log.user.id" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The unique identifier for this processor.", + "example": "throttle-processor", + "type": "string" + }, + "include": { + "description": "A Datadog search query used to determine which logs this processor targets.", + "example": "env:prod", + "type": "string" + }, + "inputs": { + "description": "A list of component IDs whose output is used as the input for this processor.", + "example": [ + "datadog-agent-source" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "threshold": { + "description": "The number of events to allow before throttling is applied.", + "example": 1000, + "format": "int64", + "type": "integer" + }, + "type": { + "default": "throttle", + "description": "The processor type. The value should always be `throttle`.", + "enum": [ + "throttle" + ], + "example": "throttle", + "type": "string", + "x-enum-varnames": [ + "THROTTLE" + ] + }, + "window": { + "description": "The time window in seconds over which the threshold applies.", + "example": 60, + "format": "double", + "type": "number" + } + }, + "required": [ + "id", + "type", + "include", + "inputs", + "threshold", + "window" + ], + "type": "object" } ] }, @@ -401081,6 +415918,308 @@ "type" ], "type": "object" + }, + { + "description": "The `amazon_data_firehose` source ingests logs from AWS Data Firehose.", + "properties": { + "auth": { + "description": "AWS authentication credentials used for accessing AWS services such as S3.\nIf omitted, the system’s default credentials are used (for example, the IAM role and environment variables).\n", + "properties": { + "assume_role": { + "description": "The Amazon Resource Name (ARN) of the role to assume.", + "type": "string" + }, + "external_id": { + "description": "A unique identifier for cross-account role assumption.", + "type": "string" + }, + "session_name": { + "description": "A session identifier used for logging and tracing the assumed role session.", + "type": "string" + } + }, + "type": "object" + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "amazon-firehose-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "amazon_data_firehose", + "description": "The source type. The value should always be `amazon_data_firehose`.", + "enum": [ + "amazon_data_firehose" + ], + "example": "amazon_data_firehose", + "type": "string", + "x-enum-varnames": [ + "AMAZON_DATA_FIREHOSE" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" + }, + { + "description": "The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription.", + "properties": { + "auth": { + "description": "GCP credentials used to authenticate with Google Cloud Storage.\n", + "properties": { + "credentials_file": { + "description": "Path to the GCP service account key file.", + "example": "/var/secrets/gcp-credentials.json", + "type": "string" + } + }, + "required": [ + "credentials_file" + ], + "type": "object" + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "google-pubsub-source", + "type": "string" + }, + "project": { + "description": "The GCP project ID that owns the Pub/Sub subscription.", + "example": "my-gcp-project", + "type": "string" + }, + "subscription": { + "description": "The Pub/Sub subscription name from which messages are consumed.", + "example": "logs-subscription", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "google_pubsub", + "description": "The source type. The value should always be `google_pubsub`.", + "enum": [ + "google_pubsub" + ], + "example": "google_pubsub", + "type": "string", + "x-enum-varnames": [ + "GOOGLE_PUBSUB" + ] + } + }, + "required": [ + "id", + "type", + "auth", + "decoding", + "project", + "subscription" + ], + "type": "object" + }, + { + "description": "The `http_client` source scrapes logs from HTTP endpoints at regular intervals.", + "properties": { + "auth_strategy": { + "description": "Optional authentication strategy for HTTP requests.", + "enum": [ + "basic", + "bearer" + ], + "example": "basic", + "type": "string", + "x-enum-varnames": [ + "BASIC", + "BEARER" + ] + }, + "decoding": { + "description": "The decoding format used to interpret incoming logs.", + "enum": [ + "bytes", + "gelf", + "json", + "syslog" + ], + "example": "json", + "type": "string", + "x-enum-varnames": [ + "DECODE_BYTES", + "DECODE_GELF", + "DECODE_JSON", + "DECODE_SYSLOG" + ] + }, + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "http-client-source", + "type": "string" + }, + "scrape_interval_secs": { + "description": "The interval (in seconds) between HTTP scrape requests.", + "example": 60, + "format": "int64", + "type": "integer" + }, + "scrape_timeout_secs": { + "description": "The timeout (in seconds) for each scrape request.", + "example": 10, + "format": "int64", + "type": "integer" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "http_client", + "description": "The source type. The value should always be `http_client`.", + "enum": [ + "http_client" + ], + "example": "http_client", + "type": "string", + "x-enum-varnames": [ + "HTTP_CLIENT" + ] + } + }, + "required": [ + "id", + "type", + "decoding" + ], + "type": "object" + }, + { + "description": "The `logstash` source ingests logs from a Logstash forwarder.", + "properties": { + "id": { + "description": "The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).", + "example": "logstash-source", + "type": "string" + }, + "tls": { + "description": "Configuration for enabling TLS encryption.", + "properties": { + "ca_file": { + "description": "Path to the Certificate Authority (CA) file used to validate the server’s TLS certificate.", + "type": "string" + }, + "crt_file": { + "description": "Path to the TLS client certificate file used to authenticate the pipeline component with upstream or downstream services.", + "example": "/path/to/cert.crt", + "type": "string" + }, + "key_file": { + "description": "Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication.", + "type": "string" + } + }, + "required": [ + "crt_file" + ], + "type": "object" + }, + "type": { + "default": "logstash", + "description": "The source type. The value should always be `logstash`.", + "enum": [ + "logstash" + ], + "example": "logstash", + "type": "string", + "x-enum-varnames": [ + "LOGSTASH" + ] + } + }, + "required": [ + "id", + "type" + ], + "type": "object" } ] },