diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 9bceb715496a..fc3a210f6f64 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -33549,6 +33549,10 @@ components: description: The `add_env_vars` processor adds environment variable values to log events. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this processor in the pipeline. @@ -33559,14 +33563,6 @@ components: 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: @@ -33578,8 +33574,8 @@ components: - id - type - include - - inputs - variables + - enabled type: object ObservabilityPipelineAddEnvVarsProcessorType: default: add_env_vars @@ -33608,6 +33604,10 @@ components: ObservabilityPipelineAddFieldsProcessor: description: The `add_fields` processor adds static key-value fields to logs. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean fields: description: A list of static fields (key-value pairs) that is added to each log event processed by this component. @@ -33625,14 +33625,6 @@ components: 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: $ref: '#/components/schemas/ObservabilityPipelineAddFieldsProcessorType' required: @@ -33640,7 +33632,7 @@ components: - type - include - fields - - inputs + - enabled type: object ObservabilityPipelineAddFieldsProcessorType: default: add_fields @@ -33943,15 +33935,20 @@ components: $ref: '#/components/schemas/ObservabilityPipelineConfigDestinationItem' type: array processors: - description: A list of processors that transform or enrich log data. + description: A list of processor groups that transform or enrich log data. example: - - id: filter-processor + - enabled: true + id: my-processor-group include: service:my-service inputs: - datadog-agent-source - type: filter + processors: + - enabled: true + id: filter-processor + include: status:error + type: filter items: - $ref: '#/components/schemas/ObservabilityPipelineConfigProcessorItem' + $ref: '#/components/schemas/ObservabilityPipelineConfigProcessorGroup' type: array sources: description: A list of configured data sources for the pipeline. @@ -33987,6 +33984,68 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination' - $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination' - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestination' + ObservabilityPipelineConfigProcessorGroup: + description: A group of processors. + example: + id: my-processor-group + include: service:my-service + inputs: + - datadog-agent-source + processors: + - fields: + - name: env + value: prod + id: add-fields-processor + include: '*' + type: add_fields + - id: filter-processor + include: status:error + type: filter + properties: + enabled: + description: Whether this processor group is enabled. + example: true + type: boolean + id: + description: The unique identifier for the processor group. + example: grouped-processors + type: string + include: + description: Conditional expression for when this processor group should + execute. + example: service:my-service + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor group. + example: + - datadog-agent-source + items: + type: string + type: array + processors: + description: Processors applied sequentially within this group. Events flow + through each processor in order. + example: + - fields: + - name: env + value: prod + id: add-fields-processor + include: '*' + type: add_fields + - id: filter-processor + include: status:error + type: filter + items: + $ref: '#/components/schemas/ObservabilityPipelineConfigProcessorItem' + type: array + required: + - id + - include + - inputs + - processors + - enabled + type: object ObservabilityPipelineConfigProcessorItem: description: A processor for the pipeline. oneOf: @@ -34104,6 +34163,10 @@ components: Remap Language (VRL)](https://vector.dev/docs/reference/vrl/) scripts with advanced filtering capabilities. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this processor. example: remap-vrl-processor @@ -34115,14 +34178,6 @@ components: processor. example: '*' 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 remaps: description: Array of VRL remap rules. items: @@ -34136,7 +34191,7 @@ components: - type - include - remaps - - inputs + - enabled type: object ObservabilityPipelineCustomProcessorRemap: description: Defines a single VRL remap rule with its own filtering and transformation @@ -34167,7 +34222,6 @@ components: - include - name - source - - enabled - drop_on_error type: object ObservabilityPipelineCustomProcessorType: @@ -34276,6 +34330,10 @@ components: properties: action: $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessorAction' + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` @@ -34287,14 +34345,6 @@ components: 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 keys: description: A list of tag keys. example: @@ -34315,7 +34365,7 @@ components: - mode - action - keys - - inputs + - enabled type: object ObservabilityPipelineDatadogTagsProcessorAction: description: The action to take on tags with matching keys. @@ -34361,6 +34411,10 @@ components: ObservabilityPipelineDedupeProcessor: description: The `dedupe` processor removes duplicate fields in log events. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean fields: description: A list of log field paths to check for duplicates. example: @@ -34378,14 +34432,6 @@ components: 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: @@ -34394,9 +34440,9 @@ components: - id - type - include - - inputs - fields - mode + - enabled type: object ObservabilityPipelineDedupeProcessorMode: description: The deduplication mode to apply to the fields. @@ -34602,6 +34648,10 @@ components: description: The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean file: $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableFile' geoip: @@ -34615,14 +34665,6 @@ components: 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 @@ -34633,8 +34675,8 @@ components: - id - type - include - - inputs - target + - enabled type: object ObservabilityPipelineEnrichmentTableProcessorType: default: enrichment_table @@ -34665,6 +34707,10 @@ components: on a Datadog search query. Logs that match the `include` query are passed through; others are discarded. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` @@ -34677,21 +34723,13 @@ components: components; others are dropped. 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: $ref: '#/components/schemas/ObservabilityPipelineFilterProcessorType' required: - id - type - include - - inputs + - enabled type: object ObservabilityPipelineFilterProcessorType: default: filter @@ -34771,6 +34809,10 @@ components: Metrics can be counters, gauges, or distributions and optionally grouped by log fields.' properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. @@ -34781,14 +34823,6 @@ components: 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: - - source-id - items: - type: string - type: array metrics: description: Configuration for generating individual metrics. items: @@ -34799,9 +34833,7 @@ components: required: - id - type - - inputs - - include - - metrics + - enabled type: object ObservabilityPipelineGenerateMetricsProcessorType: default: generate_datadog_metrics @@ -35398,6 +35430,10 @@ components: description: The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline. @@ -35408,14 +35444,6 @@ components: 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: @@ -35427,8 +35455,8 @@ components: - id - type - include - - inputs - mappings + - enabled type: object ObservabilityPipelineOcsfMapperProcessorMapping: description: Defines how specific events are transformed to OCSF using a mapping @@ -35533,6 +35561,10 @@ components: by Datadog. example: true type: boolean + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: A unique identifier for this processor. example: parse-grok-processor @@ -35542,14 +35574,6 @@ components: 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 rules: description: The list of Grok parsing rules. If multiple matching rules are provided, they are evaluated in order. The first successful match @@ -35563,8 +35587,8 @@ components: - id - type - include - - inputs - rules + - enabled type: object ObservabilityPipelineParseGrokProcessorRule: description: 'A Grok parsing rule used in the `parse_grok` processor. Each rule @@ -35649,6 +35673,10 @@ components: and flattens it into the event. This is useful when logs contain embedded JSON as a string. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean field: description: The name of the log field that contains a JSON string. example: message @@ -35664,14 +35692,6 @@ components: 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: $ref: '#/components/schemas/ObservabilityPipelineParseJSONProcessorType' required: @@ -35679,7 +35699,7 @@ components: - type - include - field - - inputs + - enabled type: object ObservabilityPipelineParseJSONProcessorType: default: parse_json @@ -35712,6 +35732,10 @@ components: the filter query continue through the pipeline. example: false type: boolean + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` @@ -35727,14 +35751,6 @@ components: 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 limit: $ref: '#/components/schemas/ObservabilityPipelineQuotaProcessorLimit' name: @@ -35764,9 +35780,8 @@ components: - type - include - name - - drop_events - limit - - inputs + - enabled type: object ObservabilityPipelineQuotaProcessorLimit: description: The maximum amount of data or number of events allowed before the @@ -35842,6 +35857,10 @@ components: description: The `reduce` processor aggregates and merges logs based on matching keys and merge strategies. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean group_by: description: A list of fields used to group log events for merging. example: @@ -35859,14 +35878,6 @@ components: 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. @@ -35879,9 +35890,9 @@ components: - id - type - include - - inputs - group_by - merge_strategies + - enabled type: object ObservabilityPipelineReduceProcessorMergeStrategy: description: Defines how a specific field should be merged across grouped events. @@ -35938,6 +35949,10 @@ components: ObservabilityPipelineRemoveFieldsProcessor: description: The `remove_fields` processor deletes specified fields from logs. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean fields: description: A list of field names to be removed from each log event. example: @@ -35957,13 +35972,6 @@ components: targets. example: service:my-service type: string - inputs: - description: The `PipelineRemoveFieldsProcessor` `inputs`. - example: - - datadog-agent-source - items: - type: string - type: array type: $ref: '#/components/schemas/ObservabilityPipelineRemoveFieldsProcessorType' required: @@ -35971,7 +35979,7 @@ components: - type - include - fields - - inputs + - enabled type: object ObservabilityPipelineRemoveFieldsProcessorType: default: remove_fields @@ -35985,6 +35993,10 @@ components: ObservabilityPipelineRenameFieldsProcessor: description: The `rename_fields` processor changes field names. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean 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 @@ -36003,14 +36015,6 @@ components: 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: $ref: '#/components/schemas/ObservabilityPipelineRenameFieldsProcessorType' required: @@ -36018,7 +36022,7 @@ components: - type - include - fields - - inputs + - enabled type: object ObservabilityPipelineRenameFieldsProcessorField: description: Defines how to rename a field in log events. @@ -36124,6 +36128,10 @@ components: description: The `sample` processor allows probabilistic sampling of logs at a fixed rate. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` @@ -36135,14 +36143,6 @@ components: 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 percentage: description: The percentage of logs to sample. example: 10.0 @@ -36160,7 +36160,7 @@ components: - id - type - include - - inputs + - enabled type: object ObservabilityPipelineSampleProcessorType: default: sample @@ -36175,6 +36175,10 @@ components: description: The `sensitive_data_scanner` processor detects and optionally redacts sensitive data in log events. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean 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 @@ -36186,14 +36190,6 @@ components: targets. example: source:prod 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 rules: description: A list of rules for identifying and acting on sensitive data patterns. @@ -36206,8 +36202,8 @@ components: - id - type - include - - inputs - rules + - enabled type: object ObservabilityPipelineSensitiveDataScannerProcessorAction: description: Defines what action to take when sensitive data is matched. @@ -37168,6 +37164,10 @@ components: description: The `throttle` processor limits the number of events that pass through over a given time window. properties: + enabled: + description: Whether this processor is enabled. + example: true + type: boolean group_by: description: Optional list of fields used to group events before the threshold has been reached. @@ -37185,14 +37185,6 @@ components: 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 allowed in a given time window. Events sent after the threshold has been reached, are dropped. @@ -37210,9 +37202,9 @@ components: - id - type - include - - inputs - threshold - window + - enabled type: object ObservabilityPipelineThrottleProcessorType: default: throttle diff --git a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.frozen b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.frozen index 71a6a094850a..c9a3812ad6f9 100644 --- a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:21.625Z \ No newline at end of file +2025-11-26T16:03:26.936Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.yml b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.yml index b027c6064563..cd4311715ebc 100644 --- a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-Bad-Request-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:21 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:26 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"unknown-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"unknown-processor","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"type":"pipelines"}}' headers: Accept: @@ -15,8 +15,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"title":"Component with ID filter-processor is an unknown - component","meta":{"message":"Component with ID filter-processor is an unknown + string: '{"errors":[{"title":"Component with ID my-processor-group is an unknown + component","meta":{"message":"Component with ID my-processor-group is an unknown component"}},{"title":"The following components are unused: [datadog-agent-source unknown-processor]","meta":{"message":"The following components are unused: [datadog-agent-source unknown-processor]"}}]} diff --git a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.frozen index a6261e736fd3..c95d315fed6a 100644 --- a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:23.837Z \ No newline at end of file +2025-11-26T16:03:27.483Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.yml index 7ec7adf2c1e0..db9a50e6e82d 100644 --- a/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/Create-a-new-pipeline-returns-OK-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:23 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:27 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"type":"pipelines"}}' headers: Accept: @@ -15,8 +15,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"d891e45c-21fa-11f0-96dc-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} + string: '{"data":{"id":"7231fee6-cae1-11f0-a2c3-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' headers: @@ -25,14 +25,14 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:23 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:27 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/d891e45c-21fa-11f0-96dc-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/7231fee6-cae1-11f0-a2c3-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.frozen b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.frozen index 033a0755d0bc..0c75345fb89b 100644 --- a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:25.292Z \ No newline at end of file +2025-11-26T16:03:29.108Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.yml b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.yml index 24fd64ef6237..87c8ab5ed189 100644 --- a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.yml +++ b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:25 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:29 GMT request: body: null headers: diff --git a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.frozen index 9cbc728e0033..48d506876c68 100644 --- a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:26.847Z \ No newline at end of file +2025-11-26T16:03:29.684Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.yml index eea8a420468b..49205d0ab0b4 100644 --- a/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/Delete-a-pipeline-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:26 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:29 GMT request: body: encoding: UTF-8 @@ -15,7 +15,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"da5f2218-21fa-11f0-96de-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"73822ece-cae1-11f0-a2c5-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -25,14 +25,14 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:26 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:29 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/da5f2218-21fa-11f0-96de-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/73822ece-cae1-11f0-a2c5-da7ad0900002 response: body: encoding: UTF-8 @@ -43,14 +43,14 @@ http_interactions: status: code: 204 message: No Content -- recorded_at: Fri, 25 Apr 2025 17:29:26 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:29 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/da5f2218-21fa-11f0-96de-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/73822ece-cae1-11f0-a2c5-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.frozen index f863fd1ac2d2..55c24212d8ce 100644 --- a/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:29.196Z \ No newline at end of file +2025-11-26T16:03:32.309Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.yml index 883f491d0795..6acde2398706 100644 --- a/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/Get-a-specific-pipeline-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:29 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:32 GMT request: body: encoding: UTF-8 @@ -15,7 +15,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"dbbff3d0-21fa-11f0-96e0-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"750ea1f0-cae1-11f0-a2c7-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -25,18 +25,18 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:29 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:32 GMT request: body: null headers: Accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/dbbff3d0-21fa-11f0-96e0-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/750ea1f0-cae1-11f0-a2c7-da7ad0900002 response: body: encoding: UTF-8 - string: '{"data":{"id":"dbbff3d0-21fa-11f0-96e0-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"750ea1f0-cae1-11f0-a2c7-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -46,14 +46,14 @@ http_interactions: status: code: 200 message: OK -- recorded_at: Fri, 25 Apr 2025 17:29:29 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:32 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/dbbff3d0-21fa-11f0-96e0-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/750ea1f0-cae1-11f0-a2c7-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.frozen b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.frozen index 3a7978da8a79..e56bb9cfbd43 100644 --- a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:31.769Z \ No newline at end of file +2025-11-26T16:03:35.391Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.yml b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.yml index 0456a06ef4d0..5cad2d2db389 100644 --- a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:31 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:35 GMT request: body: null headers: diff --git a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.frozen index 4c9f3cfcbc39..a879a77baf60 100644 --- a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:32.322Z \ No newline at end of file +2025-11-26T16:03:35.904Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.yml index 79ed4ba68e5a..3e6af2849098 100644 --- a/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/List-pipelines-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:32 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:35 GMT request: body: encoding: UTF-8 @@ -15,7 +15,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"dd87c652-21fa-11f0-96e2-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"77329f9a-cae1-11f0-a2c9-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -25,7 +25,7 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:32 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:35 GMT request: body: null headers: @@ -36,32 +36,42 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":[{"id":"8d85d864-0f09-11f0-9711-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"3f339054-10ab-11f0-88a2-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"b8c068de-10ab-11f0-88a8-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"32e2f90a-1139-11f0-8501-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"67e79020-1139-11f0-98d1-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"30966e06-113a-11f0-98e1-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"3e3f9382-138f-11f0-8cf0-da7ad0900002","type":"pipelines","attributes":{"name":"test - pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"service:my-service","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","tls":{"crt_file":"/path/to/cert.crt"},"type":"datadog_agent"}]}}},{"id":"42159650-138f-11f0-a2aa-da7ad0900002","type":"pipelines","attributes":{"name":"test - pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"service:my-service","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","tls":{"crt_file":"/path/to/cert.crt"},"type":"datadog_agent"}]}}},{"id":"6cc001f8-1392-11f0-9e35-da7ad0900002","type":"pipelines","attributes":{"name":"agent - with tls","config":{"destinations":[{"id":"destination-1","inputs":["source-with-tls"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"source-with-tls","tls":{"ca_file":"/etc/certs/ca.crt","crt_file":"/etc/certs/agent.crt","key_file":"/etc/certs/agent.key"},"type":"datadog_agent"}]}}},{"id":"bdf5078e-139d-11f0-8e4f-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"e67402d2-139d-11f0-8e51-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"e9849f22-139d-11f0-8e53-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"f9845bb0-139d-11f0-b101-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"2ebd82ca-139e-11f0-b103-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"31ba5a34-139e-11f0-8e55-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"3aa802c2-139e-11f0-8e57-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"7b3daaf8-139e-11f0-8e59-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"7e72d32e-139e-11f0-8e5b-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"818a8728-139e-11f0-8e5d-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"bed86e88-139e-11f0-8e5f-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"c202b050-139e-11f0-b107-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"c5111084-139e-11f0-8e61-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"e01ae6de-139e-11f0-8e63-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"e33ad356-139e-11f0-b109-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"e6783e78-139e-11f0-b10b-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"04407bfa-139f-11f0-8e65-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"126be958-139f-11f0-8e67-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"97607354-139f-11f0-8e6b-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"305f9a88-13a2-11f0-8dd9-da7ad0900002","type":"pipelines","attributes":{"name":"parse-json-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"env:parse","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"45669120-13a2-11f0-8ddb-da7ad0900002","type":"pipelines","attributes":{"name":"parse-json-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"env:parse","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"c00f7548-13a4-11f0-9315-da7ad0900002","type":"pipelines","attributes":{"name":"test - pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"service:my-service","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"c07cf206-13a6-11f0-949d-da7ad0900002","type":"pipelines","attributes":{"name":"test - pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"service:my-service","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"8ff06e36-13ad-11f0-8243-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"8ff1a508-13ad-11f0-b934-da7ad0900002","type":"pipelines","attributes":{"name":"agent - with tls","config":{"destinations":[{"id":"destination-1","inputs":["source-with-tls"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"source-with-tls","tls":{"crt_file":"/etc/certs/agent.crt","key_file":"/etc/certs/agent.key"},"type":"datadog_agent"}]}}},{"id":"8ff38a08-13ad-11f0-8245-da7ad0900002","type":"pipelines","attributes":{"name":"parse-json-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"env:parse","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"8ff54f0a-13ad-11f0-8247-da7ad0900002","type":"pipelines","attributes":{"name":"kafka - pipeline","config":{"destinations":[{"id":"destination-1","inputs":["kafka-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"group_id":"consumer-group-1","id":"kafka-source-1","sasl":{"mechanism":"PLAIN"},"tls":{"ca_file":"","crt_file":"/path/to/kafka.crt"},"topics":["topic-a","topic-b"],"type":"kafka"}]}}},{"id":"f814235e-13ad-11f0-b942-da7ad0900002","type":"pipelines","attributes":{"name":"agent - with tls","config":{"destinations":[{"id":"destination-1","inputs":["source-with-tls"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"source-with-tls","tls":{"crt_file":"/etc/certs/agent.crt","key_file":"/etc/certs/agent.key"},"type":"datadog_agent"}]}}},{"id":"5b1a9314-13ce-11f0-a9de-da7ad0900002","type":"pipelines","attributes":{"name":"rename-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["rename-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"destination":"new.field","preserve_source":true,"source":"old.field"}],"id":"rename-1","include":"*","inputs":["source-1"],"type":"rename_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"1e356802-1419-11f0-8834-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"14156a86-142b-11f0-96f3-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"a5280a06-143a-11f0-aac4-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"5005f6c2-1481-11f0-8faa-da7ad0900002","type":"pipelines","attributes":{"name":"remove-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["remove-1"],"type":"datadog_logs"}],"processors":[{"fields":["temp.debug","internal.trace_id"],"id":"remove-1","include":"*","inputs":["source-1"],"type":"remove_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"9c1776c0-14d7-11f0-87c9-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"b1e4c58c-1501-11f0-b0bd-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"43a8a4cc-15c3-11f0-b111-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"45042a58-15c3-11f0-b113-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"f9de3956-15cc-11f0-ac43-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"b3efaa52-1693-11f0-89e0-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"24c83620-1696-11f0-89e6-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"5d2875d6-17a2-11f0-9bd1-da7ad0900002","type":"pipelines","attributes":{"name":"Main - Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}],"meta":{"totalCount":128}} + string: '{"data":[{"id":"79e292e4-7eed-11f0-ae9a-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"95f5859a-7eed-11f0-b11e-da7ad0900002","type":"pipelines","attributes":{"name":"remove-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["remove-1"],"type":"datadog_logs"}],"processors":[{"fields":["temp.debug","internal.trace_id"],"id":"remove-1","include":"*","inputs":["source-1"],"type":"remove_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"befe717c-7eed-11f0-b142-da7ad0900002","type":"pipelines","attributes":{"name":"sentinel-pipeline","config":{"destinations":[{"client_id":"a1b2c3d4-5678-90ab-cdef-1234567890ab","dcr_immutable_id":"dcr-uuid-1234","id":"sentinel-dest-1","inputs":["source-1"],"table":"CustomLogsTable","tenant_id":"abcdef12-3456-7890-abcd-ef1234567890","type":"microsoft_sentinel"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"cde707bc-7eed-11f0-b14e-da7ad0900002","type":"pipelines","attributes":{"name":"reduce + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["reduce-1"],"type":"datadog_logs"}],"processors":[{"group_by":["log.user.id","log.device.id"],"id":"reduce-1","include":"env:prod","inputs":["source-1"],"merge_strategies":[{"path":"log.user.roles","strategy":"flat_unique"},{"path":"log.error.messages","strategy":"concat"},{"path":"log.count","strategy":"sum"},{"path":"log.status","strategy":"retain"}],"type":"reduce"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"d48b3778-7eed-11f0-b156-da7ad0900002","type":"pipelines","attributes":{"name":"chronicle + pipeline","config":{"destinations":[{"auth":{"credentials_file":"/secrets/gcp.json"},"customer_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","encoding":"json","id":"chronicle-dest-1","inputs":["source-1"],"log_type":"nginx_logs","type":"google_chronicle"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"a7b4ba96-7f09-11f0-b21f-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"02f9b5d4-7f17-11f0-b042-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"92b580a6-7f4c-11f0-b432-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"1dbda0ee-7f51-11f0-9018-da7ad0900002","type":"pipelines","attributes":{"name":"firehose + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["firehose-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"auth":{"assume_role":"arn:aws:iam::123456789012:role/ExampleRole","external_id":"external-id-123","session_name":"firehose-session"},"id":"firehose-source-1","tls":{"crt_file":"/path/to/firehose.crt"},"type":"amazon_data_firehose"}]}}},{"id":"23e99d42-7f51-11f0-901c-da7ad0900002","type":"pipelines","attributes":{"name":"dedupe + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["dedupe-ignore"],"type":"datadog_logs"}],"processors":[{"fields":["log.message","log.tags"],"id":"dedupe-match","include":"*","inputs":["source-1"],"mode":"match","type":"dedupe"},{"fields":["log.source","log.context"],"id":"dedupe-ignore","include":"*","inputs":["dedupe-match"],"mode":"ignore","type":"dedupe"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"2686dd3a-7f51-11f0-844e-da7ad0900002","type":"pipelines","attributes":{"name":"throttle + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["throttle-grouped"],"type":"datadog_logs"}],"processors":[{"id":"throttle-global","include":"*","inputs":["source-1"],"threshold":1000,"type":"throttle","window":60},{"group_by":["log.user.id","log.level"],"id":"throttle-grouped","include":"*","inputs":["throttle-global"],"threshold":100,"type":"throttle","window":10}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"342f7956-7f51-11f0-9026-da7ad0900002","type":"pipelines","attributes":{"name":"amazon + opensearch pipeline","config":{"destinations":[{"auth":{"assume_role":"arn:aws:iam::123456789012:role/example-role","aws_region":"us-east-1","external_id":"external-id-123","session_name":"aos-session","strategy":"aws"},"bulk_index":"logs-datastream","id":"aos-dest-1","inputs":["source-1"],"type":"amazon_opensearch"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"43159012-7f52-11f0-916f-da7ad0900002","type":"pipelines","attributes":{"name":"test + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["parser-1"],"type":"datadog_logs"}],"processors":[{"field":"message","id":"parser-1","include":"service:my-service","inputs":["source-1"],"type":"parse_json"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"d8b76f78-7fb6-11f0-9f78-da7ad0900002","type":"pipelines","attributes":{"name":"sds-full-test","config":{"destinations":[{"id":"sink","inputs":["sds-1"],"type":"datadog_logs"}],"processors":[{"id":"sds-1","include":"*","inputs":["source-a"],"rules":[{"keyword_options":{"keywords":["secret","token"],"proximity":4},"name":"Redact + with Exclude","on_match":{"action":"redact","options":{"replace":"[REDACTED]"}},"pattern":{"options":{"rule":"\\bsecret-[a-z0-9]+\\b"},"type":"custom"},"scope":{"options":{"fields":["not_this_field"]},"target":"exclude"},"tags":["confidential","mask"]},{"name":"Library + Hash","on_match":{"action":"hash"},"pattern":{"options":{"id":"ip_address","use_recommended_keywords":true},"type":"library"},"scope":{"target":"all"},"tags":["pii"]},{"name":"Partial + Default Scope","on_match":{"action":"partial_redact","options":{"characters":3,"direction":"first"}},"pattern":{"options":{"rule":"user\\d{3,}"},"type":"custom"},"scope":{"options":{"fields":["this_field_only"]},"target":"include"},"tags":["user","pii"]}],"type":"sensitive_data_scanner"}],"sources":[{"id":"source-a","type":"datadog_agent"}]}}},{"id":"e2b4e2ee-7fb6-11f0-9f7e-da7ad0900002","type":"pipelines","attributes":{"name":"dedupe + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["dedupe-ignore"],"type":"datadog_logs"}],"processors":[{"fields":["log.message","log.tags"],"id":"dedupe-match","include":"*","inputs":["source-1"],"mode":"match","type":"dedupe"},{"fields":["log.source","log.context"],"id":"dedupe-ignore","include":"*","inputs":["dedupe-match"],"mode":"ignore","type":"dedupe"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"034843c0-7fb7-11f0-9eb6-da7ad0900002","type":"pipelines","attributes":{"name":"remap-vrl-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["remap-processor-1"],"type":"datadog_logs"}],"processors":[{"id":"remap-processor-1","include":"*","inputs":["source-1"],"remaps":[{"drop_on_error":false,"enabled":true,"include":"service:web","name":"Parse + JSON from message","source":". = parse_json!(string!(.message))"},{"drop_on_error":true,"enabled":true,"include":"env:prod","name":"Add + timestamp","source":".timestamp = now()"}],"type":"custom_processor"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"3ccd875c-7fd2-11f0-b6d7-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"6b30d2f0-7fd9-11f0-af48-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"fcf10236-7fdf-11f0-8692-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"a58467e6-8015-11f0-9924-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"bb15a8a4-8015-11f0-a7c1-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"05889c3a-801a-11f0-a7d5-da7ad0900002","type":"pipelines","attributes":{"name":"sample-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["sample-2"],"type":"datadog_logs"}],"processors":[{"id":"sample-1","include":"*","inputs":["source-1"],"rate":10,"type":"sample"},{"id":"sample-2","include":"*","inputs":["sample-1"],"percentage":4.99,"type":"sample"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"0a28d246-801a-11f0-8394-da7ad0900002","type":"pipelines","attributes":{"name":"http-server-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["http-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"auth_strategy":"plain","decoding":"json","id":"http-source-1","tls":{"ca_file":"/etc/ssl/certs/ca.crt","crt_file":"/etc/ssl/certs/http.crt","key_file":"/etc/ssl/private/http.key"},"type":"http_server"}]}}},{"id":"2eb40eaa-801a-11f0-83a6-da7ad0900002","type":"pipelines","attributes":{"name":"logstash + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["logstash-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"logstash-source-1","tls":{"crt_file":"/path/to/logstash.crt"},"type":"logstash"}]}}},{"id":"4c6ad8b6-801a-11f0-83b4-da7ad0900002","type":"pipelines","attributes":{"name":"socket-pipeline-udp","config":{"destinations":[{"id":"destination-1","inputs":["socket-source-2"],"type":"datadog_logs"}],"processors":[],"sources":[{"framing":{"delimiter":"|","method":"character_delimited"},"id":"socket-source-2","mode":"udp","type":"socket"}]}}},{"id":"4f07b526-801a-11f0-83b6-da7ad0900002","type":"pipelines","attributes":{"name":"socket-destination-pipeline","config":{"destinations":[{"encoding":"json","framing":{"method":"newline_delimited"},"id":"socket-dest-1","inputs":["source-1"],"mode":"tcp","tls":{"ca_file":"/etc/ssl/certs/ca.crt","crt_file":"/etc/ssl/certs/socket.crt","key_file":"/etc/ssl/private/socket.key"},"type":"socket"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"cc14120c-807f-11f0-b4a4-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"42a10830-8080-11f0-b4b6-da7ad0900002","type":"pipelines","attributes":{"name":"http-server-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["http-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"auth_strategy":"plain","decoding":"json","id":"http-source-1","tls":{"ca_file":"/etc/ssl/certs/ca.crt","crt_file":"/etc/ssl/certs/http.crt","key_file":"/etc/ssl/private/http.key"},"type":"http_server"}]}}},{"id":"455121dc-8080-11f0-b4b8-da7ad0900002","type":"pipelines","attributes":{"name":"splunk-hec-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["splunk-hec-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"splunk-hec-source-1","tls":{"ca_file":"/etc/ssl/certs/ca.crt","crt_file":"/etc/ssl/certs/splunk.crt","key_file":"/etc/ssl/private/splunk.key"},"type":"splunk_hec"}]}}},{"id":"49d9a396-8080-11f0-98a3-da7ad0900002","type":"pipelines","attributes":{"name":"gcs-destination-pipeline","config":{"destinations":[{"acl":"project-private","auth":{"credentials_file":"/var/secrets/gcp-creds.json"},"bucket":"my-gcs-bucket","id":"gcs-destination-1","inputs":["source-1"],"key_prefix":"logs/","metadata":[{"name":"environment","value":"production"},{"name":"team","value":"platform"}],"storage_class":"NEARLINE","type":"google_cloud_storage"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"4a9d5098-8080-11f0-b4bc-da7ad0900002","type":"pipelines","attributes":{"name":"splunk-hec-destination-pipeline","config":{"destinations":[{"auto_extract_timestamp":true,"encoding":"json","id":"splunk-hec-1","index":"main","inputs":["source-1"],"sourcetype":"custom_sourcetype","type":"splunk_hec"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"4b5b9238-8080-11f0-98a5-da7ad0900002","type":"pipelines","attributes":{"name":"sumo + pipeline","config":{"destinations":[{"encoding":"json","header_custom_fields":[{"name":"X-Sumo-Category","value":"my-app-logs"},{"name":"X-Custom-Header","value":"debug=true"}],"header_host_name":"host-123","header_source_category":"source-category","header_source_name":"source-name","id":"sumo-dest-1","inputs":["source-1"],"type":"sumo_logic"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"4fd012a8-8080-11f0-98a9-da7ad0900002","type":"pipelines","attributes":{"name":"rsyslog-dest-pipeline","config":{"destinations":[{"id":"rsyslog-destination-1","inputs":["source-1"],"keepalive":60000,"tls":{"crt_file":"/etc/certs/rsyslog.crt"},"type":"rsyslog"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"6d48f746-8080-11f0-98b7-da7ad0900002","type":"pipelines","attributes":{"name":"chronicle + pipeline","config":{"destinations":[{"auth":{"credentials_file":"/secrets/gcp.json"},"customer_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","encoding":"json","id":"chronicle-dest-1","inputs":["source-1"],"log_type":"nginx_logs","type":"google_chronicle"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"73a20eca-8080-11f0-98b9-da7ad0900002","type":"pipelines","attributes":{"name":"opensearch + pipeline","config":{"destinations":[{"bulk_index":"logs-datastream","id":"opensearch-dest-1","inputs":["source-1"],"type":"opensearch"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"5e6dae8c-80bd-11f0-a213-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"5f6fbb72-80bd-11f0-a215-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"e7857b20-80de-11f0-a262-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"579ccd4c-80e3-11f0-a296-da7ad0900002","type":"pipelines","attributes":{"name":"syslogng-source-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["syslogng-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"syslogng-source-1","mode":"udp","tls":{"crt_file":"/etc/certs/syslogng.crt"},"type":"syslog_ng"}]}}},{"id":"58505402-80e3-11f0-a298-da7ad0900002","type":"pipelines","attributes":{"name":"rsyslog-dest-pipeline","config":{"destinations":[{"id":"rsyslog-destination-1","inputs":["source-1"],"keepalive":60000,"tls":{"crt_file":"/etc/certs/rsyslog.crt"},"type":"rsyslog"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"64a3e372-80e3-11f0-a2a6-da7ad0900002","type":"pipelines","attributes":{"name":"firehose + pipeline","config":{"destinations":[{"id":"destination-1","inputs":["firehose-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"auth":{"assume_role":"arn:aws:iam::123456789012:role/ExampleRole","external_id":"external-id-123","session_name":"firehose-session"},"id":"firehose-source-1","tls":{"crt_file":"/path/to/firehose.crt"},"type":"amazon_data_firehose"}]}}},{"id":"92751474-80e3-11f0-a2d0-da7ad0900002","type":"pipelines","attributes":{"name":"amazon + s3 pipeline (minimal)","config":{"destinations":[{"bucket":"my-logs-bucket","id":"s3-dest-basic-1","inputs":["source-1"],"key_prefix":"logs/","region":"us-east-1","storage_class":"STANDARD","type":"amazon_s3"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"2ae24eb0-8149-11f0-baea-da7ad0900002","type":"pipelines","attributes":{"name":"quota-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["quota-1"],"type":"datadog_logs"}],"processors":[{"drop_events":true,"id":"quota-1","ignore_when_missing_partitions":true,"include":"*","inputs":["source-1"],"limit":{"enforce":"events","limit":1000},"name":"limitByHostAndEnv","overrides":[{"fields":[{"name":"env","value":"prod"},{"name":"host","value":"*"}],"limit":{"enforce":"events","limit":500}},{"fields":[{"name":"env","value":"*"},{"name":"host","value":"localhost"}],"limit":{"enforce":"bytes","limit":300}}],"partition_fields":["host","env"],"type":"quota"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"2d5cca94-8149-11f0-baec-da7ad0900002","type":"pipelines","attributes":{"name":"add-fields-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["add-fields-1"],"type":"datadog_logs"}],"processors":[{"fields":[{"name":"custom.field","value":"hello-world"},{"name":"env","value":"prod"}],"id":"add-fields-1","include":"*","inputs":["source-1"],"type":"add_fields"}],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"31a26406-8149-11f0-9918-da7ad0900002","type":"pipelines","attributes":{"name":"fluent-pipeline","config":{"destinations":[{"id":"destination-1","inputs":["fluent-source-1"],"type":"datadog_logs"}],"processors":[],"sources":[{"id":"fluent-source-1","tls":{"ca_file":"/etc/ssl/certs/ca.crt","crt_file":"/etc/ssl/certs/fluent.crt","key_file":"/etc/ssl/private/fluent.key"},"type":"fluentd"}]}}},{"id":"47a53594-8149-11f0-9926-da7ad0900002","type":"pipelines","attributes":{"name":"syslogng-dest-pipeline","config":{"destinations":[{"id":"syslogng-destination-1","inputs":["source-1"],"keepalive":45000,"tls":{"crt_file":"/etc/certs/syslogng.crt"},"type":"syslog_ng"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"65424c18-8149-11f0-bb0a-da7ad0900002","type":"pipelines","attributes":{"name":"sentinelone + pipeline","config":{"destinations":[{"id":"sentinelone-dest-1","inputs":["source-1"],"region":"us","type":"sentinel_one"}],"processors":[],"sources":[{"id":"source-1","type":"datadog_agent"}]}}},{"id":"72abaaca-8149-11f0-9940-da7ad0900002","type":"pipelines","attributes":{"name":"socket-pipeline-udp","config":{"destinations":[{"id":"destination-1","inputs":["socket-source-2"],"type":"datadog_logs"}],"processors":[],"sources":[{"framing":{"delimiter":"|","method":"character_delimited"},"id":"socket-source-2","mode":"udp","type":"socket"}]}}},{"id":"4b51d94c-8165-11f0-ab16-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}},{"id":"d9ab0514-81a7-11f0-b0f7-da7ad0900002","type":"pipelines","attributes":{"name":"Main + Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}],"meta":{"totalCount":440}} ' headers: @@ -70,14 +80,14 @@ http_interactions: status: code: 200 message: OK -- recorded_at: Fri, 25 Apr 2025 17:29:32 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:35 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/dd87c652-21fa-11f0-96e2-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/77329f9a-cae1-11f0-a2c9-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.frozen b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.frozen index a8aa863f11e4..5020f3fdc84f 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:34.672Z \ No newline at end of file +2025-11-26T16:03:39.454Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.yml b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.yml index 5c5d0a35ecaf..3370e3d84270 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:34 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:39 GMT request: body: encoding: UTF-8 @@ -15,7 +15,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"deeea5f6-21fa-11f0-96e4-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"794d71d8-cae1-11f0-a2cb-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -25,11 +25,11 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:34 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:39 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"unknown-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"unknown-processor","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"pipelines"}}' headers: Accept: @@ -37,12 +37,12 @@ http_interactions: Content-Type: - application/json method: PUT - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/deeea5f6-21fa-11f0-96e4-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/794d71d8-cae1-11f0-a2cb-da7ad0900002 response: body: encoding: UTF-8 - string: '{"errors":[{"title":"Component with ID filter-processor is an unknown - component","meta":{"message":"Component with ID filter-processor is an unknown + string: '{"errors":[{"title":"Component with ID my-processor-group is an unknown + component","meta":{"message":"Component with ID my-processor-group is an unknown component"}},{"title":"The following components are unused: [datadog-agent-source unknown-processor]","meta":{"message":"The following components are unused: [datadog-agent-source unknown-processor]"}}]} @@ -54,14 +54,14 @@ http_interactions: status: code: 400 message: Bad Request -- recorded_at: Fri, 25 Apr 2025 17:29:34 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:39 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/deeea5f6-21fa-11f0-96e4-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/794d71d8-cae1-11f0-a2cb-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.frozen b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.frozen index 81821e325e08..eb2e354e0e6e 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:36.564Z \ No newline at end of file +2025-11-26T16:03:41.901Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.yml b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.yml index 6ff8ab6e59e8..7d5d64b9e26e 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.yml +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-Not-Found-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:36 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:41 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"pipelines"}}' headers: Accept: diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.frozen index 8195f92c72eb..d4844244d852 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:36.987Z \ No newline at end of file +2025-11-26T16:03:42.435Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.yml index b8ee0702bdd4..3c1b7f200b4f 100644 --- a/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/Update-a-pipeline-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:36 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:42 GMT request: body: encoding: UTF-8 @@ -15,7 +15,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"e04d5230-21fa-11f0-96e6-da7ad0900002","type":"pipelines","attributes":{"name":"Main + string: '{"data":{"id":"7b1707f4-cae1-11f0-a2cd-da7ad0900002","type":"pipelines","attributes":{"name":"Main Observability Pipeline","config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' @@ -25,11 +25,11 @@ http_interactions: status: code: 201 message: Created -- recorded_at: Fri, 25 Apr 2025 17:29:36 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:42 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"updated-datadog-logs-destination-id","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Updated + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"updated-datadog-logs-destination-id","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Updated Pipeline Name"},"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"pipelines"}}' headers: Accept: @@ -37,12 +37,12 @@ http_interactions: Content-Type: - application/json method: PUT - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/e04d5230-21fa-11f0-96e6-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/7b1707f4-cae1-11f0-a2cd-da7ad0900002 response: body: encoding: UTF-8 - string: '{"data":{"id":"e04d5230-21fa-11f0-96e6-da7ad0900002","type":"pipelines","attributes":{"name":"Updated - Pipeline Name","config":{"destinations":[{"id":"updated-datadog-logs-destination-id","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} + string: '{"data":{"id":"7b1707f4-cae1-11f0-a2cd-da7ad0900002","type":"pipelines","attributes":{"name":"Updated + Pipeline Name","config":{"destinations":[{"id":"updated-datadog-logs-destination-id","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]}}}} ' headers: @@ -51,14 +51,14 @@ http_interactions: status: code: 200 message: OK -- recorded_at: Fri, 25 Apr 2025 17:29:36 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:42 GMT request: body: null headers: Accept: - '*/*' method: DELETE - uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/e04d5230-21fa-11f0-96e6-da7ad0900002 + uri: https://api.datadoghq.com/api/v2/remote_config/products/obs_pipelines/pipelines/7b1707f4-cae1-11f0-a2cd-da7ad0900002 response: body: encoding: UTF-8 diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.frozen b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.frozen index f19e635b2791..462334cc245a 100644 --- a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:39.236Z \ No newline at end of file +2025-11-26T16:03:45.970Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.yml b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.yml index ef630a906c85..bd0c509db64e 100644 --- a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-Bad-Request-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:39 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:45 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"type":"pipelines"}}' headers: Accept: @@ -15,7 +15,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"title":"Field ''include'' is required","meta":{"field":"include","id":"filter-processor","message":"Field + string: '{"errors":[{"title":"Field ''include'' is required","meta":{"field":"include","id":"my-processor-group","message":"Field + ''include'' is required"}},{"title":"Field ''include'' is required","meta":{"field":"include","id":"filter-processor","message":"Field ''include'' is required"}}]} ' diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.frozen index c2e1e3c73675..1d4961eb3dc5 100644 --- a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.frozen +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.frozen @@ -1 +1 @@ -2025-04-25T17:29:39.613Z \ No newline at end of file +2025-11-26T16:03:46.484Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.yml index 5c3259b21243..fefc631687f7 100644 --- a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.yml +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-returns-OK-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 25 Apr 2025 17:29:39 GMT +- recorded_at: Wed, 26 Nov 2025 16:03:46 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["filter-processor"],"type":"datadog_logs"}],"processors":[{"id":"filter-processor","include":"service:my-service","inputs":["datadog-agent-source"],"type":"filter"}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main + string: '{"data":{"attributes":{"config":{"destinations":[{"id":"datadog-logs-destination","inputs":["my-processor-group"],"type":"datadog_logs"}],"processors":[{"enabled":true,"id":"my-processor-group","include":"service:my-service","inputs":["datadog-agent-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"id":"datadog-agent-source","type":"datadog_agent"}]},"name":"Main Observability Pipeline"},"type":"pipelines"}}' headers: Accept: @@ -20,7 +20,7 @@ http_interactions: ' headers: Content-Type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/examples/v2/observability-pipelines/CreatePipeline.rb b/examples/v2/observability-pipelines/CreatePipeline.rb index 15120a4c7bbc..26427950224e 100644 --- a/examples/v2/observability-pipelines/CreatePipeline.rb +++ b/examples/v2/observability-pipelines/CreatePipeline.rb @@ -14,19 +14,27 @@ DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({ id: "datadog-logs-destination", inputs: [ - "filter-processor", + "my-processor-group", ], type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS, }), ], processors: [ - DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ - id: "filter-processor", + DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({ + enabled: true, + id: "my-processor-group", include: "service:my-service", inputs: [ "datadog-agent-source", ], - type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + processors: [ + DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ + enabled: true, + id: "filter-processor", + include: "status:error", + type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + }), + ], }), ], sources: [ diff --git a/examples/v2/observability-pipelines/UpdatePipeline.rb b/examples/v2/observability-pipelines/UpdatePipeline.rb index 594ec3df377e..dc510dc3dde1 100644 --- a/examples/v2/observability-pipelines/UpdatePipeline.rb +++ b/examples/v2/observability-pipelines/UpdatePipeline.rb @@ -17,19 +17,27 @@ DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({ id: "updated-datadog-logs-destination-id", inputs: [ - "filter-processor", + "my-processor-group", ], type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS, }), ], processors: [ - DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ - id: "filter-processor", + DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({ + enabled: true, + id: "my-processor-group", include: "service:my-service", inputs: [ "datadog-agent-source", ], - type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + processors: [ + DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ + enabled: true, + id: "filter-processor", + include: "status:error", + type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + }), + ], }), ], sources: [ diff --git a/examples/v2/observability-pipelines/ValidatePipeline.rb b/examples/v2/observability-pipelines/ValidatePipeline.rb index a9466e135e4b..ab3f267c04a2 100644 --- a/examples/v2/observability-pipelines/ValidatePipeline.rb +++ b/examples/v2/observability-pipelines/ValidatePipeline.rb @@ -14,19 +14,27 @@ DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({ id: "datadog-logs-destination", inputs: [ - "filter-processor", + "my-processor-group", ], type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS, }), ], processors: [ - DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ - id: "filter-processor", + DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({ + enabled: true, + id: "my-processor-group", include: "service:my-service", inputs: [ "datadog-agent-source", ], - type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + processors: [ + DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ + enabled: true, + id: "filter-processor", + include: "status:error", + type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + }), + ], }), ], sources: [ diff --git a/features/v2/observability_pipelines.feature b/features/v2/observability_pipelines.feature index c7149b1e4fad..c2a2e39f7cad 100644 --- a/features/v2/observability_pipelines.feature +++ b/features/v2/observability_pipelines.feature @@ -12,7 +12,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "Bad Request" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request @@ -20,7 +20,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "Conflict" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 409 Conflict @@ -28,7 +28,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "OK" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 201 OK And the response "data" has field "id" @@ -106,7 +106,7 @@ Feature: Observability Pipelines And new "UpdatePipeline" request And there is a valid "pipeline" in the system And request contains "pipeline_id" parameter from "pipeline.data.id" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request @@ -115,7 +115,7 @@ Feature: Observability Pipelines Given operation "UpdatePipeline" enabled And new "UpdatePipeline" request And request contains "pipeline_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 409 Conflict @@ -124,7 +124,7 @@ Feature: Observability Pipelines Given operation "UpdatePipeline" enabled And new "UpdatePipeline" request And request contains "pipeline_id" parameter with value "3fa85f64-5717-4562-b3fc-2c963f66afa6" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 404 Not Found @@ -134,7 +134,7 @@ Feature: Observability Pipelines And there is a valid "pipeline" in the system And new "UpdatePipeline" request And request contains "pipeline_id" parameter from "pipeline.data.id" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "updated-datadog-logs-destination-id", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Updated Pipeline Name"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "updated-datadog-logs-destination-id", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Updated Pipeline Name"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 200 OK And the response "data" has field "id" @@ -149,19 +149,19 @@ Feature: Observability Pipelines Scenario: Validate an observability pipeline returns "Bad Request" response Given operation "ValidatePipeline" enabled And new "ValidatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request And the response "errors[0].title" is equal to "Field 'include' is required" And the response "errors[0].meta.field" is equal to "include" - And the response "errors[0].meta.id" is equal to "filter-processor" + And the response "errors[0].meta.id" is equal to "my-processor-group" And the response "errors[0].meta.message" is equal to "Field 'include' is required" @team:DataDog/observability-pipelines Scenario: Validate an observability pipeline returns "OK" response Given operation "ValidatePipeline" enabled And new "ValidatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"id": "filter-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "type": "filter"}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 200 OK And the response "errors" has length 0 diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 427fdcf8659c..8affca9fe0fc 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -3056,6 +3056,7 @@ def overrides "v2.observability_pipeline_aws_auth" => "ObservabilityPipelineAwsAuth", "v2.observability_pipeline_config" => "ObservabilityPipelineConfig", "v2.observability_pipeline_config_destination_item" => "ObservabilityPipelineConfigDestinationItem", + "v2.observability_pipeline_config_processor_group" => "ObservabilityPipelineConfigProcessorGroup", "v2.observability_pipeline_config_processor_item" => "ObservabilityPipelineConfigProcessorItem", "v2.observability_pipeline_config_source_item" => "ObservabilityPipelineConfigSourceItem", "v2.observability_pipeline_crowd_strike_next_gen_siem_destination" => "ObservabilityPipelineCrowdStrikeNextGenSiemDestination", diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_add_env_vars_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_add_env_vars_processor.rb index 6943c679f4fd..a20504198888 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_add_env_vars_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_add_env_vars_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineAddEnvVarsProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The unique identifier for this component. Used to reference this processor in the pipeline. attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # The processor type. The value should always be `add_env_vars`. attr_reader :type @@ -42,9 +42,9 @@ class ObservabilityPipelineAddEnvVarsProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type', :'variables' => :'variables' } @@ -54,9 +54,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineAddEnvVarsProcessorType', :'variables' => :'Array' } @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -88,12 +92,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? return false if @variables.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -137,16 +145,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -193,9 +191,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && variables == o.variables && additional_properties == o.additional_properties @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, type, variables, additional_properties].hash + [enabled, id, include, type, variables, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_add_fields_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_add_fields_processor.rb index 0a1a2a6b19ac..cf83bee99308 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_add_fields_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_add_fields_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineAddFieldsProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # A list of static fields (key-value pairs) that is added to each log event processed by this component. attr_reader :fields @@ -30,9 +33,6 @@ class ObservabilityPipelineAddFieldsProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The processor type. The value should always be `add_fields`. attr_reader :type @@ -42,10 +42,10 @@ class ObservabilityPipelineAddFieldsProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'fields' => :'fields', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type' } end @@ -54,10 +54,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'fields' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineAddFieldsProcessorType' } end @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'fields') if (value = attributes[:'fields']).is_a?(Array) self.fields = value @@ -94,12 +98,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @fields.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param fields [Object] Object to be assigned # @!visibility private @@ -147,16 +155,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -193,10 +191,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && fields == o.fields && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && additional_properties == o.additional_properties end @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [fields, id, include, inputs, type, additional_properties].hash + [enabled, fields, id, include, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_config.rb b/lib/datadog_api_client/v2/models/observability_pipeline_config.rb index 5f34d5e2da95..04005274e028 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_config.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_config.rb @@ -24,7 +24,7 @@ class ObservabilityPipelineConfig # A list of destination components where processed logs are sent. attr_reader :destinations - # A list of processors that transform or enrich log data. + # A list of processor groups that transform or enrich log data. attr_accessor :processors # A list of configured data sources for the pipeline. @@ -47,7 +47,7 @@ def self.attribute_map def self.openapi_types { :'destinations' => :'Array', - :'processors' => :'Array', + :'processors' => :'Array', :'sources' => :'Array' } end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_config_processor_group.rb b/lib/datadog_api_client/v2/models/observability_pipeline_config_processor_group.rb new file mode 100644 index 000000000000..259aa862300c --- /dev/null +++ b/lib/datadog_api_client/v2/models/observability_pipeline_config_processor_group.rb @@ -0,0 +1,211 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # A group of processors. + class ObservabilityPipelineConfigProcessorGroup + include BaseGenericModel + + # Whether this processor group is enabled. + attr_reader :enabled + + # The unique identifier for the processor group. + attr_reader :id + + # Conditional expression for when this processor group should execute. + attr_reader :include + + # A list of component IDs whose output is used as the input for this processor group. + attr_reader :inputs + + # Processors applied sequentially within this group. Events flow through each processor in order. + attr_reader :processors + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'enabled' => :'enabled', + :'id' => :'id', + :'include' => :'include', + :'inputs' => :'inputs', + :'processors' => :'processors' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'enabled' => :'Boolean', + :'id' => :'String', + :'include' => :'String', + :'inputs' => :'Array', + :'processors' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'include') + self.include = attributes[:'include'] + end + + if attributes.key?(:'inputs') + if (value = attributes[:'inputs']).is_a?(Array) + self.inputs = value + end + end + + if attributes.key?(:'processors') + if (value = attributes[:'processors']).is_a?(Array) + self.processors = value + end + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @enabled.nil? + return false if @id.nil? + return false if @include.nil? + return false if @inputs.nil? + return false if @processors.nil? + true + end + + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + + # Custom attribute writer method with validation + # @param id [Object] Object to be assigned + # @!visibility private + def id=(id) + if id.nil? + fail ArgumentError, 'invalid value for "id", id cannot be nil.' + end + @id = id + end + + # Custom attribute writer method with validation + # @param include [Object] Object to be assigned + # @!visibility private + def include=(include) + if include.nil? + fail ArgumentError, 'invalid value for "include", include cannot be nil.' + end + @include = include + end + + # Custom attribute writer method with validation + # @param inputs [Object] Object to be assigned + # @!visibility private + def inputs=(inputs) + if inputs.nil? + fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' + end + @inputs = inputs + end + + # Custom attribute writer method with validation + # @param processors [Object] Object to be assigned + # @!visibility private + def processors=(processors) + if processors.nil? + fail ArgumentError, 'invalid value for "processors", processors cannot be nil.' + end + @processors = processors + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + enabled == o.enabled && + id == o.id && + include == o.include && + inputs == o.inputs && + processors == o.processors && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [enabled, id, include, inputs, processors, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor.rb index e0d50f74d5c6..91b10a9b1adc 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineCustomProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The unique identifier for this processor. attr_reader :id # A Datadog search query used to determine which logs this processor targets. This field should always be set to `*` for the custom_processor processor. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # Array of VRL remap rules. attr_reader :remaps @@ -42,9 +42,9 @@ class ObservabilityPipelineCustomProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'remaps' => :'remaps', :'type' => :'type' } @@ -54,9 +54,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'remaps' => :'Array', :'type' => :'ObservabilityPipelineCustomProcessorType' } @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -88,12 +92,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'remaps') if (value = attributes[:'remaps']).is_a?(Array) self.remaps = value @@ -109,15 +107,25 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @remaps.nil? return false if @remaps.length < 1 return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -138,16 +146,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param remaps [Object] Object to be assigned # @!visibility private @@ -197,9 +195,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && remaps == o.remaps && type == o.type && additional_properties == o.additional_properties @@ -209,7 +207,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, remaps, type, additional_properties].hash + [enabled, id, include, remaps, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor_remap.rb b/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor_remap.rb index 04f0e10e6936..f74a6278ca71 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor_remap.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_custom_processor_remap.rb @@ -25,7 +25,7 @@ class ObservabilityPipelineCustomProcessorRemap attr_reader :drop_on_error # Whether this remap rule is enabled. - attr_reader :enabled + attr_accessor :enabled # A Datadog search query used to filter events for this specific remap rule. attr_reader :include @@ -106,7 +106,6 @@ def initialize(attributes = {}) # @!visibility private def valid? return false if @drop_on_error.nil? - return false if @enabled.nil? return false if @include.nil? return false if @name.nil? return false if @source.nil? @@ -123,16 +122,6 @@ def drop_on_error=(drop_on_error) @drop_on_error = drop_on_error end - # Custom attribute writer method with validation - # @param enabled [Object] Object to be assigned - # @!visibility private - def enabled=(enabled) - if enabled.nil? - fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' - end - @enabled = enabled - end - # Custom attribute writer method with validation # @param include [Object] Object to be assigned # @!visibility private diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_datadog_tags_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_datadog_tags_processor.rb index 4b3ae3a6e07f..5a428e80f7cd 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_datadog_tags_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_datadog_tags_processor.rb @@ -24,15 +24,15 @@ class ObservabilityPipelineDatadogTagsProcessor # The action to take on tags with matching keys. attr_reader :action + # Whether this processor is enabled. + attr_reader :enabled + # 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). attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # A list of tag keys. attr_reader :keys @@ -49,9 +49,9 @@ class ObservabilityPipelineDatadogTagsProcessor def self.attribute_map { :'action' => :'action', + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'keys' => :'keys', :'mode' => :'mode', :'type' => :'type' @@ -63,9 +63,9 @@ def self.attribute_map def self.openapi_types { :'action' => :'ObservabilityPipelineDatadogTagsProcessorAction', + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'keys' => :'Array', :'mode' => :'ObservabilityPipelineDatadogTagsProcessorMode', :'type' => :'ObservabilityPipelineDatadogTagsProcessorType' @@ -94,6 +94,10 @@ def initialize(attributes = {}) self.action = attributes[:'action'] end + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -102,12 +106,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'keys') if (value = attributes[:'keys']).is_a?(Array) self.keys = value @@ -128,9 +126,9 @@ def initialize(attributes = {}) # @!visibility private def valid? return false if @action.nil? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @keys.nil? return false if @mode.nil? return false if @type.nil? @@ -147,6 +145,16 @@ def action=(action) @action = action end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -167,16 +175,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param keys [Object] Object to be assigned # @!visibility private @@ -234,9 +232,9 @@ def ==(o) return true if self.equal?(o) self.class == o.class && action == o.action && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && keys == o.keys && mode == o.mode && type == o.type && @@ -247,7 +245,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [action, id, include, inputs, keys, mode, type, additional_properties].hash + [action, enabled, id, include, keys, mode, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_dedupe_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_dedupe_processor.rb index 23b20920ed1b..9132d85aed2f 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_dedupe_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_dedupe_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineDedupeProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # A list of log field paths to check for duplicates. attr_reader :fields @@ -30,9 +33,6 @@ class ObservabilityPipelineDedupeProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # The deduplication mode to apply to the fields. attr_reader :mode @@ -45,10 +45,10 @@ class ObservabilityPipelineDedupeProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'fields' => :'fields', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'mode' => :'mode', :'type' => :'type' } @@ -58,10 +58,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'fields' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'mode' => :'ObservabilityPipelineDedupeProcessorMode', :'type' => :'ObservabilityPipelineDedupeProcessorType' } @@ -85,6 +85,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'fields') if (value = attributes[:'fields']).is_a?(Array) self.fields = value @@ -99,12 +103,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'mode') self.mode = attributes[:'mode'] end @@ -118,15 +116,25 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @fields.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @mode.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param fields [Object] Object to be assigned # @!visibility private @@ -157,16 +165,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param mode [Object] Object to be assigned # @!visibility private @@ -213,10 +211,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && fields == o.fields && id == o.id && include == o.include && - inputs == o.inputs && mode == o.mode && type == o.type && additional_properties == o.additional_properties @@ -226,7 +224,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [fields, id, include, inputs, mode, type, additional_properties].hash + [enabled, fields, id, include, mode, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_processor.rb index eedfd442c2dd..b83339aacc2f 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineEnrichmentTableProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # Defines a static enrichment table loaded from a CSV file. attr_accessor :file @@ -33,9 +36,6 @@ class ObservabilityPipelineEnrichmentTableProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # Path where enrichment results should be stored in the log. attr_reader :target @@ -48,11 +48,11 @@ class ObservabilityPipelineEnrichmentTableProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'file' => :'file', :'geoip' => :'geoip', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'target' => :'target', :'type' => :'type' } @@ -62,11 +62,11 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'file' => :'ObservabilityPipelineEnrichmentTableFile', :'geoip' => :'ObservabilityPipelineEnrichmentTableGeoIp', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'target' => :'String', :'type' => :'ObservabilityPipelineEnrichmentTableProcessorType' } @@ -90,6 +90,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'file') self.file = attributes[:'file'] end @@ -106,12 +110,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'target') self.target = attributes[:'target'] end @@ -125,14 +123,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @target.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -153,16 +161,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param target [Object] Object to be assigned # @!visibility private @@ -209,11 +207,11 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && file == o.file && geoip == o.geoip && id == o.id && include == o.include && - inputs == o.inputs && target == o.target && type == o.type && additional_properties == o.additional_properties @@ -223,7 +221,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [file, geoip, id, include, inputs, target, type, additional_properties].hash + [enabled, file, geoip, id, include, target, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_filter_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_filter_processor.rb index 66dd3a9d58a3..77b9a8dde0d1 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_filter_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_filter_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineFilterProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # 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). attr_reader :id # 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. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The processor type. The value should always be `filter`. attr_reader :type @@ -39,9 +39,9 @@ class ObservabilityPipelineFilterProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type' } end @@ -50,9 +50,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineFilterProcessorType' } end @@ -75,6 +75,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -83,12 +87,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -98,13 +96,23 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -125,16 +133,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -171,9 +169,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && additional_properties == o.additional_properties end @@ -182,7 +180,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, type, additional_properties].hash + [enabled, id, include, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_generate_metrics_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_generate_metrics_processor.rb index 1b5de81f58ce..ec5534dcc363 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_generate_metrics_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_generate_metrics_processor.rb @@ -22,17 +22,17 @@ module DatadogAPIClient::V2 class ObservabilityPipelineGenerateMetricsProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The unique identifier for this component. Used to reference this component in other parts of the pipeline. attr_reader :id # A Datadog search query used to determine which logs this processor targets. - attr_reader :include - - # A list of component IDs whose output is used as the `input` for this processor. - attr_reader :inputs + attr_accessor :include # Configuration for generating individual metrics. - attr_reader :metrics + attr_accessor :metrics # The processor type. Always `generate_datadog_metrics`. attr_reader :type @@ -43,9 +43,9 @@ class ObservabilityPipelineGenerateMetricsProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'metrics' => :'metrics', :'type' => :'type' } @@ -55,9 +55,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'metrics' => :'Array', :'type' => :'ObservabilityPipelineGenerateMetricsProcessorType' } @@ -81,6 +81,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -89,12 +93,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'metrics') if (value = attributes[:'metrics']).is_a?(Array) self.metrics = value @@ -110,52 +108,30 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? - return false if @include.nil? - return false if @inputs.nil? - return false if @metrics.nil? return false if @type.nil? true end # Custom attribute writer method with validation - # @param id [Object] Object to be assigned + # @param enabled [Object] Object to be assigned # @!visibility private - def id=(id) - if id.nil? - fail ArgumentError, 'invalid value for "id", id cannot be nil.' + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' end - @id = id + @enabled = enabled end # Custom attribute writer method with validation - # @param include [Object] Object to be assigned - # @!visibility private - def include=(include) - if include.nil? - fail ArgumentError, 'invalid value for "include", include cannot be nil.' - end - @include = include - end - - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - - # Custom attribute writer method with validation - # @param metrics [Object] Object to be assigned + # @param id [Object] Object to be assigned # @!visibility private - def metrics=(metrics) - if metrics.nil? - fail ArgumentError, 'invalid value for "metrics", metrics cannot be nil.' + def id=(id) + if id.nil? + fail ArgumentError, 'invalid value for "id", id cannot be nil.' end - @metrics = metrics + @id = id end # Custom attribute writer method with validation @@ -194,9 +170,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && metrics == o.metrics && type == o.type && additional_properties == o.additional_properties @@ -206,7 +182,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, metrics, type, additional_properties].hash + [enabled, id, include, metrics, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_ocsf_mapper_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_ocsf_mapper_processor.rb index 5f245ff62737..cde8cc4de9c1 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_ocsf_mapper_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_ocsf_mapper_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineOcsfMapperProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The unique identifier for this component. Used to reference this component in other parts of the pipeline. attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this processor. - attr_reader :inputs - # A list of mapping rules to convert events to the OCSF format. attr_reader :mappings @@ -42,9 +42,9 @@ class ObservabilityPipelineOcsfMapperProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'mappings' => :'mappings', :'type' => :'type' } @@ -54,9 +54,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'mappings' => :'Array', :'type' => :'ObservabilityPipelineOcsfMapperProcessorType' } @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -88,12 +92,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'mappings') if (value = attributes[:'mappings']).is_a?(Array) self.mappings = value @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @mappings.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -137,16 +145,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param mappings [Object] Object to be assigned # @!visibility private @@ -193,9 +191,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && mappings == o.mappings && type == o.type && additional_properties == o.additional_properties @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, mappings, type, additional_properties].hash + [enabled, id, include, mappings, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor.rb index 2b39ee4555d6..4f265cf797c6 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_parse_grok_processor.rb @@ -24,15 +24,15 @@ class ObservabilityPipelineParseGrokProcessor # If set to `true`, disables the default Grok rules provided by Datadog. attr_accessor :disable_library_rules + # Whether this processor is enabled. + attr_reader :enabled + # A unique identifier for this processor. attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The list of Grok parsing rules. If multiple matching rules are provided, they are evaluated in order. The first successful match is applied. attr_reader :rules @@ -46,9 +46,9 @@ class ObservabilityPipelineParseGrokProcessor def self.attribute_map { :'disable_library_rules' => :'disable_library_rules', + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'rules' => :'rules', :'type' => :'type' } @@ -59,9 +59,9 @@ def self.attribute_map def self.openapi_types { :'disable_library_rules' => :'Boolean', + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'rules' => :'Array', :'type' => :'ObservabilityPipelineParseGrokProcessorType' } @@ -89,6 +89,10 @@ def initialize(attributes = {}) self.disable_library_rules = attributes[:'disable_library_rules'] end + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -97,12 +101,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'rules') if (value = attributes[:'rules']).is_a?(Array) self.rules = value @@ -118,14 +116,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @rules.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -146,16 +154,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param rules [Object] Object to be assigned # @!visibility private @@ -203,9 +201,9 @@ def ==(o) return true if self.equal?(o) self.class == o.class && disable_library_rules == o.disable_library_rules && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && rules == o.rules && type == o.type && additional_properties == o.additional_properties @@ -215,7 +213,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [disable_library_rules, id, include, inputs, rules, type, additional_properties].hash + [disable_library_rules, enabled, id, include, rules, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_parse_json_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_parse_json_processor.rb index 7080c8c17de8..918b42a79ca4 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_parse_json_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_parse_json_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineParseJSONProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The name of the log field that contains a JSON string. attr_reader :field @@ -30,9 +33,6 @@ class ObservabilityPipelineParseJSONProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The processor type. The value should always be `parse_json`. attr_reader :type @@ -42,10 +42,10 @@ class ObservabilityPipelineParseJSONProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'field' => :'field', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type' } end @@ -54,10 +54,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'field' => :'String', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineParseJSONProcessorType' } end @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'field') self.field = attributes[:'field'] end @@ -92,12 +96,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -107,14 +105,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @field.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param field [Object] Object to be assigned # @!visibility private @@ -145,16 +153,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -191,10 +189,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && field == o.field && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && additional_properties == o.additional_properties end @@ -203,7 +201,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [field, id, include, inputs, type, additional_properties].hash + [enabled, field, id, include, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb index 173607241a6e..ea5b0a3edb24 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_quota_processor.rb @@ -22,7 +22,10 @@ class ObservabilityPipelineQuotaProcessor include BaseGenericModel # 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. - attr_reader :drop_events + attr_accessor :drop_events + + # Whether this processor is enabled. + attr_reader :enabled # 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). attr_reader :id @@ -33,9 +36,6 @@ class ObservabilityPipelineQuotaProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events. attr_reader :limit @@ -64,10 +64,10 @@ class ObservabilityPipelineQuotaProcessor def self.attribute_map { :'drop_events' => :'drop_events', + :'enabled' => :'enabled', :'id' => :'id', :'ignore_when_missing_partitions' => :'ignore_when_missing_partitions', :'include' => :'include', - :'inputs' => :'inputs', :'limit' => :'limit', :'name' => :'name', :'overflow_action' => :'overflow_action', @@ -82,10 +82,10 @@ def self.attribute_map def self.openapi_types { :'drop_events' => :'Boolean', + :'enabled' => :'Boolean', :'id' => :'String', :'ignore_when_missing_partitions' => :'Boolean', :'include' => :'String', - :'inputs' => :'Array', :'limit' => :'ObservabilityPipelineQuotaProcessorLimit', :'name' => :'String', :'overflow_action' => :'ObservabilityPipelineQuotaProcessorOverflowAction', @@ -117,6 +117,10 @@ def initialize(attributes = {}) self.drop_events = attributes[:'drop_events'] end + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -129,12 +133,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'limit') self.limit = attributes[:'limit'] end @@ -168,10 +166,9 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? - return false if @drop_events.nil? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @limit.nil? return false if @name.nil? return false if @type.nil? @@ -179,13 +176,13 @@ def valid? end # Custom attribute writer method with validation - # @param drop_events [Object] Object to be assigned + # @param enabled [Object] Object to be assigned # @!visibility private - def drop_events=(drop_events) - if drop_events.nil? - fail ArgumentError, 'invalid value for "drop_events", drop_events cannot be nil.' + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' end - @drop_events = drop_events + @enabled = enabled end # Custom attribute writer method with validation @@ -208,16 +205,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param limit [Object] Object to be assigned # @!visibility private @@ -275,10 +262,10 @@ def ==(o) return true if self.equal?(o) self.class == o.class && drop_events == o.drop_events && + enabled == o.enabled && id == o.id && ignore_when_missing_partitions == o.ignore_when_missing_partitions && include == o.include && - inputs == o.inputs && limit == o.limit && name == o.name && overflow_action == o.overflow_action && @@ -292,7 +279,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [drop_events, id, ignore_when_missing_partitions, include, inputs, limit, name, overflow_action, overrides, partition_fields, type, additional_properties].hash + [drop_events, enabled, id, ignore_when_missing_partitions, include, limit, name, overflow_action, overrides, partition_fields, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_reduce_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_reduce_processor.rb index d920ebf9b5c8..4b400f061d8e 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_reduce_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_reduce_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineReduceProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # A list of fields used to group log events for merging. attr_reader :group_by @@ -30,9 +33,6 @@ class ObservabilityPipelineReduceProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # List of merge strategies defining how values from grouped events should be combined. attr_reader :merge_strategies @@ -45,10 +45,10 @@ class ObservabilityPipelineReduceProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'group_by' => :'group_by', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'merge_strategies' => :'merge_strategies', :'type' => :'type' } @@ -58,10 +58,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'group_by' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'merge_strategies' => :'Array', :'type' => :'ObservabilityPipelineReduceProcessorType' } @@ -85,6 +85,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'group_by') if (value = attributes[:'group_by']).is_a?(Array) self.group_by = value @@ -99,12 +103,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'merge_strategies') if (value = attributes[:'merge_strategies']).is_a?(Array) self.merge_strategies = value @@ -120,15 +118,25 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @group_by.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @merge_strategies.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param group_by [Object] Object to be assigned # @!visibility private @@ -159,16 +167,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param merge_strategies [Object] Object to be assigned # @!visibility private @@ -215,10 +213,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && group_by == o.group_by && id == o.id && include == o.include && - inputs == o.inputs && merge_strategies == o.merge_strategies && type == o.type && additional_properties == o.additional_properties @@ -228,7 +226,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [group_by, id, include, inputs, merge_strategies, type, additional_properties].hash + [enabled, group_by, id, include, merge_strategies, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_remove_fields_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_remove_fields_processor.rb index e57683adc75f..3f22cd935f0e 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_remove_fields_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_remove_fields_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineRemoveFieldsProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # A list of field names to be removed from each log event. attr_reader :fields @@ -30,9 +33,6 @@ class ObservabilityPipelineRemoveFieldsProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # The `PipelineRemoveFieldsProcessor` `inputs`. - attr_reader :inputs - # The processor type. The value should always be `remove_fields`. attr_reader :type @@ -42,10 +42,10 @@ class ObservabilityPipelineRemoveFieldsProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'fields' => :'fields', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type' } end @@ -54,10 +54,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'fields' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineRemoveFieldsProcessorType' } end @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'fields') if (value = attributes[:'fields']).is_a?(Array) self.fields = value @@ -94,12 +98,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @fields.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param fields [Object] Object to be assigned # @!visibility private @@ -147,16 +155,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -193,10 +191,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && fields == o.fields && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && additional_properties == o.additional_properties end @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [fields, id, include, inputs, type, additional_properties].hash + [enabled, fields, id, include, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_rename_fields_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_rename_fields_processor.rb index c8e37f1787dd..4249ad40d341 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_rename_fields_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_rename_fields_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineRenameFieldsProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # 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. attr_reader :fields @@ -30,9 +33,6 @@ class ObservabilityPipelineRenameFieldsProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The processor type. The value should always be `rename_fields`. attr_reader :type @@ -42,10 +42,10 @@ class ObservabilityPipelineRenameFieldsProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'fields' => :'fields', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'type' => :'type' } end @@ -54,10 +54,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'fields' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'type' => :'ObservabilityPipelineRenameFieldsProcessorType' } end @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'fields') if (value = attributes[:'fields']).is_a?(Array) self.fields = value @@ -94,12 +98,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @fields.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param fields [Object] Object to be assigned # @!visibility private @@ -147,16 +155,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param type [Object] Object to be assigned # @!visibility private @@ -193,10 +191,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && fields == o.fields && id == o.id && include == o.include && - inputs == o.inputs && type == o.type && additional_properties == o.additional_properties end @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [fields, id, include, inputs, type, additional_properties].hash + [enabled, fields, id, include, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_sample_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_sample_processor.rb index 32229c4bad55..f65b18291844 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_sample_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_sample_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSampleProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # 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). attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # The percentage of logs to sample. attr_accessor :percentage @@ -45,9 +45,9 @@ class ObservabilityPipelineSampleProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'percentage' => :'percentage', :'rate' => :'rate', :'type' => :'type' @@ -58,9 +58,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'percentage' => :'Float', :'rate' => :'Integer', :'type' => :'ObservabilityPipelineSampleProcessorType' @@ -85,6 +85,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -93,12 +97,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'percentage') self.percentage = attributes[:'percentage'] end @@ -116,14 +114,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if !@rate.nil? && @rate < 1 return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -144,16 +152,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param rate [Object] Object to be assigned # @!visibility private @@ -200,9 +198,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && percentage == o.percentage && rate == o.rate && type == o.type && @@ -213,7 +211,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, percentage, rate, type, additional_properties].hash + [enabled, id, include, percentage, rate, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_sensitive_data_scanner_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_sensitive_data_scanner_processor.rb index eaaac37f8c0d..fa45003722c7 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_sensitive_data_scanner_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_sensitive_data_scanner_processor.rb @@ -21,15 +21,15 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSensitiveDataScannerProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). attr_reader :id # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the `input` for this component. - attr_reader :inputs - # A list of rules for identifying and acting on sensitive data patterns. attr_reader :rules @@ -42,9 +42,9 @@ class ObservabilityPipelineSensitiveDataScannerProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'rules' => :'rules', :'type' => :'type' } @@ -54,9 +54,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'rules' => :'Array', :'type' => :'ObservabilityPipelineSensitiveDataScannerProcessorType' } @@ -80,6 +80,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -88,12 +92,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'rules') if (value = attributes[:'rules']).is_a?(Array) self.rules = value @@ -109,14 +107,24 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @rules.nil? return false if @type.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -137,16 +145,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param rules [Object] Object to be assigned # @!visibility private @@ -193,9 +191,9 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && id == o.id && include == o.include && - inputs == o.inputs && rules == o.rules && type == o.type && additional_properties == o.additional_properties @@ -205,7 +203,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, include, inputs, rules, type, additional_properties].hash + [enabled, id, include, rules, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_throttle_processor.rb b/lib/datadog_api_client/v2/models/observability_pipeline_throttle_processor.rb index 7e68c940bda8..00e5c6df2afa 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_throttle_processor.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_throttle_processor.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineThrottleProcessor include BaseGenericModel + # Whether this processor is enabled. + attr_reader :enabled + # Optional list of fields used to group events before the threshold has been reached. attr_accessor :group_by @@ -30,9 +33,6 @@ class ObservabilityPipelineThrottleProcessor # A Datadog search query used to determine which logs this processor targets. attr_reader :include - # A list of component IDs whose output is used as the input for this processor. - attr_reader :inputs - # the number of events allowed in a given time window. Events sent after the threshold has been reached, are dropped. attr_reader :threshold @@ -48,10 +48,10 @@ class ObservabilityPipelineThrottleProcessor # @!visibility private def self.attribute_map { + :'enabled' => :'enabled', :'group_by' => :'group_by', :'id' => :'id', :'include' => :'include', - :'inputs' => :'inputs', :'threshold' => :'threshold', :'type' => :'type', :'window' => :'window' @@ -62,10 +62,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'enabled' => :'Boolean', :'group_by' => :'Array', :'id' => :'String', :'include' => :'String', - :'inputs' => :'Array', :'threshold' => :'Integer', :'type' => :'ObservabilityPipelineThrottleProcessorType', :'window' => :'Float' @@ -90,6 +90,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + if attributes.key?(:'group_by') if (value = attributes[:'group_by']).is_a?(Array) self.group_by = value @@ -104,12 +108,6 @@ def initialize(attributes = {}) self.include = attributes[:'include'] end - if attributes.key?(:'inputs') - if (value = attributes[:'inputs']).is_a?(Array) - self.inputs = value - end - end - if attributes.key?(:'threshold') self.threshold = attributes[:'threshold'] end @@ -127,15 +125,25 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @enabled.nil? return false if @id.nil? return false if @include.nil? - return false if @inputs.nil? return false if @threshold.nil? return false if @type.nil? return false if @window.nil? true end + # Custom attribute writer method with validation + # @param enabled [Object] Object to be assigned + # @!visibility private + def enabled=(enabled) + if enabled.nil? + fail ArgumentError, 'invalid value for "enabled", enabled cannot be nil.' + end + @enabled = enabled + end + # Custom attribute writer method with validation # @param id [Object] Object to be assigned # @!visibility private @@ -156,16 +164,6 @@ def include=(include) @include = include end - # Custom attribute writer method with validation - # @param inputs [Object] Object to be assigned - # @!visibility private - def inputs=(inputs) - if inputs.nil? - fail ArgumentError, 'invalid value for "inputs", inputs cannot be nil.' - end - @inputs = inputs - end - # Custom attribute writer method with validation # @param threshold [Object] Object to be assigned # @!visibility private @@ -222,10 +220,10 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + enabled == o.enabled && group_by == o.group_by && id == o.id && include == o.include && - inputs == o.inputs && threshold == o.threshold && type == o.type && window == o.window && @@ -236,7 +234,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [group_by, id, include, inputs, threshold, type, window, additional_properties].hash + [enabled, group_by, id, include, threshold, type, window, additional_properties].hash end end end