diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index cfbcb7286..203e7aa04 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -6570,8 +6570,11 @@ components: x-enum-varnames: - AZURE_SCAN_OPTIONS AzureStorageDestination: - description: The `azure_storage` destination forwards logs to an Azure Blob + description: 'The `azure_storage` destination forwards logs to an Azure Blob Storage container. + + + **Supported pipeline types:** logs' properties: blob_prefix: description: Optional prefix for blobs written to the container. @@ -6602,6 +6605,8 @@ components: - inputs - container_name type: object + x-pipeline-types: + - logs AzureStorageDestinationType: default: azure_storage description: The destination type. The value should always be `azure_storage`. @@ -33395,8 +33400,11 @@ components: - query type: object MicrosoftSentinelDestination: - description: The `microsoft_sentinel` destination forwards logs to Microsoft + description: 'The `microsoft_sentinel` destination forwards logs to Microsoft Sentinel. + + + **Supported pipeline types:** logs' properties: client_id: description: Azure AD client ID used for authentication. @@ -33437,6 +33445,8 @@ components: - dcr_immutable_id - table type: object + x-pipeline-types: + - logs MicrosoftSentinelDestinationType: default: microsoft_sentinel description: The destination type. The value should always be `microsoft_sentinel`. @@ -35141,8 +35151,11 @@ components: - data type: object ObservabilityPipelineAddEnvVarsProcessor: - description: The `add_env_vars` processor adds environment variable values to - log events. + description: 'The `add_env_vars` processor adds environment variable values + to log events. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -35174,6 +35187,8 @@ components: - variables - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineAddEnvVarsProcessorType: default: add_env_vars description: The processor type. The value should always be `add_env_vars`. @@ -35199,7 +35214,10 @@ components: - name type: object ObservabilityPipelineAddFieldsProcessor: - description: The `add_fields` processor adds static key-value fields to logs. + description: 'The `add_fields` processor adds static key-value fields to logs. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -35233,6 +35251,8 @@ components: - fields - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineAddFieldsProcessorType: default: add_fields description: The processor type. The value should always be `add_fields`. @@ -35243,7 +35263,10 @@ components: x-enum-varnames: - ADD_FIELDS ObservabilityPipelineAmazonDataFirehoseSource: - description: The `amazon_data_firehose` source ingests logs from AWS Data Firehose. + description: 'The `amazon_data_firehose` source ingests logs from AWS Data Firehose. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' @@ -35261,6 +35284,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineAmazonDataFirehoseSourceType: default: amazon_data_firehose description: The source type. The value should always be `amazon_data_firehose`. @@ -35271,7 +35296,10 @@ components: x-enum-varnames: - AMAZON_DATA_FIREHOSE ObservabilityPipelineAmazonOpenSearchDestination: - description: The `amazon_opensearch` destination writes logs to Amazon OpenSearch. + description: 'The `amazon_opensearch` destination writes logs to Amazon OpenSearch. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuth' @@ -35299,6 +35327,8 @@ components: - inputs - auth type: object + x-pipeline-types: + - logs ObservabilityPipelineAmazonOpenSearchDestinationAuth: description: 'Authentication settings for the Amazon OpenSearch destination. @@ -35342,8 +35372,11 @@ components: x-enum-varnames: - AMAZON_OPENSEARCH ObservabilityPipelineAmazonS3Destination: - description: The `amazon_s3` destination sends your logs in Datadog-rehydratable + description: 'The `amazon_s3` destination sends your logs in Datadog-rehydratable format to an Amazon S3 bucket for archiving. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' @@ -35384,6 +35417,8 @@ components: - region - storage_class type: object + x-pipeline-types: + - logs ObservabilityPipelineAmazonS3DestinationStorageClass: description: S3 storage class. enum: @@ -35420,7 +35455,10 @@ components: ObservabilityPipelineAmazonS3Source: description: 'The `amazon_s3` source ingests logs from an Amazon S3 bucket. - It supports AWS authentication and TLS encryption.' + It supports AWS authentication and TLS encryption. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' @@ -35443,6 +35481,8 @@ components: - type - region type: object + x-pipeline-types: + - logs ObservabilityPipelineAmazonS3SourceType: default: amazon_s3 description: The source type. Always `amazon_s3`. @@ -35453,8 +35493,11 @@ components: x-enum-varnames: - AMAZON_S3 ObservabilityPipelineAmazonSecurityLakeDestination: - description: The `amazon_security_lake` destination sends your logs to Amazon + description: 'The `amazon_security_lake` destination sends your logs to Amazon Security Lake. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' @@ -35494,6 +35537,8 @@ components: - region - custom_source_name type: object + x-pipeline-types: + - logs ObservabilityPipelineAmazonSecurityLakeDestinationType: default: amazon_security_lake description: The destination type. Always `amazon_security_lake`. @@ -35537,6 +35582,8 @@ components: items: $ref: '#/components/schemas/ObservabilityPipelineConfigDestinationItem' type: array + pipeline_type: + $ref: '#/components/schemas/ObservabilityPipelineConfigPipelineType' processors: description: A list of processor groups that transform or enrich log data. example: @@ -35573,25 +35620,38 @@ components: ObservabilityPipelineConfigDestinationItem: description: A destination for the pipeline. oneOf: - - $ref: '#/components/schemas/ObservabilityPipelineDatadogLogsDestination' + - $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestination' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3Destination' - - $ref: '#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination' - - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecDestination' - - $ref: '#/components/schemas/ObservabilityPipelineSumoLogicDestination' - - $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestination' - - $ref: '#/components/schemas/ObservabilityPipelineRsyslogDestination' - - $ref: '#/components/schemas/ObservabilityPipelineSyslogNgDestination' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination' - $ref: '#/components/schemas/AzureStorageDestination' - - $ref: '#/components/schemas/MicrosoftSentinelDestination' + - $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination' + - $ref: '#/components/schemas/ObservabilityPipelineDatadogLogsDestination' + - $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestination' - $ref: '#/components/schemas/ObservabilityPipelineGoogleChronicleDestination' + - $ref: '#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination' + - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestination' + - $ref: '#/components/schemas/MicrosoftSentinelDestination' - $ref: '#/components/schemas/ObservabilityPipelineNewRelicDestination' - - $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestination' - $ref: '#/components/schemas/ObservabilityPipelineOpenSearchDestination' - - $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination' + - $ref: '#/components/schemas/ObservabilityPipelineRsyslogDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestination' - $ref: '#/components/schemas/ObservabilityPipelineSocketDestination' - - $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination' - - $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination' - - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSumoLogicDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSyslogNgDestination' + - $ref: '#/components/schemas/ObservabilityPipelineDatadogMetricsDestination' + ObservabilityPipelineConfigPipelineType: + default: logs + description: The type of data being ingested. Defaults to `logs` if not specified. + enum: + - logs + - metrics + example: logs + type: string + x-enum-varnames: + - LOGS + - METRICS ObservabilityPipelineConfigProcessorGroup: description: A group of processors. example: @@ -35665,45 +35725,49 @@ components: description: A processor for the pipeline. oneOf: - $ref: '#/components/schemas/ObservabilityPipelineFilterProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineAddFieldsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineCustomProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineParseGrokProcessor' - $ref: '#/components/schemas/ObservabilityPipelineParseJSONProcessor' - $ref: '#/components/schemas/ObservabilityPipelineQuotaProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineAddFieldsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineReduceProcessor' - $ref: '#/components/schemas/ObservabilityPipelineRemoveFieldsProcessor' - $ref: '#/components/schemas/ObservabilityPipelineRenameFieldsProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor' - $ref: '#/components/schemas/ObservabilityPipelineSampleProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineParseGrokProcessor' - $ref: '#/components/schemas/ObservabilityPipelineSensitiveDataScannerProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineReduceProcessor' - $ref: '#/components/schemas/ObservabilityPipelineThrottleProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineCustomProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineMetricTagsProcessor' ObservabilityPipelineConfigSourceItem: description: A data source for the pipeline. oneOf: - - $ref: '#/components/schemas/ObservabilityPipelineKafkaSource' - $ref: '#/components/schemas/ObservabilityPipelineDatadogAgentSource' - - $ref: '#/components/schemas/ObservabilityPipelineSplunkTcpSource' - - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecSource' + - $ref: '#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSource' - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3Source' - - $ref: '#/components/schemas/ObservabilityPipelineFluentdSource' - $ref: '#/components/schemas/ObservabilityPipelineFluentBitSource' - - $ref: '#/components/schemas/ObservabilityPipelineHttpServerSource' - - $ref: '#/components/schemas/ObservabilityPipelineSumoLogicSource' - - $ref: '#/components/schemas/ObservabilityPipelineRsyslogSource' - - $ref: '#/components/schemas/ObservabilityPipelineSyslogNgSource' - - $ref: '#/components/schemas/ObservabilityPipelineAmazonDataFirehoseSource' + - $ref: '#/components/schemas/ObservabilityPipelineFluentdSource' - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubSource' - $ref: '#/components/schemas/ObservabilityPipelineHttpClientSource' + - $ref: '#/components/schemas/ObservabilityPipelineHttpServerSource' + - $ref: '#/components/schemas/ObservabilityPipelineKafkaSource' - $ref: '#/components/schemas/ObservabilityPipelineLogstashSource' + - $ref: '#/components/schemas/ObservabilityPipelineRsyslogSource' - $ref: '#/components/schemas/ObservabilityPipelineSocketSource' + - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecSource' + - $ref: '#/components/schemas/ObservabilityPipelineSplunkTcpSource' + - $ref: '#/components/schemas/ObservabilityPipelineSumoLogicSource' + - $ref: '#/components/schemas/ObservabilityPipelineSyslogNgSource' ObservabilityPipelineCrowdStrikeNextGenSiemDestination: - description: The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike + description: 'The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. + + + **Supported pipeline types:** logs' properties: compression: $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression' @@ -35731,6 +35795,8 @@ components: - inputs - encoding type: object + x-pipeline-types: + - logs ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression: description: Compression configuration for log events. properties: @@ -35774,9 +35840,12 @@ components: x-enum-varnames: - CROWDSTRIKE_NEXT_GEN_SIEM ObservabilityPipelineCustomProcessor: - description: The `custom_processor` processor transforms events using [Vector + description: 'The `custom_processor` processor transforms events using [Vector Remap Language (VRL)](https://vector.dev/docs/reference/vrl/) scripts with advanced filtering capabilities. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -35810,6 +35879,8 @@ components: - remaps - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineCustomProcessorRemap: description: Defines a single VRL remap rule with its own filtering and transformation logic. @@ -35885,7 +35956,11 @@ components: - config type: object ObservabilityPipelineDatadogAgentSource: - description: The `datadog_agent` source collects logs from the Datadog Agent. + description: 'The `datadog_agent` source collects logs/metrics from the Datadog + Agent. + + + **Supported pipeline types:** logs, metrics' properties: id: description: The unique identifier for this component. Used to reference @@ -35901,6 +35976,9 @@ components: - id - type type: object + x-pipeline-types: + - logs + - metrics ObservabilityPipelineDatadogAgentSourceType: default: datadog_agent description: The source type. The value should always be `datadog_agent`. @@ -35911,7 +35989,10 @@ components: x-enum-varnames: - DATADOG_AGENT ObservabilityPipelineDatadogLogsDestination: - description: The `datadog_logs` destination forwards logs to Datadog Log Management. + description: 'The `datadog_logs` destination forwards logs to Datadog Log Management. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. @@ -35932,6 +36013,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineDatadogLogsDestinationType: default: datadog_logs description: The destination type. The value should always be `datadog_logs`. @@ -35941,9 +36024,48 @@ components: type: string x-enum-varnames: - DATADOG_LOGS + ObservabilityPipelineDatadogMetricsDestination: + description: 'The `datadog_metrics` destination forwards metrics to Datadog. + + + **Supported pipeline types:** metrics' + properties: + id: + description: The unique identifier for this component. + example: datadog-metrics-destination + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this component. + example: + - metric-tags-processor + items: + type: string + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineDatadogMetricsDestinationType' + required: + - id + - type + - inputs + type: object + x-pipeline-types: + - metrics + ObservabilityPipelineDatadogMetricsDestinationType: + default: datadog_metrics + description: The destination type. The value should always be `datadog_metrics`. + enum: + - datadog_metrics + example: datadog_metrics + type: string + x-enum-varnames: + - DATADOG_METRICS ObservabilityPipelineDatadogTagsProcessor: - description: The `datadog_tags` processor includes or excludes specific Datadog + description: 'The `datadog_tags` processor includes or excludes specific Datadog tags in your logs. + + + **Supported pipeline types:** logs' properties: action: $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessorAction' @@ -35986,6 +36108,8 @@ components: - keys - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineDatadogTagsProcessorAction: description: The action to take on tags with matching keys. enum: @@ -36028,7 +36152,10 @@ components: - DECODE_JSON - DECODE_SYSLOG ObservabilityPipelineDedupeProcessor: - description: The `dedupe` processor removes duplicate fields in log events. + description: 'The `dedupe` processor removes duplicate fields in log events. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -36065,6 +36192,8 @@ components: - mode - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineDedupeProcessorMode: description: The deduplication mode to apply to the fields. enum: @@ -36085,8 +36214,11 @@ components: x-enum-varnames: - DEDUPE ObservabilityPipelineElasticsearchDestination: - description: The `elasticsearch` destination writes logs to an Elasticsearch + description: 'The `elasticsearch` destination writes logs to an Elasticsearch cluster. + + + **Supported pipeline types:** logs' properties: api_version: $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion' @@ -36113,6 +36245,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineElasticsearchDestinationApiVersion: description: The Elasticsearch API version to use. Set to `auto` to auto-detect. enum: @@ -36266,8 +36400,11 @@ components: - path type: object ObservabilityPipelineEnrichmentTableProcessor: - description: The `enrichment_table` processor enriches logs using a static CSV - file or GeoIP database. + description: 'The `enrichment_table` processor enriches logs using a static + CSV file or GeoIP database. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -36301,6 +36438,8 @@ components: - target - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineEnrichmentTableProcessorType: default: enrichment_table description: The processor type. The value should always be `enrichment_table`. @@ -36326,9 +36465,12 @@ components: - value type: object ObservabilityPipelineFilterProcessor: - description: The `filter` processor allows conditional processing of logs based - on a Datadog search query. Logs that match the `include` query are passed - through; others are discarded. + description: 'The `filter` processor allows conditional processing of logs/metrics + based on a Datadog search query. Logs/metrics that match the `include` query + are passed through; others are discarded. + + + **Supported pipeline types:** logs, metrics' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -36343,9 +36485,9 @@ components: example: filter-processor type: string include: - description: 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. + description: A Datadog search query used to determine which logs/metrics + should pass through the filter. Logs/metrics that match this query continue + to downstream components; others are dropped. example: service:my-service type: string type: @@ -36356,6 +36498,9 @@ components: - include - enabled type: object + x-pipeline-types: + - logs + - metrics ObservabilityPipelineFilterProcessorType: default: filter description: The processor type. The value should always be `filter`. @@ -36366,7 +36511,10 @@ components: x-enum-varnames: - FILTER ObservabilityPipelineFluentBitSource: - description: The `fluent_bit` source ingests logs from Fluent Bit. + description: 'The `fluent_bit` source ingests logs from Fluent Bit. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -36382,6 +36530,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineFluentBitSourceType: default: fluent_bit description: The source type. The value should always be `fluent_bit`. @@ -36392,7 +36542,10 @@ components: x-enum-varnames: - FLUENT_BIT ObservabilityPipelineFluentdSource: - description: The `fluentd` source ingests logs from a Fluentd-compatible service. + description: 'The `fluentd` source ingests logs from a Fluentd-compatible service. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -36408,6 +36561,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineFluentdSourceType: default: fluentd description: The source type. The value should always be `fluentd. @@ -36432,7 +36587,10 @@ components: from logs and sends them to Datadog. Metrics can be counters, gauges, or distributions and optionally grouped by - log fields.' + log fields. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -36462,6 +36620,8 @@ components: - type - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineGenerateMetricsProcessorType: default: generate_datadog_metrics description: The processor type. Always `generate_datadog_metrics`. @@ -36556,7 +36716,10 @@ components: - GAUGE - DISTRIBUTION ObservabilityPipelineGoogleChronicleDestination: - description: The `google_chronicle` destination sends logs to Google Chronicle. + description: 'The `google_chronicle` destination sends logs to Google Chronicle. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineGcpAuth' @@ -36590,6 +36753,8 @@ components: - inputs - customer_id type: object + x-pipeline-types: + - logs ObservabilityPipelineGoogleChronicleDestinationEncoding: description: The encoding format for the logs sent to Chronicle. enum: @@ -36613,7 +36778,10 @@ components: description: 'The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. - It requires a bucket name, GCP authentication, and metadata fields.' + It requires a bucket name, GCP authentication, and metadata fields. + + + **Supported pipeline types:** logs' properties: acl: $ref: '#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestinationAcl' @@ -36655,6 +36823,8 @@ components: - bucket - storage_class type: object + x-pipeline-types: + - logs ObservabilityPipelineGoogleCloudStorageDestinationAcl: description: Access control list setting for objects written to the bucket. enum: @@ -36697,8 +36867,11 @@ components: x-enum-varnames: - GOOGLE_CLOUD_STORAGE ObservabilityPipelineGooglePubSubDestination: - description: The `google_pubsub` destination publishes logs to a Google Cloud + description: 'The `google_pubsub` destination publishes logs to a Google Cloud Pub/Sub topic. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineGcpAuth' @@ -36736,6 +36909,8 @@ components: - project - topic type: object + x-pipeline-types: + - logs ObservabilityPipelineGooglePubSubDestinationEncoding: description: Encoding format for log events. enum: @@ -36756,8 +36931,11 @@ components: x-enum-varnames: - GOOGLE_PUBSUB ObservabilityPipelineGooglePubSubSource: - description: The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub + description: 'The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription. + + + **Supported pipeline types:** logs' properties: auth: $ref: '#/components/schemas/ObservabilityPipelineGcpAuth' @@ -36788,6 +36966,8 @@ components: - project - subscription type: object + x-pipeline-types: + - logs ObservabilityPipelineGooglePubSubSourceType: default: google_pubsub description: The source type. The value should always be `google_pubsub`. @@ -36797,9 +36977,92 @@ components: type: string x-enum-varnames: - GOOGLE_PUBSUB + ObservabilityPipelineHttpClientDestination: + description: 'The `http_client` destination sends data to an HTTP endpoint. + + + **Supported pipeline types:** logs, metrics' + properties: + auth_strategy: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationAuthStrategy' + compression: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationCompression' + encoding: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationEncoding' + id: + description: The unique identifier for this component. + example: http-client-destination + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this component. + example: + - filter-processor + items: + type: string + type: array + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationType' + required: + - id + - type + - inputs + - encoding + type: object + x-pipeline-types: + - logs + - metrics + ObservabilityPipelineHttpClientDestinationAuthStrategy: + description: HTTP authentication strategy. + enum: + - basic + - bearer + example: basic + type: string + x-enum-varnames: + - BASIC + - BEARER + ObservabilityPipelineHttpClientDestinationCompression: + description: Compression configuration for HTTP requests. + properties: + algorithm: + $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationCompressionAlgorithm' + required: + - algorithm + type: object + ObservabilityPipelineHttpClientDestinationCompressionAlgorithm: + description: Compression algorithm. + enum: + - gzip + example: gzip + type: string + x-enum-varnames: + - GZIP + ObservabilityPipelineHttpClientDestinationEncoding: + description: Encoding format for log events. + enum: + - json + example: json + type: string + x-enum-varnames: + - JSON + ObservabilityPipelineHttpClientDestinationType: + default: http_client + description: The destination type. The value should always be `http_client`. + enum: + - http_client + example: http_client + type: string + x-enum-varnames: + - HTTP_CLIENT ObservabilityPipelineHttpClientSource: - description: The `http_client` source scrapes logs from HTTP endpoints at regular + description: 'The `http_client` source scrapes logs from HTTP endpoints at regular intervals. + + + **Supported pipeline types:** logs' properties: auth_strategy: $ref: '#/components/schemas/ObservabilityPipelineHttpClientSourceAuthStrategy' @@ -36830,6 +37093,8 @@ components: - type - decoding type: object + x-pipeline-types: + - logs ObservabilityPipelineHttpClientSourceAuthStrategy: description: Optional authentication strategy for HTTP requests. enum: @@ -36850,8 +37115,11 @@ components: x-enum-varnames: - HTTP_CLIENT ObservabilityPipelineHttpServerSource: - description: The `http_server` source collects logs over HTTP POST from external + description: 'The `http_server` source collects logs over HTTP POST from external services. + + + **Supported pipeline types:** logs' properties: auth_strategy: $ref: '#/components/schemas/ObservabilityPipelineHttpServerSourceAuthStrategy' @@ -36871,6 +37139,8 @@ components: - auth_strategy - decoding type: object + x-pipeline-types: + - logs ObservabilityPipelineHttpServerSourceAuthStrategy: description: HTTP authentication method. enum: @@ -36891,7 +37161,10 @@ components: x-enum-varnames: - HTTP_SERVER ObservabilityPipelineKafkaSource: - description: The `kafka` source ingests data from Apache Kafka topics. + description: 'The `kafka` source ingests data from Apache Kafka topics. + + + **Supported pipeline types:** logs' properties: group_id: description: Consumer group ID used by the Kafka client. @@ -36930,6 +37203,8 @@ components: - group_id - topics type: object + x-pipeline-types: + - logs ObservabilityPipelineKafkaSourceLibrdkafkaOption: description: Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security @@ -36964,7 +37239,10 @@ components: x-enum-varnames: - KAFKA ObservabilityPipelineLogstashSource: - description: The `logstash` source ingests logs from a Logstash forwarder. + description: 'The `logstash` source ingests logs from a Logstash forwarder. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -36980,6 +37258,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineLogstashSourceType: default: logstash description: The source type. The value should always be `logstash`. @@ -37004,13 +37284,104 @@ components: - name - value type: object + ObservabilityPipelineMetricTagsProcessor: + description: 'The `metric_tags` processor filters metrics based on their tags + using Datadog tag key patterns. + + + **Supported pipeline types:** metrics' + 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` + to downstream components). + example: metric-tags-processor + type: string + include: + description: A Datadog search query used to determine which metrics this + processor targets. + example: '*' + type: string + rules: + description: A list of rules for filtering metric tags. + items: + $ref: '#/components/schemas/ObservabilityPipelineMetricTagsProcessorRule' + maxItems: 100 + minItems: 1 + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineMetricTagsProcessorType' + required: + - id + - type + - include + - rules + - enabled + type: object + x-pipeline-types: + - metrics + ObservabilityPipelineMetricTagsProcessorRule: + description: Defines a rule for filtering metric tags based on key patterns. + properties: + action: + $ref: '#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleAction' + keys: + description: A list of tag keys to include or exclude. + example: + - env + - service + - version + items: + type: string + type: array + mode: + $ref: '#/components/schemas/ObservabilityPipelineMetricTagsProcessorRuleMode' + required: + - mode + - action + - keys + type: object + ObservabilityPipelineMetricTagsProcessorRuleAction: + description: The action to take on tags with matching keys. + enum: + - include + - exclude + example: include + type: string + x-enum-varnames: + - INCLUDE + - EXCLUDE + ObservabilityPipelineMetricTagsProcessorRuleMode: + description: The processing mode for tag filtering. + enum: + - filter + example: filter + type: string + x-enum-varnames: + - FILTER + ObservabilityPipelineMetricTagsProcessorType: + default: metric_tags + description: The processor type. The value should always be `metric_tags`. + enum: + - metric_tags + example: metric_tags + type: string + x-enum-varnames: + - METRIC_TAGS ObservabilityPipelineMetricValue: description: Specifies how the value of the generated metric is computed. oneOf: - $ref: '#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByOne' - $ref: '#/components/schemas/ObservabilityPipelineGeneratedMetricIncrementByField' ObservabilityPipelineNewRelicDestination: - description: The `new_relic` destination sends logs to the New Relic platform. + description: 'The `new_relic` destination sends logs to the New Relic platform. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. @@ -37034,6 +37405,8 @@ components: - inputs - region type: object + x-pipeline-types: + - logs ObservabilityPipelineNewRelicDestinationRegion: description: The New Relic region. enum: @@ -37054,8 +37427,11 @@ components: x-enum-varnames: - NEW_RELIC ObservabilityPipelineOcsfMapperProcessor: - description: The `ocsf_mapper` processor transforms logs into the OCSF schema + description: 'The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37087,6 +37463,8 @@ components: - mappings - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineOcsfMapperProcessorMapping: description: Defines how specific events are transformed to OCSF using a mapping configuration. @@ -37146,7 +37524,10 @@ components: - OKTA_SYSTEM_LOG_AUTHENTICATION - PALO_ALTO_NETWORKS_FIREWALL_TRAFFIC ObservabilityPipelineOpenSearchDestination: - description: The `opensearch` destination writes logs to an OpenSearch cluster. + description: 'The `opensearch` destination writes logs to an OpenSearch cluster. + + + **Supported pipeline types:** logs' properties: bulk_index: description: The index to write logs to. @@ -37171,6 +37552,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineOpenSearchDestinationType: default: opensearch description: The destination type. The value should always be `opensearch`. @@ -37181,8 +37564,11 @@ components: x-enum-varnames: - OPENSEARCH ObservabilityPipelineParseGrokProcessor: - description: The `parse_grok` processor extracts structured fields from unstructured + description: 'The `parse_grok` processor extracts structured fields from unstructured log messages using Grok patterns. + + + **Supported pipeline types:** logs' properties: disable_library_rules: default: false @@ -37221,6 +37607,8 @@ components: - rules - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineParseGrokProcessorRule: description: 'A Grok parsing rule used in the `parse_grok` processor. Each rule defines how to extract structured fields @@ -37300,9 +37688,12 @@ components: x-enum-varnames: - PARSE_GROK ObservabilityPipelineParseJSONProcessor: - description: The `parse_json` processor extracts JSON from a specified field + description: 'The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37334,6 +37725,8 @@ components: - field - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineParseJSONProcessorType: default: parse_json description: The processor type. The value should always be `parse_json`. @@ -37355,9 +37748,12 @@ components: - SCRAMNOT_SHANOT_256 - SCRAMNOT_SHANOT_512 ObservabilityPipelineQuotaProcessor: - description: The Quota Processor measures logging traffic for logs that match + description: 'The `quota` processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37418,6 +37814,8 @@ components: - limit - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineQuotaProcessorLimit: description: The maximum amount of data or number of events allowed before the quota is enforced. Can be specified in bytes or events. @@ -37489,8 +37887,11 @@ components: x-enum-varnames: - QUOTA ObservabilityPipelineReduceProcessor: - description: The `reduce` processor aggregates and merges logs based on matching + description: 'The `reduce` processor aggregates and merges logs based on matching keys and merge strategies. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37531,6 +37932,8 @@ components: - merge_strategies - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineReduceProcessorMergeStrategy: description: Defines how a specific field should be merged across grouped events. properties: @@ -37584,7 +37987,10 @@ components: x-enum-varnames: - REDUCE ObservabilityPipelineRemoveFieldsProcessor: - description: The `remove_fields` processor deletes specified fields from logs. + description: 'The `remove_fields` processor deletes specified fields from logs. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37620,6 +38026,8 @@ components: - fields - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineRemoveFieldsProcessorType: default: remove_fields description: The processor type. The value should always be `remove_fields`. @@ -37630,7 +38038,10 @@ components: x-enum-varnames: - REMOVE_FIELDS ObservabilityPipelineRenameFieldsProcessor: - description: The `rename_fields` processor changes field names. + description: 'The `rename_fields` processor changes field names. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37665,6 +38076,8 @@ components: - fields - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineRenameFieldsProcessorField: description: Defines how to rename a field in log events. properties: @@ -37696,8 +38109,11 @@ components: x-enum-varnames: - RENAME_FIELDS ObservabilityPipelineRsyslogDestination: - description: The `rsyslog` destination forwards logs to an external `rsyslog` + description: 'The `rsyslog` destination forwards logs to an external `rsyslog` server over TCP or UDP using the syslog protocol. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. @@ -37726,6 +38142,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineRsyslogDestinationType: default: rsyslog description: The destination type. The value should always be `rsyslog`. @@ -37736,8 +38154,11 @@ components: x-enum-varnames: - RSYSLOG ObservabilityPipelineRsyslogSource: - description: The `rsyslog` source listens for logs over TCP or UDP from an `rsyslog` - server using the syslog protocol. + description: 'The `rsyslog` source listens for logs over TCP or UDP from an + `rsyslog` server using the syslog protocol. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -37756,6 +38177,8 @@ components: - type - mode type: object + x-pipeline-types: + - logs ObservabilityPipelineRsyslogSourceType: default: rsyslog description: The source type. The value should always be `rsyslog`. @@ -37766,8 +38189,11 @@ components: x-enum-varnames: - RSYSLOG ObservabilityPipelineSampleProcessor: - description: The `sample` processor allows probabilistic sampling of logs at + description: 'The `sample` processor allows probabilistic sampling of logs at a fixed rate. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37805,6 +38231,8 @@ components: - include - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineSampleProcessorType: default: sample description: The processor type. The value should always be `sample`. @@ -37815,8 +38243,11 @@ components: x-enum-varnames: - SAMPLE ObservabilityPipelineSensitiveDataScannerProcessor: - description: The `sensitive_data_scanner` processor detects and optionally redacts - sensitive data in log events. + description: 'The `sensitive_data_scanner` processor detects and optionally + redacts sensitive data in log events. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -37850,6 +38281,8 @@ components: - rules - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineSensitiveDataScannerProcessorAction: description: Defines what action to take when sensitive data is matched. oneOf: @@ -38167,7 +38600,10 @@ components: x-enum-varnames: - SENSITIVE_DATA_SCANNER ObservabilityPipelineSentinelOneDestination: - description: The `sentinel_one` destination sends logs to SentinelOne. + description: 'The `sentinel_one` destination sends logs to SentinelOne. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. @@ -38191,6 +38627,8 @@ components: - inputs - region type: object + x-pipeline-types: + - logs ObservabilityPipelineSentinelOneDestinationRegion: description: The SentinelOne region to send logs to. enum: @@ -38215,8 +38653,11 @@ components: x-enum-varnames: - SENTINEL_ONE ObservabilityPipelineSocketDestination: - description: The `socket` destination sends logs over TCP or UDP to a remote + description: 'The `socket` destination sends logs over TCP or UDP to a remote server. + + + **Supported pipeline types:** logs' properties: encoding: $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationEncoding' @@ -38249,6 +38690,8 @@ components: - framing - mode type: object + x-pipeline-types: + - logs ObservabilityPipelineSocketDestinationEncoding: description: Encoding format for log events. enum: @@ -38343,7 +38786,10 @@ components: x-enum-varnames: - SOCKET ObservabilityPipelineSocketSource: - description: The `socket` source ingests logs over TCP or UDP. + description: 'The `socket` source ingests logs over TCP or UDP. + + + **Supported pipeline types:** logs' properties: framing: $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFraming' @@ -38366,6 +38812,8 @@ components: - mode - framing type: object + x-pipeline-types: + - logs ObservabilityPipelineSocketSourceFraming: description: Framing method configuration for the socket source. oneOf: @@ -38507,8 +38955,11 @@ components: - attributes type: object ObservabilityPipelineSplunkHecDestination: - description: The `splunk_hec` destination forwards logs to Splunk using the + description: 'The `splunk_hec` destination forwards logs to Splunk using the HTTP Event Collector (HEC). + + + **Supported pipeline types:** logs' properties: auto_extract_timestamp: description: 'If `true`, Splunk tries to extract timestamps from incoming @@ -38548,6 +38999,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineSplunkHecDestinationEncoding: description: Encoding format for log events. enum: @@ -38568,8 +39021,11 @@ components: x-enum-varnames: - SPLUNK_HEC ObservabilityPipelineSplunkHecSource: - description: The `splunk_hec` source implements the Splunk HTTP Event Collector + description: 'The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -38585,6 +39041,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineSplunkHecSourceType: default: splunk_hec description: The source type. Always `splunk_hec`. @@ -38598,7 +39056,10 @@ components: description: 'The `splunk_tcp` source receives logs from a Splunk Universal Forwarder over TCP. - TLS is supported for secure transmission.' + TLS is supported for secure transmission. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -38614,6 +39075,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineSplunkTcpSourceType: default: splunk_tcp description: The source type. Always `splunk_tcp`. @@ -38624,7 +39087,10 @@ components: x-enum-varnames: - SPLUNK_TCP ObservabilityPipelineSumoLogicDestination: - description: The `sumo_logic` destination forwards logs to Sumo Logic. + description: 'The `sumo_logic` destination forwards logs to Sumo Logic. + + + **Supported pipeline types:** logs' properties: encoding: $ref: '#/components/schemas/ObservabilityPipelineSumoLogicDestinationEncoding' @@ -38665,6 +39131,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineSumoLogicDestinationEncoding: description: The output encoding format. enum: @@ -38702,7 +39170,10 @@ components: x-enum-varnames: - SUMO_LOGIC ObservabilityPipelineSumoLogicSource: - description: The `sumo_logic` source receives logs from Sumo Logic collectors. + description: 'The `sumo_logic` source receives logs from Sumo Logic collectors. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -38716,6 +39187,8 @@ components: - id - type type: object + x-pipeline-types: + - logs ObservabilityPipelineSumoLogicSourceType: default: sumo_logic description: The source type. The value should always be `sumo_logic`. @@ -38726,8 +39199,11 @@ components: x-enum-varnames: - SUMO_LOGIC ObservabilityPipelineSyslogNgDestination: - description: The `syslog_ng` destination forwards logs to an external `syslog-ng` + description: 'The `syslog_ng` destination forwards logs to an external `syslog-ng` server over TCP or UDP using the syslog protocol. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. @@ -38756,6 +39232,8 @@ components: - type - inputs type: object + x-pipeline-types: + - logs ObservabilityPipelineSyslogNgDestinationType: default: syslog_ng description: The destination type. The value should always be `syslog_ng`. @@ -38766,8 +39244,11 @@ components: x-enum-varnames: - SYSLOG_NG ObservabilityPipelineSyslogNgSource: - description: The `syslog_ng` source listens for logs over TCP or UDP from a + description: 'The `syslog_ng` source listens for logs over TCP or UDP from a `syslog-ng` server using the syslog protocol. + + + **Supported pipeline types:** logs' properties: id: description: The unique identifier for this component. Used to reference @@ -38786,6 +39267,8 @@ components: - type - mode type: object + x-pipeline-types: + - logs ObservabilityPipelineSyslogNgSourceType: default: syslog_ng description: The source type. The value should always be `syslog_ng`. @@ -38806,8 +39289,11 @@ components: - TCP - UDP ObservabilityPipelineThrottleProcessor: - description: The `throttle` processor limits the number of events that pass + description: 'The `throttle` processor limits the number of events that pass through over a given time window. + + + **Supported pipeline types:** logs' properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -38853,6 +39339,8 @@ components: - window - enabled type: object + x-pipeline-types: + - logs ObservabilityPipelineThrottleProcessorType: default: throttle description: The processor type. The value should always be `throttle`. diff --git a/src/datadogV2/model/mod.rs b/src/datadogV2/model/mod.rs index e63dfc686..34f11f0bf 100644 --- a/src/datadogV2/model/mod.rs +++ b/src/datadogV2/model/mod.rs @@ -4968,98 +4968,112 @@ pub mod model_observability_pipeline_data_attributes; pub use self::model_observability_pipeline_data_attributes::ObservabilityPipelineDataAttributes; pub mod model_observability_pipeline_config; pub use self::model_observability_pipeline_config::ObservabilityPipelineConfig; -pub mod model_observability_pipeline_datadog_logs_destination; -pub use self::model_observability_pipeline_datadog_logs_destination::ObservabilityPipelineDatadogLogsDestination; -pub mod model_observability_pipeline_datadog_logs_destination_type; -pub use self::model_observability_pipeline_datadog_logs_destination_type::ObservabilityPipelineDatadogLogsDestinationType; +pub mod model_observability_pipeline_http_client_destination; +pub use self::model_observability_pipeline_http_client_destination::ObservabilityPipelineHttpClientDestination; +pub mod model_observability_pipeline_http_client_destination_auth_strategy; +pub use self::model_observability_pipeline_http_client_destination_auth_strategy::ObservabilityPipelineHttpClientDestinationAuthStrategy; +pub mod model_observability_pipeline_http_client_destination_compression; +pub use self::model_observability_pipeline_http_client_destination_compression::ObservabilityPipelineHttpClientDestinationCompression; +pub mod model_observability_pipeline_http_client_destination_compression_algorithm; +pub use self::model_observability_pipeline_http_client_destination_compression_algorithm::ObservabilityPipelineHttpClientDestinationCompressionAlgorithm; +pub mod model_observability_pipeline_http_client_destination_encoding; +pub use self::model_observability_pipeline_http_client_destination_encoding::ObservabilityPipelineHttpClientDestinationEncoding; +pub mod model_observability_pipeline_tls; +pub use self::model_observability_pipeline_tls::ObservabilityPipelineTls; +pub mod model_observability_pipeline_http_client_destination_type; +pub use self::model_observability_pipeline_http_client_destination_type::ObservabilityPipelineHttpClientDestinationType; +pub mod model_observability_pipeline_amazon_open_search_destination; +pub use self::model_observability_pipeline_amazon_open_search_destination::ObservabilityPipelineAmazonOpenSearchDestination; +pub mod model_observability_pipeline_amazon_open_search_destination_auth; +pub use self::model_observability_pipeline_amazon_open_search_destination_auth::ObservabilityPipelineAmazonOpenSearchDestinationAuth; +pub mod model_observability_pipeline_amazon_open_search_destination_auth_strategy; +pub use self::model_observability_pipeline_amazon_open_search_destination_auth_strategy::ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy; +pub mod model_observability_pipeline_amazon_open_search_destination_type; +pub use self::model_observability_pipeline_amazon_open_search_destination_type::ObservabilityPipelineAmazonOpenSearchDestinationType; pub mod model_observability_pipeline_amazon_s3_destination; pub use self::model_observability_pipeline_amazon_s3_destination::ObservabilityPipelineAmazonS3Destination; pub mod model_observability_pipeline_aws_auth; pub use self::model_observability_pipeline_aws_auth::ObservabilityPipelineAwsAuth; pub mod model_observability_pipeline_amazon_s3_destination_storage_class; pub use self::model_observability_pipeline_amazon_s3_destination_storage_class::ObservabilityPipelineAmazonS3DestinationStorageClass; -pub mod model_observability_pipeline_tls; -pub use self::model_observability_pipeline_tls::ObservabilityPipelineTls; pub mod model_observability_pipeline_amazon_s3_destination_type; pub use self::model_observability_pipeline_amazon_s3_destination_type::ObservabilityPipelineAmazonS3DestinationType; +pub mod model_observability_pipeline_amazon_security_lake_destination; +pub use self::model_observability_pipeline_amazon_security_lake_destination::ObservabilityPipelineAmazonSecurityLakeDestination; +pub mod model_observability_pipeline_amazon_security_lake_destination_type; +pub use self::model_observability_pipeline_amazon_security_lake_destination_type::ObservabilityPipelineAmazonSecurityLakeDestinationType; +pub mod model_azure_storage_destination; +pub use self::model_azure_storage_destination::AzureStorageDestination; +pub mod model_azure_storage_destination_type; +pub use self::model_azure_storage_destination_type::AzureStorageDestinationType; +pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination; +pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination::ObservabilityPipelineCrowdStrikeNextGenSiemDestination; +pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression; +pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression; +pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression_algorithm; +pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression_algorithm::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm; +pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_encoding; +pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_encoding::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding; +pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_type; +pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_type::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType; +pub mod model_observability_pipeline_datadog_logs_destination; +pub use self::model_observability_pipeline_datadog_logs_destination::ObservabilityPipelineDatadogLogsDestination; +pub mod model_observability_pipeline_datadog_logs_destination_type; +pub use self::model_observability_pipeline_datadog_logs_destination_type::ObservabilityPipelineDatadogLogsDestinationType; +pub mod model_observability_pipeline_elasticsearch_destination; +pub use self::model_observability_pipeline_elasticsearch_destination::ObservabilityPipelineElasticsearchDestination; +pub mod model_observability_pipeline_elasticsearch_destination_api_version; +pub use self::model_observability_pipeline_elasticsearch_destination_api_version::ObservabilityPipelineElasticsearchDestinationApiVersion; +pub mod model_observability_pipeline_elasticsearch_destination_type; +pub use self::model_observability_pipeline_elasticsearch_destination_type::ObservabilityPipelineElasticsearchDestinationType; +pub mod model_observability_pipeline_google_chronicle_destination; +pub use self::model_observability_pipeline_google_chronicle_destination::ObservabilityPipelineGoogleChronicleDestination; +pub mod model_observability_pipeline_gcp_auth; +pub use self::model_observability_pipeline_gcp_auth::ObservabilityPipelineGcpAuth; +pub mod model_observability_pipeline_google_chronicle_destination_encoding; +pub use self::model_observability_pipeline_google_chronicle_destination_encoding::ObservabilityPipelineGoogleChronicleDestinationEncoding; +pub mod model_observability_pipeline_google_chronicle_destination_type; +pub use self::model_observability_pipeline_google_chronicle_destination_type::ObservabilityPipelineGoogleChronicleDestinationType; pub mod model_observability_pipeline_google_cloud_storage_destination; pub use self::model_observability_pipeline_google_cloud_storage_destination::ObservabilityPipelineGoogleCloudStorageDestination; pub mod model_observability_pipeline_google_cloud_storage_destination_acl; pub use self::model_observability_pipeline_google_cloud_storage_destination_acl::ObservabilityPipelineGoogleCloudStorageDestinationAcl; -pub mod model_observability_pipeline_gcp_auth; -pub use self::model_observability_pipeline_gcp_auth::ObservabilityPipelineGcpAuth; pub mod model_observability_pipeline_metadata_entry; pub use self::model_observability_pipeline_metadata_entry::ObservabilityPipelineMetadataEntry; pub mod model_observability_pipeline_google_cloud_storage_destination_storage_class; pub use self::model_observability_pipeline_google_cloud_storage_destination_storage_class::ObservabilityPipelineGoogleCloudStorageDestinationStorageClass; pub mod model_observability_pipeline_google_cloud_storage_destination_type; pub use self::model_observability_pipeline_google_cloud_storage_destination_type::ObservabilityPipelineGoogleCloudStorageDestinationType; -pub mod model_observability_pipeline_splunk_hec_destination; -pub use self::model_observability_pipeline_splunk_hec_destination::ObservabilityPipelineSplunkHecDestination; -pub mod model_observability_pipeline_splunk_hec_destination_encoding; -pub use self::model_observability_pipeline_splunk_hec_destination_encoding::ObservabilityPipelineSplunkHecDestinationEncoding; -pub mod model_observability_pipeline_splunk_hec_destination_type; -pub use self::model_observability_pipeline_splunk_hec_destination_type::ObservabilityPipelineSplunkHecDestinationType; -pub mod model_observability_pipeline_sumo_logic_destination; -pub use self::model_observability_pipeline_sumo_logic_destination::ObservabilityPipelineSumoLogicDestination; -pub mod model_observability_pipeline_sumo_logic_destination_encoding; -pub use self::model_observability_pipeline_sumo_logic_destination_encoding::ObservabilityPipelineSumoLogicDestinationEncoding; -pub mod model_observability_pipeline_sumo_logic_destination_header_custom_fields_item; -pub use self::model_observability_pipeline_sumo_logic_destination_header_custom_fields_item::ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem; -pub mod model_observability_pipeline_sumo_logic_destination_type; -pub use self::model_observability_pipeline_sumo_logic_destination_type::ObservabilityPipelineSumoLogicDestinationType; -pub mod model_observability_pipeline_elasticsearch_destination; -pub use self::model_observability_pipeline_elasticsearch_destination::ObservabilityPipelineElasticsearchDestination; -pub mod model_observability_pipeline_elasticsearch_destination_api_version; -pub use self::model_observability_pipeline_elasticsearch_destination_api_version::ObservabilityPipelineElasticsearchDestinationApiVersion; -pub mod model_observability_pipeline_elasticsearch_destination_type; -pub use self::model_observability_pipeline_elasticsearch_destination_type::ObservabilityPipelineElasticsearchDestinationType; -pub mod model_observability_pipeline_rsyslog_destination; -pub use self::model_observability_pipeline_rsyslog_destination::ObservabilityPipelineRsyslogDestination; -pub mod model_observability_pipeline_rsyslog_destination_type; -pub use self::model_observability_pipeline_rsyslog_destination_type::ObservabilityPipelineRsyslogDestinationType; -pub mod model_observability_pipeline_syslog_ng_destination; -pub use self::model_observability_pipeline_syslog_ng_destination::ObservabilityPipelineSyslogNgDestination; -pub mod model_observability_pipeline_syslog_ng_destination_type; -pub use self::model_observability_pipeline_syslog_ng_destination_type::ObservabilityPipelineSyslogNgDestinationType; -pub mod model_azure_storage_destination; -pub use self::model_azure_storage_destination::AzureStorageDestination; -pub mod model_azure_storage_destination_type; -pub use self::model_azure_storage_destination_type::AzureStorageDestinationType; +pub mod model_observability_pipeline_google_pub_sub_destination; +pub use self::model_observability_pipeline_google_pub_sub_destination::ObservabilityPipelineGooglePubSubDestination; +pub mod model_observability_pipeline_google_pub_sub_destination_encoding; +pub use self::model_observability_pipeline_google_pub_sub_destination_encoding::ObservabilityPipelineGooglePubSubDestinationEncoding; +pub mod model_observability_pipeline_google_pub_sub_destination_type; +pub use self::model_observability_pipeline_google_pub_sub_destination_type::ObservabilityPipelineGooglePubSubDestinationType; pub mod model_microsoft_sentinel_destination; pub use self::model_microsoft_sentinel_destination::MicrosoftSentinelDestination; pub mod model_microsoft_sentinel_destination_type; pub use self::model_microsoft_sentinel_destination_type::MicrosoftSentinelDestinationType; -pub mod model_observability_pipeline_google_chronicle_destination; -pub use self::model_observability_pipeline_google_chronicle_destination::ObservabilityPipelineGoogleChronicleDestination; -pub mod model_observability_pipeline_google_chronicle_destination_encoding; -pub use self::model_observability_pipeline_google_chronicle_destination_encoding::ObservabilityPipelineGoogleChronicleDestinationEncoding; -pub mod model_observability_pipeline_google_chronicle_destination_type; -pub use self::model_observability_pipeline_google_chronicle_destination_type::ObservabilityPipelineGoogleChronicleDestinationType; pub mod model_observability_pipeline_new_relic_destination; pub use self::model_observability_pipeline_new_relic_destination::ObservabilityPipelineNewRelicDestination; pub mod model_observability_pipeline_new_relic_destination_region; pub use self::model_observability_pipeline_new_relic_destination_region::ObservabilityPipelineNewRelicDestinationRegion; pub mod model_observability_pipeline_new_relic_destination_type; pub use self::model_observability_pipeline_new_relic_destination_type::ObservabilityPipelineNewRelicDestinationType; +pub mod model_observability_pipeline_open_search_destination; +pub use self::model_observability_pipeline_open_search_destination::ObservabilityPipelineOpenSearchDestination; +pub mod model_observability_pipeline_open_search_destination_type; +pub use self::model_observability_pipeline_open_search_destination_type::ObservabilityPipelineOpenSearchDestinationType; +pub mod model_observability_pipeline_rsyslog_destination; +pub use self::model_observability_pipeline_rsyslog_destination::ObservabilityPipelineRsyslogDestination; +pub mod model_observability_pipeline_rsyslog_destination_type; +pub use self::model_observability_pipeline_rsyslog_destination_type::ObservabilityPipelineRsyslogDestinationType; pub mod model_observability_pipeline_sentinel_one_destination; pub use self::model_observability_pipeline_sentinel_one_destination::ObservabilityPipelineSentinelOneDestination; pub mod model_observability_pipeline_sentinel_one_destination_region; pub use self::model_observability_pipeline_sentinel_one_destination_region::ObservabilityPipelineSentinelOneDestinationRegion; pub mod model_observability_pipeline_sentinel_one_destination_type; pub use self::model_observability_pipeline_sentinel_one_destination_type::ObservabilityPipelineSentinelOneDestinationType; -pub mod model_observability_pipeline_open_search_destination; -pub use self::model_observability_pipeline_open_search_destination::ObservabilityPipelineOpenSearchDestination; -pub mod model_observability_pipeline_open_search_destination_type; -pub use self::model_observability_pipeline_open_search_destination_type::ObservabilityPipelineOpenSearchDestinationType; -pub mod model_observability_pipeline_amazon_open_search_destination; -pub use self::model_observability_pipeline_amazon_open_search_destination::ObservabilityPipelineAmazonOpenSearchDestination; -pub mod model_observability_pipeline_amazon_open_search_destination_auth; -pub use self::model_observability_pipeline_amazon_open_search_destination_auth::ObservabilityPipelineAmazonOpenSearchDestinationAuth; -pub mod model_observability_pipeline_amazon_open_search_destination_auth_strategy; -pub use self::model_observability_pipeline_amazon_open_search_destination_auth_strategy::ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy; -pub mod model_observability_pipeline_amazon_open_search_destination_type; -pub use self::model_observability_pipeline_amazon_open_search_destination_type::ObservabilityPipelineAmazonOpenSearchDestinationType; pub mod model_observability_pipeline_socket_destination; pub use self::model_observability_pipeline_socket_destination::ObservabilityPipelineSocketDestination; pub mod model_observability_pipeline_socket_destination_encoding; @@ -5082,66 +5096,90 @@ pub mod model_observability_pipeline_socket_destination_mode; pub use self::model_observability_pipeline_socket_destination_mode::ObservabilityPipelineSocketDestinationMode; pub mod model_observability_pipeline_socket_destination_type; pub use self::model_observability_pipeline_socket_destination_type::ObservabilityPipelineSocketDestinationType; -pub mod model_observability_pipeline_amazon_security_lake_destination; -pub use self::model_observability_pipeline_amazon_security_lake_destination::ObservabilityPipelineAmazonSecurityLakeDestination; -pub mod model_observability_pipeline_amazon_security_lake_destination_type; -pub use self::model_observability_pipeline_amazon_security_lake_destination_type::ObservabilityPipelineAmazonSecurityLakeDestinationType; -pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination; -pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination::ObservabilityPipelineCrowdStrikeNextGenSiemDestination; -pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression; -pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression; -pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression_algorithm; -pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_compression_algorithm::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompressionAlgorithm; -pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_encoding; -pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_encoding::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding; -pub mod model_observability_pipeline_crowd_strike_next_gen_siem_destination_type; -pub use self::model_observability_pipeline_crowd_strike_next_gen_siem_destination_type::ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType; -pub mod model_observability_pipeline_google_pub_sub_destination; -pub use self::model_observability_pipeline_google_pub_sub_destination::ObservabilityPipelineGooglePubSubDestination; -pub mod model_observability_pipeline_google_pub_sub_destination_encoding; -pub use self::model_observability_pipeline_google_pub_sub_destination_encoding::ObservabilityPipelineGooglePubSubDestinationEncoding; -pub mod model_observability_pipeline_google_pub_sub_destination_type; -pub use self::model_observability_pipeline_google_pub_sub_destination_type::ObservabilityPipelineGooglePubSubDestinationType; +pub mod model_observability_pipeline_splunk_hec_destination; +pub use self::model_observability_pipeline_splunk_hec_destination::ObservabilityPipelineSplunkHecDestination; +pub mod model_observability_pipeline_splunk_hec_destination_encoding; +pub use self::model_observability_pipeline_splunk_hec_destination_encoding::ObservabilityPipelineSplunkHecDestinationEncoding; +pub mod model_observability_pipeline_splunk_hec_destination_type; +pub use self::model_observability_pipeline_splunk_hec_destination_type::ObservabilityPipelineSplunkHecDestinationType; +pub mod model_observability_pipeline_sumo_logic_destination; +pub use self::model_observability_pipeline_sumo_logic_destination::ObservabilityPipelineSumoLogicDestination; +pub mod model_observability_pipeline_sumo_logic_destination_encoding; +pub use self::model_observability_pipeline_sumo_logic_destination_encoding::ObservabilityPipelineSumoLogicDestinationEncoding; +pub mod model_observability_pipeline_sumo_logic_destination_header_custom_fields_item; +pub use self::model_observability_pipeline_sumo_logic_destination_header_custom_fields_item::ObservabilityPipelineSumoLogicDestinationHeaderCustomFieldsItem; +pub mod model_observability_pipeline_sumo_logic_destination_type; +pub use self::model_observability_pipeline_sumo_logic_destination_type::ObservabilityPipelineSumoLogicDestinationType; +pub mod model_observability_pipeline_syslog_ng_destination; +pub use self::model_observability_pipeline_syslog_ng_destination::ObservabilityPipelineSyslogNgDestination; +pub mod model_observability_pipeline_syslog_ng_destination_type; +pub use self::model_observability_pipeline_syslog_ng_destination_type::ObservabilityPipelineSyslogNgDestinationType; +pub mod model_observability_pipeline_datadog_metrics_destination; +pub use self::model_observability_pipeline_datadog_metrics_destination::ObservabilityPipelineDatadogMetricsDestination; +pub mod model_observability_pipeline_datadog_metrics_destination_type; +pub use self::model_observability_pipeline_datadog_metrics_destination_type::ObservabilityPipelineDatadogMetricsDestinationType; pub mod model_observability_pipeline_config_destination_item; pub use self::model_observability_pipeline_config_destination_item::ObservabilityPipelineConfigDestinationItem; +pub mod model_observability_pipeline_config_pipeline_type; +pub use self::model_observability_pipeline_config_pipeline_type::ObservabilityPipelineConfigPipelineType; pub mod model_observability_pipeline_config_processor_group; pub use self::model_observability_pipeline_config_processor_group::ObservabilityPipelineConfigProcessorGroup; pub mod model_observability_pipeline_filter_processor; pub use self::model_observability_pipeline_filter_processor::ObservabilityPipelineFilterProcessor; pub mod model_observability_pipeline_filter_processor_type; pub use self::model_observability_pipeline_filter_processor_type::ObservabilityPipelineFilterProcessorType; -pub mod model_observability_pipeline_parse_json_processor; -pub use self::model_observability_pipeline_parse_json_processor::ObservabilityPipelineParseJSONProcessor; -pub mod model_observability_pipeline_parse_json_processor_type; -pub use self::model_observability_pipeline_parse_json_processor_type::ObservabilityPipelineParseJSONProcessorType; -pub mod model_observability_pipeline_quota_processor; -pub use self::model_observability_pipeline_quota_processor::ObservabilityPipelineQuotaProcessor; -pub mod model_observability_pipeline_quota_processor_limit; -pub use self::model_observability_pipeline_quota_processor_limit::ObservabilityPipelineQuotaProcessorLimit; -pub mod model_observability_pipeline_quota_processor_limit_enforce_type; -pub use self::model_observability_pipeline_quota_processor_limit_enforce_type::ObservabilityPipelineQuotaProcessorLimitEnforceType; -pub mod model_observability_pipeline_quota_processor_overflow_action; -pub use self::model_observability_pipeline_quota_processor_overflow_action::ObservabilityPipelineQuotaProcessorOverflowAction; -pub mod model_observability_pipeline_quota_processor_override; -pub use self::model_observability_pipeline_quota_processor_override::ObservabilityPipelineQuotaProcessorOverride; -pub mod model_observability_pipeline_field_value; -pub use self::model_observability_pipeline_field_value::ObservabilityPipelineFieldValue; -pub mod model_observability_pipeline_quota_processor_type; -pub use self::model_observability_pipeline_quota_processor_type::ObservabilityPipelineQuotaProcessorType; +pub mod model_observability_pipeline_add_env_vars_processor; +pub use self::model_observability_pipeline_add_env_vars_processor::ObservabilityPipelineAddEnvVarsProcessor; +pub mod model_observability_pipeline_add_env_vars_processor_type; +pub use self::model_observability_pipeline_add_env_vars_processor_type::ObservabilityPipelineAddEnvVarsProcessorType; +pub mod model_observability_pipeline_add_env_vars_processor_variable; +pub use self::model_observability_pipeline_add_env_vars_processor_variable::ObservabilityPipelineAddEnvVarsProcessorVariable; pub mod model_observability_pipeline_add_fields_processor; pub use self::model_observability_pipeline_add_fields_processor::ObservabilityPipelineAddFieldsProcessor; +pub mod model_observability_pipeline_field_value; +pub use self::model_observability_pipeline_field_value::ObservabilityPipelineFieldValue; pub mod model_observability_pipeline_add_fields_processor_type; pub use self::model_observability_pipeline_add_fields_processor_type::ObservabilityPipelineAddFieldsProcessorType; -pub mod model_observability_pipeline_remove_fields_processor; -pub use self::model_observability_pipeline_remove_fields_processor::ObservabilityPipelineRemoveFieldsProcessor; -pub mod model_observability_pipeline_remove_fields_processor_type; -pub use self::model_observability_pipeline_remove_fields_processor_type::ObservabilityPipelineRemoveFieldsProcessorType; -pub mod model_observability_pipeline_rename_fields_processor; -pub use self::model_observability_pipeline_rename_fields_processor::ObservabilityPipelineRenameFieldsProcessor; -pub mod model_observability_pipeline_rename_fields_processor_field; -pub use self::model_observability_pipeline_rename_fields_processor_field::ObservabilityPipelineRenameFieldsProcessorField; -pub mod model_observability_pipeline_rename_fields_processor_type; -pub use self::model_observability_pipeline_rename_fields_processor_type::ObservabilityPipelineRenameFieldsProcessorType; +pub mod model_observability_pipeline_custom_processor; +pub use self::model_observability_pipeline_custom_processor::ObservabilityPipelineCustomProcessor; +pub mod model_observability_pipeline_custom_processor_remap; +pub use self::model_observability_pipeline_custom_processor_remap::ObservabilityPipelineCustomProcessorRemap; +pub mod model_observability_pipeline_custom_processor_type; +pub use self::model_observability_pipeline_custom_processor_type::ObservabilityPipelineCustomProcessorType; +pub mod model_observability_pipeline_datadog_tags_processor; +pub use self::model_observability_pipeline_datadog_tags_processor::ObservabilityPipelineDatadogTagsProcessor; +pub mod model_observability_pipeline_datadog_tags_processor_action; +pub use self::model_observability_pipeline_datadog_tags_processor_action::ObservabilityPipelineDatadogTagsProcessorAction; +pub mod model_observability_pipeline_datadog_tags_processor_mode; +pub use self::model_observability_pipeline_datadog_tags_processor_mode::ObservabilityPipelineDatadogTagsProcessorMode; +pub mod model_observability_pipeline_datadog_tags_processor_type; +pub use self::model_observability_pipeline_datadog_tags_processor_type::ObservabilityPipelineDatadogTagsProcessorType; +pub mod model_observability_pipeline_dedupe_processor; +pub use self::model_observability_pipeline_dedupe_processor::ObservabilityPipelineDedupeProcessor; +pub mod model_observability_pipeline_dedupe_processor_mode; +pub use self::model_observability_pipeline_dedupe_processor_mode::ObservabilityPipelineDedupeProcessorMode; +pub mod model_observability_pipeline_dedupe_processor_type; +pub use self::model_observability_pipeline_dedupe_processor_type::ObservabilityPipelineDedupeProcessorType; +pub mod model_observability_pipeline_enrichment_table_processor; +pub use self::model_observability_pipeline_enrichment_table_processor::ObservabilityPipelineEnrichmentTableProcessor; +pub mod model_observability_pipeline_enrichment_table_file; +pub use self::model_observability_pipeline_enrichment_table_file::ObservabilityPipelineEnrichmentTableFile; +pub mod model_observability_pipeline_enrichment_table_file_encoding; +pub use self::model_observability_pipeline_enrichment_table_file_encoding::ObservabilityPipelineEnrichmentTableFileEncoding; +pub mod model_observability_pipeline_enrichment_table_file_encoding_type; +pub use self::model_observability_pipeline_enrichment_table_file_encoding_type::ObservabilityPipelineEnrichmentTableFileEncodingType; +pub mod model_observability_pipeline_enrichment_table_file_key_items; +pub use self::model_observability_pipeline_enrichment_table_file_key_items::ObservabilityPipelineEnrichmentTableFileKeyItems; +pub mod model_observability_pipeline_enrichment_table_file_key_items_comparison; +pub use self::model_observability_pipeline_enrichment_table_file_key_items_comparison::ObservabilityPipelineEnrichmentTableFileKeyItemsComparison; +pub mod model_observability_pipeline_enrichment_table_file_schema_items; +pub use self::model_observability_pipeline_enrichment_table_file_schema_items::ObservabilityPipelineEnrichmentTableFileSchemaItems; +pub mod model_observability_pipeline_enrichment_table_file_schema_items_type; +pub use self::model_observability_pipeline_enrichment_table_file_schema_items_type::ObservabilityPipelineEnrichmentTableFileSchemaItemsType; +pub mod model_observability_pipeline_enrichment_table_geo_ip; +pub use self::model_observability_pipeline_enrichment_table_geo_ip::ObservabilityPipelineEnrichmentTableGeoIp; +pub mod model_observability_pipeline_enrichment_table_processor_type; +pub use self::model_observability_pipeline_enrichment_table_processor_type::ObservabilityPipelineEnrichmentTableProcessorType; pub mod model_observability_pipeline_generate_metrics_processor; pub use self::model_observability_pipeline_generate_metrics_processor::ObservabilityPipelineGenerateMetricsProcessor; pub mod model_observability_pipeline_generated_metric; @@ -5160,10 +5198,16 @@ pub mod model_observability_pipeline_metric_value; pub use self::model_observability_pipeline_metric_value::ObservabilityPipelineMetricValue; pub mod model_observability_pipeline_generate_metrics_processor_type; pub use self::model_observability_pipeline_generate_metrics_processor_type::ObservabilityPipelineGenerateMetricsProcessorType; -pub mod model_observability_pipeline_sample_processor; -pub use self::model_observability_pipeline_sample_processor::ObservabilityPipelineSampleProcessor; -pub mod model_observability_pipeline_sample_processor_type; -pub use self::model_observability_pipeline_sample_processor_type::ObservabilityPipelineSampleProcessorType; +pub mod model_observability_pipeline_ocsf_mapper_processor; +pub use self::model_observability_pipeline_ocsf_mapper_processor::ObservabilityPipelineOcsfMapperProcessor; +pub mod model_observability_pipeline_ocsf_mapper_processor_mapping; +pub use self::model_observability_pipeline_ocsf_mapper_processor_mapping::ObservabilityPipelineOcsfMapperProcessorMapping; +pub mod model_observability_pipeline_ocsf_mapping_library; +pub use self::model_observability_pipeline_ocsf_mapping_library::ObservabilityPipelineOcsfMappingLibrary; +pub mod model_observability_pipeline_ocsf_mapper_processor_mapping_mapping; +pub use self::model_observability_pipeline_ocsf_mapper_processor_mapping_mapping::ObservabilityPipelineOcsfMapperProcessorMappingMapping; +pub mod model_observability_pipeline_ocsf_mapper_processor_type; +pub use self::model_observability_pipeline_ocsf_mapper_processor_type::ObservabilityPipelineOcsfMapperProcessorType; pub mod model_observability_pipeline_parse_grok_processor; pub use self::model_observability_pipeline_parse_grok_processor::ObservabilityPipelineParseGrokProcessor; pub mod model_observability_pipeline_parse_grok_processor_rule; @@ -5174,6 +5218,44 @@ pub mod model_observability_pipeline_parse_grok_processor_rule_support_rule; pub use self::model_observability_pipeline_parse_grok_processor_rule_support_rule::ObservabilityPipelineParseGrokProcessorRuleSupportRule; pub mod model_observability_pipeline_parse_grok_processor_type; pub use self::model_observability_pipeline_parse_grok_processor_type::ObservabilityPipelineParseGrokProcessorType; +pub mod model_observability_pipeline_parse_json_processor; +pub use self::model_observability_pipeline_parse_json_processor::ObservabilityPipelineParseJSONProcessor; +pub mod model_observability_pipeline_parse_json_processor_type; +pub use self::model_observability_pipeline_parse_json_processor_type::ObservabilityPipelineParseJSONProcessorType; +pub mod model_observability_pipeline_quota_processor; +pub use self::model_observability_pipeline_quota_processor::ObservabilityPipelineQuotaProcessor; +pub mod model_observability_pipeline_quota_processor_limit; +pub use self::model_observability_pipeline_quota_processor_limit::ObservabilityPipelineQuotaProcessorLimit; +pub mod model_observability_pipeline_quota_processor_limit_enforce_type; +pub use self::model_observability_pipeline_quota_processor_limit_enforce_type::ObservabilityPipelineQuotaProcessorLimitEnforceType; +pub mod model_observability_pipeline_quota_processor_overflow_action; +pub use self::model_observability_pipeline_quota_processor_overflow_action::ObservabilityPipelineQuotaProcessorOverflowAction; +pub mod model_observability_pipeline_quota_processor_override; +pub use self::model_observability_pipeline_quota_processor_override::ObservabilityPipelineQuotaProcessorOverride; +pub mod model_observability_pipeline_quota_processor_type; +pub use self::model_observability_pipeline_quota_processor_type::ObservabilityPipelineQuotaProcessorType; +pub mod model_observability_pipeline_reduce_processor; +pub use self::model_observability_pipeline_reduce_processor::ObservabilityPipelineReduceProcessor; +pub mod model_observability_pipeline_reduce_processor_merge_strategy; +pub use self::model_observability_pipeline_reduce_processor_merge_strategy::ObservabilityPipelineReduceProcessorMergeStrategy; +pub mod model_observability_pipeline_reduce_processor_merge_strategy_strategy; +pub use self::model_observability_pipeline_reduce_processor_merge_strategy_strategy::ObservabilityPipelineReduceProcessorMergeStrategyStrategy; +pub mod model_observability_pipeline_reduce_processor_type; +pub use self::model_observability_pipeline_reduce_processor_type::ObservabilityPipelineReduceProcessorType; +pub mod model_observability_pipeline_remove_fields_processor; +pub use self::model_observability_pipeline_remove_fields_processor::ObservabilityPipelineRemoveFieldsProcessor; +pub mod model_observability_pipeline_remove_fields_processor_type; +pub use self::model_observability_pipeline_remove_fields_processor_type::ObservabilityPipelineRemoveFieldsProcessorType; +pub mod model_observability_pipeline_rename_fields_processor; +pub use self::model_observability_pipeline_rename_fields_processor::ObservabilityPipelineRenameFieldsProcessor; +pub mod model_observability_pipeline_rename_fields_processor_field; +pub use self::model_observability_pipeline_rename_fields_processor_field::ObservabilityPipelineRenameFieldsProcessorField; +pub mod model_observability_pipeline_rename_fields_processor_type; +pub use self::model_observability_pipeline_rename_fields_processor_type::ObservabilityPipelineRenameFieldsProcessorType; +pub mod model_observability_pipeline_sample_processor; +pub use self::model_observability_pipeline_sample_processor::ObservabilityPipelineSampleProcessor; +pub mod model_observability_pipeline_sample_processor_type; +pub use self::model_observability_pipeline_sample_processor_type::ObservabilityPipelineSampleProcessorType; pub mod model_observability_pipeline_sensitive_data_scanner_processor; pub use self::model_observability_pipeline_sensitive_data_scanner_processor::ObservabilityPipelineSensitiveDataScannerProcessor; pub mod model_observability_pipeline_sensitive_data_scanner_processor_rule; @@ -5232,138 +5314,46 @@ pub mod model_observability_pipeline_sensitive_data_scanner_processor_scope; pub use self::model_observability_pipeline_sensitive_data_scanner_processor_scope::ObservabilityPipelineSensitiveDataScannerProcessorScope; pub mod model_observability_pipeline_sensitive_data_scanner_processor_type; pub use self::model_observability_pipeline_sensitive_data_scanner_processor_type::ObservabilityPipelineSensitiveDataScannerProcessorType; -pub mod model_observability_pipeline_ocsf_mapper_processor; -pub use self::model_observability_pipeline_ocsf_mapper_processor::ObservabilityPipelineOcsfMapperProcessor; -pub mod model_observability_pipeline_ocsf_mapper_processor_mapping; -pub use self::model_observability_pipeline_ocsf_mapper_processor_mapping::ObservabilityPipelineOcsfMapperProcessorMapping; -pub mod model_observability_pipeline_ocsf_mapping_library; -pub use self::model_observability_pipeline_ocsf_mapping_library::ObservabilityPipelineOcsfMappingLibrary; -pub mod model_observability_pipeline_ocsf_mapper_processor_mapping_mapping; -pub use self::model_observability_pipeline_ocsf_mapper_processor_mapping_mapping::ObservabilityPipelineOcsfMapperProcessorMappingMapping; -pub mod model_observability_pipeline_ocsf_mapper_processor_type; -pub use self::model_observability_pipeline_ocsf_mapper_processor_type::ObservabilityPipelineOcsfMapperProcessorType; -pub mod model_observability_pipeline_add_env_vars_processor; -pub use self::model_observability_pipeline_add_env_vars_processor::ObservabilityPipelineAddEnvVarsProcessor; -pub mod model_observability_pipeline_add_env_vars_processor_type; -pub use self::model_observability_pipeline_add_env_vars_processor_type::ObservabilityPipelineAddEnvVarsProcessorType; -pub mod model_observability_pipeline_add_env_vars_processor_variable; -pub use self::model_observability_pipeline_add_env_vars_processor_variable::ObservabilityPipelineAddEnvVarsProcessorVariable; -pub mod model_observability_pipeline_dedupe_processor; -pub use self::model_observability_pipeline_dedupe_processor::ObservabilityPipelineDedupeProcessor; -pub mod model_observability_pipeline_dedupe_processor_mode; -pub use self::model_observability_pipeline_dedupe_processor_mode::ObservabilityPipelineDedupeProcessorMode; -pub mod model_observability_pipeline_dedupe_processor_type; -pub use self::model_observability_pipeline_dedupe_processor_type::ObservabilityPipelineDedupeProcessorType; -pub mod model_observability_pipeline_enrichment_table_processor; -pub use self::model_observability_pipeline_enrichment_table_processor::ObservabilityPipelineEnrichmentTableProcessor; -pub mod model_observability_pipeline_enrichment_table_file; -pub use self::model_observability_pipeline_enrichment_table_file::ObservabilityPipelineEnrichmentTableFile; -pub mod model_observability_pipeline_enrichment_table_file_encoding; -pub use self::model_observability_pipeline_enrichment_table_file_encoding::ObservabilityPipelineEnrichmentTableFileEncoding; -pub mod model_observability_pipeline_enrichment_table_file_encoding_type; -pub use self::model_observability_pipeline_enrichment_table_file_encoding_type::ObservabilityPipelineEnrichmentTableFileEncodingType; -pub mod model_observability_pipeline_enrichment_table_file_key_items; -pub use self::model_observability_pipeline_enrichment_table_file_key_items::ObservabilityPipelineEnrichmentTableFileKeyItems; -pub mod model_observability_pipeline_enrichment_table_file_key_items_comparison; -pub use self::model_observability_pipeline_enrichment_table_file_key_items_comparison::ObservabilityPipelineEnrichmentTableFileKeyItemsComparison; -pub mod model_observability_pipeline_enrichment_table_file_schema_items; -pub use self::model_observability_pipeline_enrichment_table_file_schema_items::ObservabilityPipelineEnrichmentTableFileSchemaItems; -pub mod model_observability_pipeline_enrichment_table_file_schema_items_type; -pub use self::model_observability_pipeline_enrichment_table_file_schema_items_type::ObservabilityPipelineEnrichmentTableFileSchemaItemsType; -pub mod model_observability_pipeline_enrichment_table_geo_ip; -pub use self::model_observability_pipeline_enrichment_table_geo_ip::ObservabilityPipelineEnrichmentTableGeoIp; -pub mod model_observability_pipeline_enrichment_table_processor_type; -pub use self::model_observability_pipeline_enrichment_table_processor_type::ObservabilityPipelineEnrichmentTableProcessorType; -pub mod model_observability_pipeline_reduce_processor; -pub use self::model_observability_pipeline_reduce_processor::ObservabilityPipelineReduceProcessor; -pub mod model_observability_pipeline_reduce_processor_merge_strategy; -pub use self::model_observability_pipeline_reduce_processor_merge_strategy::ObservabilityPipelineReduceProcessorMergeStrategy; -pub mod model_observability_pipeline_reduce_processor_merge_strategy_strategy; -pub use self::model_observability_pipeline_reduce_processor_merge_strategy_strategy::ObservabilityPipelineReduceProcessorMergeStrategyStrategy; -pub mod model_observability_pipeline_reduce_processor_type; -pub use self::model_observability_pipeline_reduce_processor_type::ObservabilityPipelineReduceProcessorType; pub mod model_observability_pipeline_throttle_processor; pub use self::model_observability_pipeline_throttle_processor::ObservabilityPipelineThrottleProcessor; pub mod model_observability_pipeline_throttle_processor_type; pub use self::model_observability_pipeline_throttle_processor_type::ObservabilityPipelineThrottleProcessorType; -pub mod model_observability_pipeline_custom_processor; -pub use self::model_observability_pipeline_custom_processor::ObservabilityPipelineCustomProcessor; -pub mod model_observability_pipeline_custom_processor_remap; -pub use self::model_observability_pipeline_custom_processor_remap::ObservabilityPipelineCustomProcessorRemap; -pub mod model_observability_pipeline_custom_processor_type; -pub use self::model_observability_pipeline_custom_processor_type::ObservabilityPipelineCustomProcessorType; -pub mod model_observability_pipeline_datadog_tags_processor; -pub use self::model_observability_pipeline_datadog_tags_processor::ObservabilityPipelineDatadogTagsProcessor; -pub mod model_observability_pipeline_datadog_tags_processor_action; -pub use self::model_observability_pipeline_datadog_tags_processor_action::ObservabilityPipelineDatadogTagsProcessorAction; -pub mod model_observability_pipeline_datadog_tags_processor_mode; -pub use self::model_observability_pipeline_datadog_tags_processor_mode::ObservabilityPipelineDatadogTagsProcessorMode; -pub mod model_observability_pipeline_datadog_tags_processor_type; -pub use self::model_observability_pipeline_datadog_tags_processor_type::ObservabilityPipelineDatadogTagsProcessorType; +pub mod model_observability_pipeline_metric_tags_processor; +pub use self::model_observability_pipeline_metric_tags_processor::ObservabilityPipelineMetricTagsProcessor; +pub mod model_observability_pipeline_metric_tags_processor_rule; +pub use self::model_observability_pipeline_metric_tags_processor_rule::ObservabilityPipelineMetricTagsProcessorRule; +pub mod model_observability_pipeline_metric_tags_processor_rule_action; +pub use self::model_observability_pipeline_metric_tags_processor_rule_action::ObservabilityPipelineMetricTagsProcessorRuleAction; +pub mod model_observability_pipeline_metric_tags_processor_rule_mode; +pub use self::model_observability_pipeline_metric_tags_processor_rule_mode::ObservabilityPipelineMetricTagsProcessorRuleMode; +pub mod model_observability_pipeline_metric_tags_processor_type; +pub use self::model_observability_pipeline_metric_tags_processor_type::ObservabilityPipelineMetricTagsProcessorType; pub mod model_observability_pipeline_config_processor_item; pub use self::model_observability_pipeline_config_processor_item::ObservabilityPipelineConfigProcessorItem; -pub mod model_observability_pipeline_kafka_source; -pub use self::model_observability_pipeline_kafka_source::ObservabilityPipelineKafkaSource; -pub mod model_observability_pipeline_kafka_source_librdkafka_option; -pub use self::model_observability_pipeline_kafka_source_librdkafka_option::ObservabilityPipelineKafkaSourceLibrdkafkaOption; -pub mod model_observability_pipeline_kafka_source_sasl; -pub use self::model_observability_pipeline_kafka_source_sasl::ObservabilityPipelineKafkaSourceSasl; -pub mod model_observability_pipeline_pipeline_kafka_source_sasl_mechanism; -pub use self::model_observability_pipeline_pipeline_kafka_source_sasl_mechanism::ObservabilityPipelinePipelineKafkaSourceSaslMechanism; -pub mod model_observability_pipeline_kafka_source_type; -pub use self::model_observability_pipeline_kafka_source_type::ObservabilityPipelineKafkaSourceType; pub mod model_observability_pipeline_datadog_agent_source; pub use self::model_observability_pipeline_datadog_agent_source::ObservabilityPipelineDatadogAgentSource; pub mod model_observability_pipeline_datadog_agent_source_type; pub use self::model_observability_pipeline_datadog_agent_source_type::ObservabilityPipelineDatadogAgentSourceType; -pub mod model_observability_pipeline_splunk_tcp_source; -pub use self::model_observability_pipeline_splunk_tcp_source::ObservabilityPipelineSplunkTcpSource; -pub mod model_observability_pipeline_splunk_tcp_source_type; -pub use self::model_observability_pipeline_splunk_tcp_source_type::ObservabilityPipelineSplunkTcpSourceType; -pub mod model_observability_pipeline_splunk_hec_source; -pub use self::model_observability_pipeline_splunk_hec_source::ObservabilityPipelineSplunkHecSource; -pub mod model_observability_pipeline_splunk_hec_source_type; -pub use self::model_observability_pipeline_splunk_hec_source_type::ObservabilityPipelineSplunkHecSourceType; +pub mod model_observability_pipeline_amazon_data_firehose_source; +pub use self::model_observability_pipeline_amazon_data_firehose_source::ObservabilityPipelineAmazonDataFirehoseSource; +pub mod model_observability_pipeline_amazon_data_firehose_source_type; +pub use self::model_observability_pipeline_amazon_data_firehose_source_type::ObservabilityPipelineAmazonDataFirehoseSourceType; pub mod model_observability_pipeline_amazon_s3_source; pub use self::model_observability_pipeline_amazon_s3_source::ObservabilityPipelineAmazonS3Source; pub mod model_observability_pipeline_amazon_s3_source_type; pub use self::model_observability_pipeline_amazon_s3_source_type::ObservabilityPipelineAmazonS3SourceType; -pub mod model_observability_pipeline_fluentd_source; -pub use self::model_observability_pipeline_fluentd_source::ObservabilityPipelineFluentdSource; -pub mod model_observability_pipeline_fluentd_source_type; -pub use self::model_observability_pipeline_fluentd_source_type::ObservabilityPipelineFluentdSourceType; pub mod model_observability_pipeline_fluent_bit_source; pub use self::model_observability_pipeline_fluent_bit_source::ObservabilityPipelineFluentBitSource; pub mod model_observability_pipeline_fluent_bit_source_type; pub use self::model_observability_pipeline_fluent_bit_source_type::ObservabilityPipelineFluentBitSourceType; -pub mod model_observability_pipeline_http_server_source; -pub use self::model_observability_pipeline_http_server_source::ObservabilityPipelineHttpServerSource; -pub mod model_observability_pipeline_http_server_source_auth_strategy; -pub use self::model_observability_pipeline_http_server_source_auth_strategy::ObservabilityPipelineHttpServerSourceAuthStrategy; -pub mod model_observability_pipeline_decoding; -pub use self::model_observability_pipeline_decoding::ObservabilityPipelineDecoding; -pub mod model_observability_pipeline_http_server_source_type; -pub use self::model_observability_pipeline_http_server_source_type::ObservabilityPipelineHttpServerSourceType; -pub mod model_observability_pipeline_sumo_logic_source; -pub use self::model_observability_pipeline_sumo_logic_source::ObservabilityPipelineSumoLogicSource; -pub mod model_observability_pipeline_sumo_logic_source_type; -pub use self::model_observability_pipeline_sumo_logic_source_type::ObservabilityPipelineSumoLogicSourceType; -pub mod model_observability_pipeline_rsyslog_source; -pub use self::model_observability_pipeline_rsyslog_source::ObservabilityPipelineRsyslogSource; -pub mod model_observability_pipeline_syslog_source_mode; -pub use self::model_observability_pipeline_syslog_source_mode::ObservabilityPipelineSyslogSourceMode; -pub mod model_observability_pipeline_rsyslog_source_type; -pub use self::model_observability_pipeline_rsyslog_source_type::ObservabilityPipelineRsyslogSourceType; -pub mod model_observability_pipeline_syslog_ng_source; -pub use self::model_observability_pipeline_syslog_ng_source::ObservabilityPipelineSyslogNgSource; -pub mod model_observability_pipeline_syslog_ng_source_type; -pub use self::model_observability_pipeline_syslog_ng_source_type::ObservabilityPipelineSyslogNgSourceType; -pub mod model_observability_pipeline_amazon_data_firehose_source; -pub use self::model_observability_pipeline_amazon_data_firehose_source::ObservabilityPipelineAmazonDataFirehoseSource; -pub mod model_observability_pipeline_amazon_data_firehose_source_type; -pub use self::model_observability_pipeline_amazon_data_firehose_source_type::ObservabilityPipelineAmazonDataFirehoseSourceType; +pub mod model_observability_pipeline_fluentd_source; +pub use self::model_observability_pipeline_fluentd_source::ObservabilityPipelineFluentdSource; +pub mod model_observability_pipeline_fluentd_source_type; +pub use self::model_observability_pipeline_fluentd_source_type::ObservabilityPipelineFluentdSourceType; pub mod model_observability_pipeline_google_pub_sub_source; pub use self::model_observability_pipeline_google_pub_sub_source::ObservabilityPipelineGooglePubSubSource; +pub mod model_observability_pipeline_decoding; +pub use self::model_observability_pipeline_decoding::ObservabilityPipelineDecoding; pub mod model_observability_pipeline_google_pub_sub_source_type; pub use self::model_observability_pipeline_google_pub_sub_source_type::ObservabilityPipelineGooglePubSubSourceType; pub mod model_observability_pipeline_http_client_source; @@ -5372,10 +5362,32 @@ pub mod model_observability_pipeline_http_client_source_auth_strategy; pub use self::model_observability_pipeline_http_client_source_auth_strategy::ObservabilityPipelineHttpClientSourceAuthStrategy; pub mod model_observability_pipeline_http_client_source_type; pub use self::model_observability_pipeline_http_client_source_type::ObservabilityPipelineHttpClientSourceType; +pub mod model_observability_pipeline_http_server_source; +pub use self::model_observability_pipeline_http_server_source::ObservabilityPipelineHttpServerSource; +pub mod model_observability_pipeline_http_server_source_auth_strategy; +pub use self::model_observability_pipeline_http_server_source_auth_strategy::ObservabilityPipelineHttpServerSourceAuthStrategy; +pub mod model_observability_pipeline_http_server_source_type; +pub use self::model_observability_pipeline_http_server_source_type::ObservabilityPipelineHttpServerSourceType; +pub mod model_observability_pipeline_kafka_source; +pub use self::model_observability_pipeline_kafka_source::ObservabilityPipelineKafkaSource; +pub mod model_observability_pipeline_kafka_source_librdkafka_option; +pub use self::model_observability_pipeline_kafka_source_librdkafka_option::ObservabilityPipelineKafkaSourceLibrdkafkaOption; +pub mod model_observability_pipeline_kafka_source_sasl; +pub use self::model_observability_pipeline_kafka_source_sasl::ObservabilityPipelineKafkaSourceSasl; +pub mod model_observability_pipeline_pipeline_kafka_source_sasl_mechanism; +pub use self::model_observability_pipeline_pipeline_kafka_source_sasl_mechanism::ObservabilityPipelinePipelineKafkaSourceSaslMechanism; +pub mod model_observability_pipeline_kafka_source_type; +pub use self::model_observability_pipeline_kafka_source_type::ObservabilityPipelineKafkaSourceType; pub mod model_observability_pipeline_logstash_source; pub use self::model_observability_pipeline_logstash_source::ObservabilityPipelineLogstashSource; pub mod model_observability_pipeline_logstash_source_type; pub use self::model_observability_pipeline_logstash_source_type::ObservabilityPipelineLogstashSourceType; +pub mod model_observability_pipeline_rsyslog_source; +pub use self::model_observability_pipeline_rsyslog_source::ObservabilityPipelineRsyslogSource; +pub mod model_observability_pipeline_syslog_source_mode; +pub use self::model_observability_pipeline_syslog_source_mode::ObservabilityPipelineSyslogSourceMode; +pub mod model_observability_pipeline_rsyslog_source_type; +pub use self::model_observability_pipeline_rsyslog_source_type::ObservabilityPipelineRsyslogSourceType; pub mod model_observability_pipeline_socket_source; pub use self::model_observability_pipeline_socket_source::ObservabilityPipelineSocketSource; pub mod model_observability_pipeline_socket_source_framing_newline_delimited; @@ -5404,6 +5416,22 @@ pub mod model_observability_pipeline_socket_source_mode; pub use self::model_observability_pipeline_socket_source_mode::ObservabilityPipelineSocketSourceMode; pub mod model_observability_pipeline_socket_source_type; pub use self::model_observability_pipeline_socket_source_type::ObservabilityPipelineSocketSourceType; +pub mod model_observability_pipeline_splunk_hec_source; +pub use self::model_observability_pipeline_splunk_hec_source::ObservabilityPipelineSplunkHecSource; +pub mod model_observability_pipeline_splunk_hec_source_type; +pub use self::model_observability_pipeline_splunk_hec_source_type::ObservabilityPipelineSplunkHecSourceType; +pub mod model_observability_pipeline_splunk_tcp_source; +pub use self::model_observability_pipeline_splunk_tcp_source::ObservabilityPipelineSplunkTcpSource; +pub mod model_observability_pipeline_splunk_tcp_source_type; +pub use self::model_observability_pipeline_splunk_tcp_source_type::ObservabilityPipelineSplunkTcpSourceType; +pub mod model_observability_pipeline_sumo_logic_source; +pub use self::model_observability_pipeline_sumo_logic_source::ObservabilityPipelineSumoLogicSource; +pub mod model_observability_pipeline_sumo_logic_source_type; +pub use self::model_observability_pipeline_sumo_logic_source_type::ObservabilityPipelineSumoLogicSourceType; +pub mod model_observability_pipeline_syslog_ng_source; +pub use self::model_observability_pipeline_syslog_ng_source::ObservabilityPipelineSyslogNgSource; +pub mod model_observability_pipeline_syslog_ng_source_type; +pub use self::model_observability_pipeline_syslog_ng_source_type::ObservabilityPipelineSyslogNgSourceType; pub mod model_observability_pipeline_config_source_item; pub use self::model_observability_pipeline_config_source_item::ObservabilityPipelineConfigSourceItem; pub mod model_list_pipelines_response_meta; diff --git a/src/datadogV2/model/model_azure_storage_destination.rs b/src/datadogV2/model/model_azure_storage_destination.rs index 3725cf911..2c383ca01 100644 --- a/src/datadogV2/model/model_azure_storage_destination.rs +++ b/src/datadogV2/model/model_azure_storage_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `azure_storage` destination forwards logs to an Azure Blob Storage container. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_microsoft_sentinel_destination.rs b/src/datadogV2/model/model_microsoft_sentinel_destination.rs index 0f6414e05..18b7e1ad5 100644 --- a/src/datadogV2/model/model_microsoft_sentinel_destination.rs +++ b/src/datadogV2/model/model_microsoft_sentinel_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `microsoft_sentinel` destination forwards logs to Microsoft Sentinel. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_add_env_vars_processor.rs b/src/datadogV2/model/model_observability_pipeline_add_env_vars_processor.rs index 03979ee2d..35ea56a95 100644 --- a/src/datadogV2/model/model_observability_pipeline_add_env_vars_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_add_env_vars_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `add_env_vars` processor adds environment variable values to log events. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_add_fields_processor.rs b/src/datadogV2/model/model_observability_pipeline_add_fields_processor.rs index 4dc993cce..7550bd092 100644 --- a/src/datadogV2/model/model_observability_pipeline_add_fields_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_add_fields_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `add_fields` processor adds static key-value fields to logs. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_amazon_data_firehose_source.rs b/src/datadogV2/model/model_observability_pipeline_amazon_data_firehose_source.rs index 92f5664e4..dfaf7586a 100644 --- a/src/datadogV2/model/model_observability_pipeline_amazon_data_firehose_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_amazon_data_firehose_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `amazon_data_firehose` source ingests logs from AWS Data Firehose. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_amazon_open_search_destination.rs b/src/datadogV2/model/model_observability_pipeline_amazon_open_search_destination.rs index b3656e33a..c8f007962 100644 --- a/src/datadogV2/model/model_observability_pipeline_amazon_open_search_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_amazon_open_search_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `amazon_opensearch` destination writes logs to Amazon OpenSearch. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_amazon_s3_destination.rs b/src/datadogV2/model/model_observability_pipeline_amazon_s3_destination.rs index b7d5ff4bc..c9bd08f54 100644 --- a/src/datadogV2/model/model_observability_pipeline_amazon_s3_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_amazon_s3_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `amazon_s3` destination sends your logs in Datadog-rehydratable format to an Amazon S3 bucket for archiving. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_amazon_s3_source.rs b/src/datadogV2/model/model_observability_pipeline_amazon_s3_source.rs index 4718ab647..c6623bde1 100644 --- a/src/datadogV2/model/model_observability_pipeline_amazon_s3_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_amazon_s3_source.rs @@ -8,6 +8,8 @@ use std::fmt::{self, Formatter}; /// The `amazon_s3` source ingests logs from an Amazon S3 bucket. /// It supports AWS authentication and TLS encryption. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_amazon_security_lake_destination.rs b/src/datadogV2/model/model_observability_pipeline_amazon_security_lake_destination.rs index 110897d39..79094f4a5 100644 --- a/src/datadogV2/model/model_observability_pipeline_amazon_security_lake_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_amazon_security_lake_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `amazon_security_lake` destination sends your logs to Amazon Security Lake. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_config.rs b/src/datadogV2/model/model_observability_pipeline_config.rs index d6fe63c42..9b18b60de 100644 --- a/src/datadogV2/model/model_observability_pipeline_config.rs +++ b/src/datadogV2/model/model_observability_pipeline_config.rs @@ -14,6 +14,9 @@ pub struct ObservabilityPipelineConfig { /// A list of destination components where processed logs are sent. #[serde(rename = "destinations")] pub destinations: Vec, + /// The type of data being ingested. Defaults to `logs` if not specified. + #[serde(rename = "pipeline_type")] + pub pipeline_type: Option, /// A list of processor groups that transform or enrich log data. #[serde(rename = "processors")] pub processors: Option>, @@ -34,6 +37,7 @@ impl ObservabilityPipelineConfig { ) -> ObservabilityPipelineConfig { ObservabilityPipelineConfig { destinations, + pipeline_type: None, processors: None, sources, additional_properties: std::collections::BTreeMap::new(), @@ -41,6 +45,14 @@ impl ObservabilityPipelineConfig { } } + pub fn pipeline_type( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineConfigPipelineType, + ) -> Self { + self.pipeline_type = Some(value); + self + } + pub fn processors( mut self, value: Vec, @@ -78,6 +90,9 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { let mut destinations: Option< Vec, > = None; + let mut pipeline_type: Option< + crate::datadogV2::model::ObservabilityPipelineConfigPipelineType, + > = None; let mut processors: Option< Vec, > = None; @@ -96,6 +111,21 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { destinations = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "pipeline_type" => { + if v.is_null() { + continue; + } + pipeline_type = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _pipeline_type) = pipeline_type { + match _pipeline_type { + crate::datadogV2::model::ObservabilityPipelineConfigPipelineType::UnparsedObject(_pipeline_type) => { + _unparsed = true; + }, + _ => {} + } + } + } "processors" => { if v.is_null() { continue; @@ -118,6 +148,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { let content = ObservabilityPipelineConfig { destinations, + pipeline_type, processors, sources, additional_properties, diff --git a/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs b/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs index 767c70f3e..10227e2e0 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs @@ -8,58 +8,64 @@ use serde::{Deserialize, Deserializer, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize)] #[serde(untagged)] pub enum ObservabilityPipelineConfigDestinationItem { - ObservabilityPipelineDatadogLogsDestination( - Box, + ObservabilityPipelineHttpClientDestination( + Box, + ), + ObservabilityPipelineAmazonOpenSearchDestination( + Box, ), ObservabilityPipelineAmazonS3Destination( Box, ), - ObservabilityPipelineGoogleCloudStorageDestination( - Box, + ObservabilityPipelineAmazonSecurityLakeDestination( + Box, ), - ObservabilityPipelineSplunkHecDestination( - Box, + AzureStorageDestination(Box), + ObservabilityPipelineCrowdStrikeNextGenSiemDestination( + Box, ), - ObservabilityPipelineSumoLogicDestination( - Box, + ObservabilityPipelineDatadogLogsDestination( + Box, ), ObservabilityPipelineElasticsearchDestination( Box, ), - ObservabilityPipelineRsyslogDestination( - Box, - ), - ObservabilityPipelineSyslogNgDestination( - Box, - ), - AzureStorageDestination(Box), - MicrosoftSentinelDestination(Box), ObservabilityPipelineGoogleChronicleDestination( Box, ), + ObservabilityPipelineGoogleCloudStorageDestination( + Box, + ), + ObservabilityPipelineGooglePubSubDestination( + Box, + ), + MicrosoftSentinelDestination(Box), ObservabilityPipelineNewRelicDestination( Box, ), - ObservabilityPipelineSentinelOneDestination( - Box, - ), ObservabilityPipelineOpenSearchDestination( Box, ), - ObservabilityPipelineAmazonOpenSearchDestination( - Box, + ObservabilityPipelineRsyslogDestination( + Box, + ), + ObservabilityPipelineSentinelOneDestination( + Box, ), ObservabilityPipelineSocketDestination( Box, ), - ObservabilityPipelineAmazonSecurityLakeDestination( - Box, + ObservabilityPipelineSplunkHecDestination( + Box, ), - ObservabilityPipelineCrowdStrikeNextGenSiemDestination( - Box, + ObservabilityPipelineSumoLogicDestination( + Box, ), - ObservabilityPipelineGooglePubSubDestination( - Box, + ObservabilityPipelineSyslogNgDestination( + Box, + ), + ObservabilityPipelineDatadogMetricsDestination( + Box, ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -71,11 +77,19 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { { let value: serde_json::Value = Deserialize::deserialize(deserializer)?; if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineHttpClientDestination(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineAmazonOpenSearchDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< @@ -87,27 +101,35 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGoogleCloudStorageDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineAmazonSecurityLakeDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSplunkHecDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::AzureStorageDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSumoLogicDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineCrowdStrikeNextGenSiemDestination(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< @@ -119,27 +141,27 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineRsyslogDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGoogleChronicleDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSyslogNgDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGoogleCloudStorageDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::AzureStorageDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGooglePubSubDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< @@ -153,75 +175,75 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGoogleChronicleDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineNewRelicDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineNewRelicDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineOpenSearchDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSentinelOneDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineRsyslogDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineOpenSearchDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSentinelOneDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineAmazonOpenSearchDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSocketDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSocketDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSplunkHecDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineAmazonSecurityLakeDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSumoLogicDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineCrowdStrikeNextGenSiemDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineSyslogNgDestination(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGooglePubSubDestination(_v)); + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogMetricsDestination(_v)); } } diff --git a/src/datadogV2/model/model_observability_pipeline_config_pipeline_type.rs b/src/datadogV2/model/model_observability_pipeline_config_pipeline_type.rs new file mode 100644 index 000000000..2853a1970 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_config_pipeline_type.rs @@ -0,0 +1,51 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineConfigPipelineType { + LOGS, + METRICS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineConfigPipelineType { + fn to_string(&self) -> String { + match self { + Self::LOGS => String::from("logs"), + Self::METRICS => String::from("metrics"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineConfigPipelineType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineConfigPipelineType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "logs" => Self::LOGS, + "metrics" => Self::METRICS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs b/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs index 71efd26a7..5d3423c28 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs @@ -11,56 +11,59 @@ pub enum ObservabilityPipelineConfigProcessorItem { ObservabilityPipelineFilterProcessor( Box, ), - ObservabilityPipelineParseJSONProcessor( - Box, - ), - ObservabilityPipelineQuotaProcessor( - Box, + ObservabilityPipelineAddEnvVarsProcessor( + Box, ), ObservabilityPipelineAddFieldsProcessor( Box, ), - ObservabilityPipelineRemoveFieldsProcessor( - Box, + ObservabilityPipelineCustomProcessor( + Box, ), - ObservabilityPipelineRenameFieldsProcessor( - Box, + ObservabilityPipelineDatadogTagsProcessor( + Box, + ), + ObservabilityPipelineDedupeProcessor( + Box, + ), + ObservabilityPipelineEnrichmentTableProcessor( + Box, ), ObservabilityPipelineGenerateMetricsProcessor( Box, ), - ObservabilityPipelineSampleProcessor( - Box, + ObservabilityPipelineOcsfMapperProcessor( + Box, ), ObservabilityPipelineParseGrokProcessor( Box, ), - ObservabilityPipelineSensitiveDataScannerProcessor( - Box, + ObservabilityPipelineParseJSONProcessor( + Box, ), - ObservabilityPipelineOcsfMapperProcessor( - Box, + ObservabilityPipelineQuotaProcessor( + Box, ), - ObservabilityPipelineAddEnvVarsProcessor( - Box, + ObservabilityPipelineReduceProcessor( + Box, ), - ObservabilityPipelineDedupeProcessor( - Box, + ObservabilityPipelineRemoveFieldsProcessor( + Box, ), - ObservabilityPipelineEnrichmentTableProcessor( - Box, + ObservabilityPipelineRenameFieldsProcessor( + Box, ), - ObservabilityPipelineReduceProcessor( - Box, + ObservabilityPipelineSampleProcessor( + Box, + ), + ObservabilityPipelineSensitiveDataScannerProcessor( + Box, ), ObservabilityPipelineThrottleProcessor( Box, ), - ObservabilityPipelineCustomProcessor( - Box, - ), - ObservabilityPipelineDatadogTagsProcessor( - Box, + ObservabilityPipelineMetricTagsProcessor( + Box, ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -84,47 +87,59 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigProcessorItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineParseJSONProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddEnvVarsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddFieldsProcessor(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineQuotaProcessor( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineCustomProcessor( _v, ), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddFieldsProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDatadogTagsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRemoveFieldsProcessor(_v)); + return Ok( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDedupeProcessor( + _v, + ), + ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRenameFieldsProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineEnrichmentTableProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< @@ -136,15 +151,11 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigProcessorItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineSampleProcessor( - _v, - ), - ); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineOcsfMapperProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< @@ -156,87 +167,87 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigProcessorItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineSensitiveDataScannerProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineParseJSONProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineOcsfMapperProcessor(_v)); + return Ok( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineQuotaProcessor( + _v, + ), + ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddEnvVarsProcessor(_v)); + return Ok( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineReduceProcessor( + _v, + ), + ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDedupeProcessor( - _v, - ), - ); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRemoveFieldsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineEnrichmentTableProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRenameFieldsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineReduceProcessor( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineSampleProcessor( _v, ), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineThrottleProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineSensitiveDataScannerProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineCustomProcessor( - _v, - ), - ); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineThrottleProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDatadogTagsProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineMetricTagsProcessor(_v)); } } diff --git a/src/datadogV2/model/model_observability_pipeline_config_source_item.rs b/src/datadogV2/model/model_observability_pipeline_config_source_item.rs index 5ae53d3ce..809be36ee 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_source_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_source_item.rs @@ -8,41 +8,20 @@ use serde::{Deserialize, Deserializer, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize)] #[serde(untagged)] pub enum ObservabilityPipelineConfigSourceItem { - ObservabilityPipelineKafkaSource( - Box, - ), ObservabilityPipelineDatadogAgentSource( Box, ), - ObservabilityPipelineSplunkTcpSource( - Box, - ), - ObservabilityPipelineSplunkHecSource( - Box, + ObservabilityPipelineAmazonDataFirehoseSource( + Box, ), ObservabilityPipelineAmazonS3Source( Box, ), - ObservabilityPipelineFluentdSource( - Box, - ), ObservabilityPipelineFluentBitSource( Box, ), - ObservabilityPipelineHttpServerSource( - Box, - ), - ObservabilityPipelineSumoLogicSource( - Box, - ), - ObservabilityPipelineRsyslogSource( - Box, - ), - ObservabilityPipelineSyslogNgSource( - Box, - ), - ObservabilityPipelineAmazonDataFirehoseSource( - Box, + ObservabilityPipelineFluentdSource( + Box, ), ObservabilityPipelineGooglePubSubSource( Box, @@ -50,12 +29,33 @@ pub enum ObservabilityPipelineConfigSourceItem { ObservabilityPipelineHttpClientSource( Box, ), + ObservabilityPipelineHttpServerSource( + Box, + ), + ObservabilityPipelineKafkaSource( + Box, + ), ObservabilityPipelineLogstashSource( Box, ), + ObservabilityPipelineRsyslogSource( + Box, + ), ObservabilityPipelineSocketSource( Box, ), + ObservabilityPipelineSplunkHecSource( + Box, + ), + ObservabilityPipelineSplunkTcpSource( + Box, + ), + ObservabilityPipelineSumoLogicSource( + Box, + ), + ObservabilityPipelineSyslogNgSource( + Box, + ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -66,74 +66,76 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigSourceItem { { let value: serde_json::Value = Deserialize::deserialize(deserializer)?; if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineKafkaSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource( + _v, + ), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineDatadogAgentSource( - _v, - ), - ); + return Ok(ObservabilityPipelineConfigSourceItem::ObservabilityPipelineAmazonDataFirehoseSource(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSplunkTcpSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineAmazonS3Source(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSplunkHecSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineFluentBitSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineAmazonS3Source(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineFluentdSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineFluentdSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineGooglePubSubSource( + _v, + ), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineFluentBitSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineHttpClientSource( + _v, + ), ); } } @@ -150,84 +152,82 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigSourceItem { } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSumoLogicSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineKafkaSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineRsyslogSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineLogstashSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSyslogNgSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineRsyslogSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigSourceItem::ObservabilityPipelineAmazonDataFirehoseSource(_v)); + return Ok( + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSocketSource(_v), + ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineGooglePubSubSource( - _v, - ), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSplunkHecSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineHttpClientSource( - _v, - ), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSplunkTcpSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineLogstashSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSumoLogicSource(_v), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSocketSource(_v), + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineSyslogNgSource(_v), ); } } diff --git a/src/datadogV2/model/model_observability_pipeline_crowd_strike_next_gen_siem_destination.rs b/src/datadogV2/model/model_observability_pipeline_crowd_strike_next_gen_siem_destination.rs index 60635a355..fb89d4e41 100644 --- a/src/datadogV2/model/model_observability_pipeline_crowd_strike_next_gen_siem_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_crowd_strike_next_gen_siem_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_custom_processor.rs b/src/datadogV2/model/model_observability_pipeline_custom_processor.rs index 93b2ac05e..72e023f2e 100644 --- a/src/datadogV2/model/model_observability_pipeline_custom_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_custom_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `custom_processor` processor transforms events using [Vector Remap Language (VRL)]() scripts with advanced filtering capabilities. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_datadog_agent_source.rs b/src/datadogV2/model/model_observability_pipeline_datadog_agent_source.rs index 7d833c6ca..5be8a43c0 100644 --- a/src/datadogV2/model/model_observability_pipeline_datadog_agent_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_datadog_agent_source.rs @@ -6,7 +6,9 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// The `datadog_agent` source collects logs from the Datadog Agent. +/// The `datadog_agent` source collects logs/metrics from the Datadog Agent. +/// +/// **Supported pipeline types:** logs, metrics #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_datadog_logs_destination.rs b/src/datadogV2/model/model_observability_pipeline_datadog_logs_destination.rs index a6ca36604..473a72a4a 100644 --- a/src/datadogV2/model/model_observability_pipeline_datadog_logs_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_datadog_logs_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `datadog_logs` destination forwards logs to Datadog Log Management. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination.rs b/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination.rs new file mode 100644 index 000000000..3920f1aaa --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination.rs @@ -0,0 +1,128 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The `datadog_metrics` destination forwards metrics to Datadog. +/// +/// **Supported pipeline types:** metrics +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineDatadogMetricsDestination { + /// The unique identifier for this component. + #[serde(rename = "id")] + pub id: String, + /// A list of component IDs whose output is used as the input for this component. + #[serde(rename = "inputs")] + pub inputs: Vec, + /// The destination type. The value should always be `datadog_metrics`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineDatadogMetricsDestinationType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineDatadogMetricsDestination { + pub fn new( + id: String, + inputs: Vec, + type_: crate::datadogV2::model::ObservabilityPipelineDatadogMetricsDestinationType, + ) -> ObservabilityPipelineDatadogMetricsDestination { + ObservabilityPipelineDatadogMetricsDestination { + id, + inputs, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineDatadogMetricsDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineDatadogMetricsDestinationVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineDatadogMetricsDestinationVisitor { + type Value = ObservabilityPipelineDatadogMetricsDestination; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut id: Option = None; + let mut inputs: Option> = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineDatadogMetricsDestinationType, + > = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "inputs" => { + inputs = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ObservabilityPipelineDatadogMetricsDestinationType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let inputs = inputs.ok_or_else(|| M::Error::missing_field("inputs"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineDatadogMetricsDestination { + id, + inputs, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineDatadogMetricsDestinationVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination_type.rs b/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination_type.rs new file mode 100644 index 000000000..c34376f02 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_datadog_metrics_destination_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineDatadogMetricsDestinationType { + DATADOG_METRICS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineDatadogMetricsDestinationType { + fn to_string(&self) -> String { + match self { + Self::DATADOG_METRICS => String::from("datadog_metrics"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineDatadogMetricsDestinationType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineDatadogMetricsDestinationType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "datadog_metrics" => Self::DATADOG_METRICS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_datadog_tags_processor.rs b/src/datadogV2/model/model_observability_pipeline_datadog_tags_processor.rs index fddb1e2d6..c7bb161c7 100644 --- a/src/datadogV2/model/model_observability_pipeline_datadog_tags_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_datadog_tags_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `datadog_tags` processor includes or excludes specific Datadog tags in your logs. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_dedupe_processor.rs b/src/datadogV2/model/model_observability_pipeline_dedupe_processor.rs index 1f9b790a7..d90f30a04 100644 --- a/src/datadogV2/model/model_observability_pipeline_dedupe_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_dedupe_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `dedupe` processor removes duplicate fields in log events. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs index e104a3eac..c22810e74 100644 --- a/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `elasticsearch` destination writes logs to an Elasticsearch cluster. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs b/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs index 62d3b656d..fad061800 100644 --- a/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `enrichment_table` processor enriches logs using a static CSV file or GeoIP database. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_filter_processor.rs b/src/datadogV2/model/model_observability_pipeline_filter_processor.rs index cc8106982..5e9776b7c 100644 --- a/src/datadogV2/model/model_observability_pipeline_filter_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_filter_processor.rs @@ -6,7 +6,9 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// The `filter` processor allows conditional processing of logs based on a Datadog search query. Logs that match the `include` query are passed through; others are discarded. +/// The `filter` processor allows conditional processing of logs/metrics based on a Datadog search query. Logs/metrics that match the `include` query are passed through; others are discarded. +/// +/// **Supported pipeline types:** logs, metrics #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] @@ -20,7 +22,7 @@ pub struct ObservabilityPipelineFilterProcessor { /// 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). #[serde(rename = "id")] pub id: String, - /// 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. + /// A Datadog search query used to determine which logs/metrics should pass through the filter. Logs/metrics that match this query continue to downstream components; others are dropped. #[serde(rename = "include")] pub include: String, /// The processor type. The value should always be `filter`. diff --git a/src/datadogV2/model/model_observability_pipeline_fluent_bit_source.rs b/src/datadogV2/model/model_observability_pipeline_fluent_bit_source.rs index 71dd9a0e3..5329061a2 100644 --- a/src/datadogV2/model/model_observability_pipeline_fluent_bit_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_fluent_bit_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `fluent_bit` source ingests logs from Fluent Bit. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_fluentd_source.rs b/src/datadogV2/model/model_observability_pipeline_fluentd_source.rs index 571cac2f8..fd2ae6793 100644 --- a/src/datadogV2/model/model_observability_pipeline_fluentd_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_fluentd_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `fluentd` source ingests logs from a Fluentd-compatible service. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_generate_metrics_processor.rs b/src/datadogV2/model/model_observability_pipeline_generate_metrics_processor.rs index f0d22a82d..3729c2c64 100644 --- a/src/datadogV2/model/model_observability_pipeline_generate_metrics_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_generate_metrics_processor.rs @@ -8,6 +8,8 @@ use std::fmt::{self, Formatter}; /// The `generate_datadog_metrics` processor creates custom metrics from logs and sends them to Datadog. /// Metrics can be counters, gauges, or distributions and optionally grouped by log fields. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_google_chronicle_destination.rs b/src/datadogV2/model/model_observability_pipeline_google_chronicle_destination.rs index 4c8ec789a..874b87e53 100644 --- a/src/datadogV2/model/model_observability_pipeline_google_chronicle_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_google_chronicle_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `google_chronicle` destination sends logs to Google Chronicle. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_google_cloud_storage_destination.rs b/src/datadogV2/model/model_observability_pipeline_google_cloud_storage_destination.rs index 49e9625d0..b012f8a04 100644 --- a/src/datadogV2/model/model_observability_pipeline_google_cloud_storage_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_google_cloud_storage_destination.rs @@ -8,6 +8,8 @@ use std::fmt::{self, Formatter}; /// The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. /// It requires a bucket name, GCP authentication, and metadata fields. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_google_pub_sub_destination.rs b/src/datadogV2/model/model_observability_pipeline_google_pub_sub_destination.rs index df160077c..5325a694a 100644 --- a/src/datadogV2/model/model_observability_pipeline_google_pub_sub_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_google_pub_sub_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `google_pubsub` destination publishes logs to a Google Cloud Pub/Sub topic. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_google_pub_sub_source.rs b/src/datadogV2/model/model_observability_pipeline_google_pub_sub_source.rs index cc379a73c..02a09149f 100644 --- a/src/datadogV2/model/model_observability_pipeline_google_pub_sub_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_google_pub_sub_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub subscription. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination.rs new file mode 100644 index 000000000..c01730933 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination.rs @@ -0,0 +1,222 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The `http_client` destination sends data to an HTTP endpoint. +/// +/// **Supported pipeline types:** logs, metrics +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineHttpClientDestination { + /// HTTP authentication strategy. + #[serde(rename = "auth_strategy")] + pub auth_strategy: + Option, + /// Compression configuration for HTTP requests. + #[serde(rename = "compression")] + pub compression: + Option, + /// Encoding format for log events. + #[serde(rename = "encoding")] + pub encoding: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationEncoding, + /// The unique identifier for this component. + #[serde(rename = "id")] + pub id: String, + /// A list of component IDs whose output is used as the input for this component. + #[serde(rename = "inputs")] + pub inputs: Vec, + /// Configuration for enabling TLS encryption between the pipeline component and external services. + #[serde(rename = "tls")] + pub tls: Option, + /// The destination type. The value should always be `http_client`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineHttpClientDestination { + pub fn new( + encoding: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationEncoding, + id: String, + inputs: Vec, + type_: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationType, + ) -> ObservabilityPipelineHttpClientDestination { + ObservabilityPipelineHttpClientDestination { + auth_strategy: None, + compression: None, + encoding, + id, + inputs, + tls: None, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn auth_strategy( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationAuthStrategy, + ) -> Self { + self.auth_strategy = Some(value); + self + } + + pub fn compression( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationCompression, + ) -> Self { + self.compression = Some(value); + self + } + + pub fn tls(mut self, value: crate::datadogV2::model::ObservabilityPipelineTls) -> Self { + self.tls = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineHttpClientDestinationVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineHttpClientDestinationVisitor { + type Value = ObservabilityPipelineHttpClientDestination; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut auth_strategy: Option< + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationAuthStrategy, + > = None; + let mut compression: Option< + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationCompression, + > = None; + let mut encoding: Option< + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationEncoding, + > = None; + let mut id: Option = None; + let mut inputs: Option> = None; + let mut tls: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationType, + > = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "auth_strategy" => { + if v.is_null() { + continue; + } + auth_strategy = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _auth_strategy) = auth_strategy { + match _auth_strategy { + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationAuthStrategy::UnparsedObject(_auth_strategy) => { + _unparsed = true; + }, + _ => {} + } + } + } + "compression" => { + if v.is_null() { + continue; + } + compression = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "encoding" => { + encoding = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _encoding) = encoding { + match _encoding { + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationEncoding::UnparsedObject(_encoding) => { + _unparsed = true; + }, + _ => {} + } + } + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "inputs" => { + inputs = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "tls" => { + if v.is_null() { + continue; + } + tls = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let encoding = encoding.ok_or_else(|| M::Error::missing_field("encoding"))?; + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let inputs = inputs.ok_or_else(|| M::Error::missing_field("inputs"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineHttpClientDestination { + auth_strategy, + compression, + encoding, + id, + inputs, + tls, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineHttpClientDestinationVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination_auth_strategy.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination_auth_strategy.rs new file mode 100644 index 000000000..312e3c572 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination_auth_strategy.rs @@ -0,0 +1,51 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineHttpClientDestinationAuthStrategy { + BASIC, + BEARER, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineHttpClientDestinationAuthStrategy { + fn to_string(&self) -> String { + match self { + Self::BASIC => String::from("basic"), + Self::BEARER => String::from("bearer"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineHttpClientDestinationAuthStrategy { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestinationAuthStrategy { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "basic" => Self::BASIC, + "bearer" => Self::BEARER, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression.rs new file mode 100644 index 000000000..2878bca39 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression.rs @@ -0,0 +1,103 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Compression configuration for HTTP requests. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineHttpClientDestinationCompression { + /// Compression algorithm. + #[serde(rename = "algorithm")] + pub algorithm: + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationCompressionAlgorithm, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineHttpClientDestinationCompression { + pub fn new( + algorithm: crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationCompressionAlgorithm, + ) -> ObservabilityPipelineHttpClientDestinationCompression { + ObservabilityPipelineHttpClientDestinationCompression { + algorithm, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestinationCompression { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineHttpClientDestinationCompressionVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineHttpClientDestinationCompressionVisitor { + type Value = ObservabilityPipelineHttpClientDestinationCompression; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut algorithm: Option = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "algorithm" => { + algorithm = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _algorithm) = algorithm { + match _algorithm { + crate::datadogV2::model::ObservabilityPipelineHttpClientDestinationCompressionAlgorithm::UnparsedObject(_algorithm) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let algorithm = algorithm.ok_or_else(|| M::Error::missing_field("algorithm"))?; + + let content = ObservabilityPipelineHttpClientDestinationCompression { + algorithm, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineHttpClientDestinationCompressionVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression_algorithm.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression_algorithm.rs new file mode 100644 index 000000000..e4ce44939 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination_compression_algorithm.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineHttpClientDestinationCompressionAlgorithm { + GZIP, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineHttpClientDestinationCompressionAlgorithm { + fn to_string(&self) -> String { + match self { + Self::GZIP => String::from("gzip"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineHttpClientDestinationCompressionAlgorithm { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestinationCompressionAlgorithm { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "gzip" => Self::GZIP, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination_encoding.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination_encoding.rs new file mode 100644 index 000000000..5d076c652 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination_encoding.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineHttpClientDestinationEncoding { + JSON, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineHttpClientDestinationEncoding { + fn to_string(&self) -> String { + match self { + Self::JSON => String::from("json"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineHttpClientDestinationEncoding { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestinationEncoding { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "json" => Self::JSON, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_destination_type.rs b/src/datadogV2/model/model_observability_pipeline_http_client_destination_type.rs new file mode 100644 index 000000000..4c37fd815 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_http_client_destination_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineHttpClientDestinationType { + HTTP_CLIENT, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineHttpClientDestinationType { + fn to_string(&self) -> String { + match self { + Self::HTTP_CLIENT => String::from("http_client"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineHttpClientDestinationType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineHttpClientDestinationType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "http_client" => Self::HTTP_CLIENT, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_http_client_source.rs b/src/datadogV2/model/model_observability_pipeline_http_client_source.rs index 8e1814981..cc45c5448 100644 --- a/src/datadogV2/model/model_observability_pipeline_http_client_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_http_client_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `http_client` source scrapes logs from HTTP endpoints at regular intervals. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_http_server_source.rs b/src/datadogV2/model/model_observability_pipeline_http_server_source.rs index 0ccc5729a..612ec34be 100644 --- a/src/datadogV2/model/model_observability_pipeline_http_server_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_http_server_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `http_server` source collects logs over HTTP POST from external services. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_source.rs b/src/datadogV2/model/model_observability_pipeline_kafka_source.rs index a2cb75f12..a6ccdbbba 100644 --- a/src/datadogV2/model/model_observability_pipeline_kafka_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_kafka_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `kafka` source ingests data from Apache Kafka topics. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_logstash_source.rs b/src/datadogV2/model/model_observability_pipeline_logstash_source.rs index 94a6f8ec4..674f37e2c 100644 --- a/src/datadogV2/model/model_observability_pipeline_logstash_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_logstash_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `logstash` source ingests logs from a Logstash forwarder. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_metric_tags_processor.rs b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor.rs new file mode 100644 index 000000000..f943aa7b0 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor.rs @@ -0,0 +1,152 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// The `metric_tags` processor filters metrics based on their tags using Datadog tag key patterns. +/// +/// **Supported pipeline types:** metrics +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineMetricTagsProcessor { + /// Whether this processor is enabled. + #[serde(rename = "enabled")] + pub enabled: bool, + /// 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). + #[serde(rename = "id")] + pub id: String, + /// A Datadog search query used to determine which metrics this processor targets. + #[serde(rename = "include")] + pub include: String, + /// A list of rules for filtering metric tags. + #[serde(rename = "rules")] + pub rules: Vec, + /// The processor type. The value should always be `metric_tags`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineMetricTagsProcessor { + pub fn new( + enabled: bool, + id: String, + include: String, + rules: Vec, + type_: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorType, + ) -> ObservabilityPipelineMetricTagsProcessor { + ObservabilityPipelineMetricTagsProcessor { + enabled, + id, + include, + rules, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineMetricTagsProcessor { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineMetricTagsProcessorVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineMetricTagsProcessorVisitor { + type Value = ObservabilityPipelineMetricTagsProcessor; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut enabled: Option = None; + let mut id: Option = None; + let mut include: Option = None; + let mut rules: Option< + Vec, + > = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorType, + > = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "enabled" => { + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "include" => { + include = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rules" => { + rules = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let enabled = enabled.ok_or_else(|| M::Error::missing_field("enabled"))?; + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let include = include.ok_or_else(|| M::Error::missing_field("include"))?; + let rules = rules.ok_or_else(|| M::Error::missing_field("rules"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineMetricTagsProcessor { + enabled, + id, + include, + rules, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineMetricTagsProcessorVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule.rs b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule.rs new file mode 100644 index 000000000..2f90dae78 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule.rs @@ -0,0 +1,136 @@ +// 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 2019-Present Datadog, Inc. +use serde::de::{Error, MapAccess, Visitor}; +use serde::{Deserialize, Deserializer, Serialize}; +use serde_with::skip_serializing_none; +use std::fmt::{self, Formatter}; + +/// Defines a rule for filtering metric tags based on key patterns. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineMetricTagsProcessorRule { + /// The action to take on tags with matching keys. + #[serde(rename = "action")] + pub action: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleAction, + /// A list of tag keys to include or exclude. + #[serde(rename = "keys")] + pub keys: Vec, + /// The processing mode for tag filtering. + #[serde(rename = "mode")] + pub mode: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleMode, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineMetricTagsProcessorRule { + pub fn new( + action: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleAction, + keys: Vec, + mode: crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleMode, + ) -> ObservabilityPipelineMetricTagsProcessorRule { + ObservabilityPipelineMetricTagsProcessorRule { + action, + keys, + mode, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineMetricTagsProcessorRule { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineMetricTagsProcessorRuleVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineMetricTagsProcessorRuleVisitor { + type Value = ObservabilityPipelineMetricTagsProcessorRule; + + fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { + f.write_str("a mapping") + } + + fn visit_map(self, mut map: M) -> Result + where + M: MapAccess<'a>, + { + let mut action: Option< + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleAction, + > = None; + let mut keys: Option> = None; + let mut mode: Option< + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleMode, + > = None; + let mut additional_properties: std::collections::BTreeMap< + String, + serde_json::Value, + > = std::collections::BTreeMap::new(); + let mut _unparsed = false; + + while let Some((k, v)) = map.next_entry::()? { + match k.as_str() { + "action" => { + action = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _action) = action { + match _action { + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleAction::UnparsedObject(_action) => { + _unparsed = true; + }, + _ => {} + } + } + } + "keys" => { + keys = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "mode" => { + mode = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _mode) = mode { + match _mode { + crate::datadogV2::model::ObservabilityPipelineMetricTagsProcessorRuleMode::UnparsedObject(_mode) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let action = action.ok_or_else(|| M::Error::missing_field("action"))?; + let keys = keys.ok_or_else(|| M::Error::missing_field("keys"))?; + let mode = mode.ok_or_else(|| M::Error::missing_field("mode"))?; + + let content = ObservabilityPipelineMetricTagsProcessorRule { + action, + keys, + mode, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineMetricTagsProcessorRuleVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_action.rs b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_action.rs new file mode 100644 index 000000000..dd6ebc36f --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_action.rs @@ -0,0 +1,51 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineMetricTagsProcessorRuleAction { + INCLUDE, + EXCLUDE, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineMetricTagsProcessorRuleAction { + fn to_string(&self) -> String { + match self { + Self::INCLUDE => String::from("include"), + Self::EXCLUDE => String::from("exclude"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineMetricTagsProcessorRuleAction { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineMetricTagsProcessorRuleAction { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "include" => Self::INCLUDE, + "exclude" => Self::EXCLUDE, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_mode.rs b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_mode.rs new file mode 100644 index 000000000..15c7f6743 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_rule_mode.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineMetricTagsProcessorRuleMode { + FILTER, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineMetricTagsProcessorRuleMode { + fn to_string(&self) -> String { + match self { + Self::FILTER => String::from("filter"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineMetricTagsProcessorRuleMode { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineMetricTagsProcessorRuleMode { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "filter" => Self::FILTER, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_type.rs b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_type.rs new file mode 100644 index 000000000..2a71fd8c6 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_metric_tags_processor_type.rs @@ -0,0 +1,48 @@ +// 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 2019-Present Datadog, Inc. + +use serde::{Deserialize, Deserializer, Serialize, Serializer}; + +#[non_exhaustive] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum ObservabilityPipelineMetricTagsProcessorType { + METRIC_TAGS, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineMetricTagsProcessorType { + fn to_string(&self) -> String { + match self { + Self::METRIC_TAGS => String::from("metric_tags"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineMetricTagsProcessorType { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Self::UnparsedObject(v) => v.serialize(serializer), + _ => serializer.serialize_str(self.to_string().as_str()), + } + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineMetricTagsProcessorType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "metric_tags" => Self::METRIC_TAGS, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_new_relic_destination.rs b/src/datadogV2/model/model_observability_pipeline_new_relic_destination.rs index 954143c2e..f3039013f 100644 --- a/src/datadogV2/model/model_observability_pipeline_new_relic_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_new_relic_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `new_relic` destination sends logs to the New Relic platform. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_ocsf_mapper_processor.rs b/src/datadogV2/model/model_observability_pipeline_ocsf_mapper_processor.rs index 75b6ed6ec..c97b2a2d6 100644 --- a/src/datadogV2/model/model_observability_pipeline_ocsf_mapper_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_ocsf_mapper_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `ocsf_mapper` processor transforms logs into the OCSF schema using a predefined mapping configuration. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_open_search_destination.rs b/src/datadogV2/model/model_observability_pipeline_open_search_destination.rs index 063cc4913..8ac34c092 100644 --- a/src/datadogV2/model/model_observability_pipeline_open_search_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_open_search_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `opensearch` destination writes logs to an OpenSearch cluster. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_parse_grok_processor.rs b/src/datadogV2/model/model_observability_pipeline_parse_grok_processor.rs index ed1128b4c..f7e0bf9f0 100644 --- a/src/datadogV2/model/model_observability_pipeline_parse_grok_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_parse_grok_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `parse_grok` processor extracts structured fields from unstructured log messages using Grok patterns. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_parse_json_processor.rs b/src/datadogV2/model/model_observability_pipeline_parse_json_processor.rs index 8c879c95f..41c064500 100644 --- a/src/datadogV2/model/model_observability_pipeline_parse_json_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_parse_json_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `parse_json` processor extracts JSON from a specified field and flattens it into the event. This is useful when logs contain embedded JSON as a string. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_quota_processor.rs b/src/datadogV2/model/model_observability_pipeline_quota_processor.rs index 9dd257574..595c16692 100644 --- a/src/datadogV2/model/model_observability_pipeline_quota_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_quota_processor.rs @@ -6,7 +6,9 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. +/// The `quota` processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor can drop or alert. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_reduce_processor.rs b/src/datadogV2/model/model_observability_pipeline_reduce_processor.rs index fdbfc2fce..65de7bf00 100644 --- a/src/datadogV2/model/model_observability_pipeline_reduce_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_reduce_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `reduce` processor aggregates and merges logs based on matching keys and merge strategies. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_remove_fields_processor.rs b/src/datadogV2/model/model_observability_pipeline_remove_fields_processor.rs index 96849e9c5..7e2d303db 100644 --- a/src/datadogV2/model/model_observability_pipeline_remove_fields_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_remove_fields_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `remove_fields` processor deletes specified fields from logs. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_rename_fields_processor.rs b/src/datadogV2/model/model_observability_pipeline_rename_fields_processor.rs index 9fe3fea24..cb136ec0a 100644 --- a/src/datadogV2/model/model_observability_pipeline_rename_fields_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_rename_fields_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `rename_fields` processor changes field names. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_rsyslog_destination.rs b/src/datadogV2/model/model_observability_pipeline_rsyslog_destination.rs index 639b30eb5..0accf2209 100644 --- a/src/datadogV2/model/model_observability_pipeline_rsyslog_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_rsyslog_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `rsyslog` destination forwards logs to an external `rsyslog` server over TCP or UDP using the syslog protocol. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_rsyslog_source.rs b/src/datadogV2/model/model_observability_pipeline_rsyslog_source.rs index 0d812b1e7..ebb629082 100644 --- a/src/datadogV2/model/model_observability_pipeline_rsyslog_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_rsyslog_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `rsyslog` source listens for logs over TCP or UDP from an `rsyslog` server using the syslog protocol. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_sample_processor.rs b/src/datadogV2/model/model_observability_pipeline_sample_processor.rs index 52a0cd33b..0c078e6e8 100644 --- a/src/datadogV2/model/model_observability_pipeline_sample_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_sample_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `sample` processor allows probabilistic sampling of logs at a fixed rate. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor.rs b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor.rs index 1e63b3112..bc1bbc57f 100644 --- a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `sensitive_data_scanner` processor detects and optionally redacts sensitive data in log events. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_sentinel_one_destination.rs b/src/datadogV2/model/model_observability_pipeline_sentinel_one_destination.rs index fdc03a0f9..0c87d0dc7 100644 --- a/src/datadogV2/model/model_observability_pipeline_sentinel_one_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_sentinel_one_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `sentinel_one` destination sends logs to SentinelOne. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_socket_destination.rs b/src/datadogV2/model/model_observability_pipeline_socket_destination.rs index 87e1d6b93..7caf87093 100644 --- a/src/datadogV2/model/model_observability_pipeline_socket_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_socket_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `socket` destination sends logs over TCP or UDP to a remote server. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_socket_source.rs b/src/datadogV2/model/model_observability_pipeline_socket_source.rs index 1f9ea4632..0ab4212b0 100644 --- a/src/datadogV2/model/model_observability_pipeline_socket_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_socket_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `socket` source ingests logs over TCP or UDP. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_splunk_hec_destination.rs b/src/datadogV2/model/model_observability_pipeline_splunk_hec_destination.rs index 0571bee3b..b82270bae 100644 --- a/src/datadogV2/model/model_observability_pipeline_splunk_hec_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_splunk_hec_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `splunk_hec` destination forwards logs to Splunk using the HTTP Event Collector (HEC). +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_splunk_hec_source.rs b/src/datadogV2/model/model_observability_pipeline_splunk_hec_source.rs index b71d16136..0d3eff0d9 100644 --- a/src/datadogV2/model/model_observability_pipeline_splunk_hec_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_splunk_hec_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `splunk_hec` source implements the Splunk HTTP Event Collector (HEC) API. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_splunk_tcp_source.rs b/src/datadogV2/model/model_observability_pipeline_splunk_tcp_source.rs index 090d57f85..a8fc9dd27 100644 --- a/src/datadogV2/model/model_observability_pipeline_splunk_tcp_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_splunk_tcp_source.rs @@ -8,6 +8,8 @@ use std::fmt::{self, Formatter}; /// The `splunk_tcp` source receives logs from a Splunk Universal Forwarder over TCP. /// TLS is supported for secure transmission. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_sumo_logic_destination.rs b/src/datadogV2/model/model_observability_pipeline_sumo_logic_destination.rs index 2a6758c9d..27d34d37c 100644 --- a/src/datadogV2/model/model_observability_pipeline_sumo_logic_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_sumo_logic_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `sumo_logic` destination forwards logs to Sumo Logic. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_sumo_logic_source.rs b/src/datadogV2/model/model_observability_pipeline_sumo_logic_source.rs index 2b144f4a2..519355aea 100644 --- a/src/datadogV2/model/model_observability_pipeline_sumo_logic_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_sumo_logic_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `sumo_logic` source receives logs from Sumo Logic collectors. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_syslog_ng_destination.rs b/src/datadogV2/model/model_observability_pipeline_syslog_ng_destination.rs index 21eb01357..45bd29260 100644 --- a/src/datadogV2/model/model_observability_pipeline_syslog_ng_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_syslog_ng_destination.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `syslog_ng` destination forwards logs to an external `syslog-ng` server over TCP or UDP using the syslog protocol. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_syslog_ng_source.rs b/src/datadogV2/model/model_observability_pipeline_syslog_ng_source.rs index 6f4e3e853..b5961df7a 100644 --- a/src/datadogV2/model/model_observability_pipeline_syslog_ng_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_syslog_ng_source.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `syslog_ng` source listens for logs over TCP or UDP from a `syslog-ng` server using the syslog protocol. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/src/datadogV2/model/model_observability_pipeline_throttle_processor.rs b/src/datadogV2/model/model_observability_pipeline_throttle_processor.rs index 001c94bca..3baaba502 100644 --- a/src/datadogV2/model/model_observability_pipeline_throttle_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_throttle_processor.rs @@ -7,6 +7,8 @@ use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; /// The `throttle` processor limits the number of events that pass through over a given time window. +/// +/// **Supported pipeline types:** logs #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] diff --git a/tests/scenarios/features/v2/observability_pipelines.feature b/tests/scenarios/features/v2/observability_pipelines.feature index c43fa8b3b..a9b17ec7f 100644 --- a/tests/scenarios/features/v2/observability_pipelines.feature +++ b/tests/scenarios/features/v2/observability_pipelines.feature @@ -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": [{"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"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}], "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"}], "pipeline_type": "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"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}], "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 @@ -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": [{"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"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}], "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"}], "pipeline_type": "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"}, {"enabled": true, "field": "message", "id": "json-processor", "include": "*", "type": "parse_json"}]}], "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