diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index d2192b748..dbe6ebb4c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -35178,6 +35178,43 @@ components: type: string x-enum-varnames: - ADD_FIELDS + ObservabilityPipelineAddHostnameProcessor: + description: The `add_hostname` processor adds the hostname to log events. + properties: + display_name: + $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' + 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: add-hostname-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: service:my-service + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineAddHostnameProcessorType' + required: + - id + - type + - include + - enabled + type: object + ObservabilityPipelineAddHostnameProcessorType: + default: add_hostname + description: The processor type. The value should always be `add_hostname`. + enum: + - add_hostname + example: add_hostname + type: string + x-enum-varnames: + - ADD_HOSTNAME ObservabilityPipelineAmazonDataFirehoseSource: description: The `amazon_data_firehose` source ingests logs from AWS Data Firehose. properties: @@ -35455,6 +35492,37 @@ components: role session. type: string type: object + ObservabilityPipelineCloudPremDestination: + description: The `cloud_prem` destination sends logs to Datadog CloudPrem. + properties: + id: + description: The unique identifier for this component. + example: cloud-prem-destination + type: string + inputs: + description: A list of component IDs whose output is used as the `input` + for this component. + example: + - filter-processor + items: + type: string + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineCloudPremDestinationType' + required: + - id + - type + - inputs + type: object + ObservabilityPipelineCloudPremDestinationType: + default: cloud_prem + description: The destination type. The value should always be `cloud_prem`. + enum: + - cloud_prem + example: cloud_prem + type: string + x-enum-varnames: + - CLOUD_PREM ObservabilityPipelineComponentDisplayName: description: The display name for a component. example: my component @@ -35473,7 +35541,7 @@ components: items: $ref: '#/components/schemas/ObservabilityPipelineConfigDestinationItem' type: array - processors: + processor_groups: description: A list of processor groups that transform or enrich log data. example: - enabled: true @@ -35510,6 +35578,7 @@ components: description: A destination for the pipeline. oneOf: - $ref: '#/components/schemas/ObservabilityPipelineDatadogLogsDestination' + - $ref: '#/components/schemas/ObservabilityPipelineCloudPremDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonS3Destination' - $ref: '#/components/schemas/ObservabilityPipelineGoogleCloudStorageDestination' - $ref: '#/components/schemas/ObservabilityPipelineSplunkHecDestination' @@ -35528,6 +35597,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination' - $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination' - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestination' + - $ref: '#/components/schemas/ObservabilityPipelineKafkaDestination' ObservabilityPipelineConfigProcessorGroup: description: A group of processors. example: @@ -35600,24 +35670,27 @@ components: ObservabilityPipelineConfigProcessorItem: description: A processor for the pipeline. oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineAddEnvVarsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineAddFieldsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineAddHostnameProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineCustomProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineDedupeProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor' - $ref: '#/components/schemas/ObservabilityPipelineFilterProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineGenerateMetricsProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineOcsfMapperProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineParseGrokProcessor' - $ref: '#/components/schemas/ObservabilityPipelineParseJSONProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineParseXMLProcessor' - $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/ObservabilityPipelineSplitArrayProcessor' - $ref: '#/components/schemas/ObservabilityPipelineThrottleProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineCustomProcessor' - - $ref: '#/components/schemas/ObservabilityPipelineDatadogTagsProcessor' ObservabilityPipelineConfigSourceItem: description: A data source for the pipeline. oneOf: @@ -35637,6 +35710,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineHttpClientSource' - $ref: '#/components/schemas/ObservabilityPipelineLogstashSource' - $ref: '#/components/schemas/ObservabilityPipelineSocketSource' + - $ref: '#/components/schemas/ObservabilityPipelineOpentelemetrySource' ObservabilityPipelineCrowdStrikeNextGenSiemDestination: description: The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike Next Gen SIEM. @@ -36030,6 +36104,8 @@ components: description: The index to write logs to in Elasticsearch. example: logs-index type: string + data_stream: + $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream' id: description: The unique identifier for this component. example: elasticsearch-destination @@ -36063,6 +36139,23 @@ components: - V6 - V7 - V8 + ObservabilityPipelineElasticsearchDestinationDataStream: + description: Configuration options for writing to Elasticsearch Data Streams + instead of a fixed index. + properties: + dataset: + description: The data stream dataset for your logs. This groups logs by + their source or application. + type: string + dtype: + description: The data stream type for your logs. This determines how logs + are categorized within the data stream. + type: string + namespace: + description: The data stream namespace for your logs. This separates logs + into different environments or domains. + type: string + type: object ObservabilityPipelineElasticsearchDestinationType: default: elasticsearch description: The destination type. The value should always be `elasticsearch`. @@ -36203,7 +36296,8 @@ components: type: object ObservabilityPipelineEnrichmentTableProcessor: description: The `enrichment_table` processor enriches logs using a static CSV - file or GeoIP database. + file, GeoIP database, or reference table. Exactly one of `file`, `geoip`, + or `reference_table` must be configured. properties: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' @@ -36224,6 +36318,8 @@ components: targets. example: source:my-source type: string + reference_table: + $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableReferenceTable' target: description: Path where enrichment results should be stored in the log. example: enriched.geoip @@ -36246,6 +36342,28 @@ components: type: string x-enum-varnames: - ENRICHMENT_TABLE + ObservabilityPipelineEnrichmentTableReferenceTable: + description: Uses a Datadog reference table to enrich logs. + properties: + columns: + description: List of column names to include from the reference table. If + not provided, all columns are included. + items: + type: string + type: array + key_field: + description: Path to the field in the log event to match against the reference + table. + example: log.user.id + type: string + table_id: + description: The unique identifier of the reference table. + example: 550e8400-e29b-41d4-a716-446655440000 + type: string + required: + - key_field + - table_id + type: object ObservabilityPipelineFieldValue: description: Represents a static key-value pair used in various processors. properties: @@ -36826,6 +36944,151 @@ components: type: string x-enum-varnames: - HTTP_SERVER + ObservabilityPipelineKafkaDestination: + description: The `kafka` destination sends logs to Apache Kafka topics. + properties: + compression: + $ref: '#/components/schemas/ObservabilityPipelineKafkaDestinationCompression' + encoding: + $ref: '#/components/schemas/ObservabilityPipelineKafkaDestinationEncoding' + headers_key: + description: The field name to use for Kafka message headers. + example: headers + type: string + id: + description: The unique identifier for this component. + example: kafka-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 + key_field: + description: The field name to use as the Kafka message key. + example: message_id + type: string + librdkafka_options: + description: Optional list of advanced Kafka producer configuration options, + defined as key-value pairs. + items: + $ref: '#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption' + type: array + message_timeout_ms: + description: Maximum time in milliseconds to wait for message delivery confirmation. + example: 300000 + format: int64 + minimum: 1 + type: integer + rate_limit_duration_secs: + description: Duration in seconds for the rate limit window. + example: 1 + format: int64 + minimum: 1 + type: integer + rate_limit_num: + description: Maximum number of messages allowed per rate limit duration. + example: 1000 + format: int64 + minimum: 1 + type: integer + sasl: + $ref: '#/components/schemas/ObservabilityPipelineKafkaSasl' + socket_timeout_ms: + description: Socket timeout in milliseconds for network requests. + example: 60000 + format: int64 + maximum: 300000 + minimum: 10 + type: integer + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + topic: + description: The Kafka topic name to publish logs to. + example: logs-topic + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineKafkaDestinationType' + required: + - id + - type + - inputs + - topic + - encoding + type: object + ObservabilityPipelineKafkaDestinationCompression: + description: Compression codec for Kafka messages. + enum: + - none + - gzip + - snappy + - lz4 + - zstd + example: gzip + type: string + x-enum-varnames: + - NONE + - GZIP + - SNAPPY + - LZ4 + - ZSTD + ObservabilityPipelineKafkaDestinationEncoding: + description: Encoding format for log events. + enum: + - json + - raw_message + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineKafkaDestinationType: + default: kafka + description: The destination type. The value should always be `kafka`. + enum: + - kafka + example: kafka + type: string + x-enum-varnames: + - KAFKA + ObservabilityPipelineKafkaLibrdkafkaOption: + description: Represents a key-value pair used to configure low-level `librdkafka` + client options for Kafka source and destination, such as timeouts, buffer + sizes, and security settings. + properties: + name: + description: The name of the `librdkafka` configuration option to set. + example: fetch.message.max.bytes + type: string + value: + description: The value assigned to the specified `librdkafka` configuration + option. + example: '1048576' + type: string + required: + - name + - value + type: object + ObservabilityPipelineKafkaSasl: + description: Specifies the SASL mechanism for authenticating with a Kafka cluster. + properties: + mechanism: + $ref: '#/components/schemas/ObservabilityPipelineKafkaSaslMechanism' + type: object + ObservabilityPipelineKafkaSaslMechanism: + description: SASL mechanism used for Kafka authentication. + enum: + - PLAIN + - SCRAM-SHA-256 + - SCRAM-SHA-512 + type: string + x-enum-varnames: + - PLAIN + - SCRAMNOT_SHANOT_256 + - SCRAMNOT_SHANOT_512 ObservabilityPipelineKafkaSource: description: The `kafka` source ingests data from Apache Kafka topics. properties: @@ -36843,10 +37106,10 @@ components: description: Optional list of advanced Kafka client configuration options, defined as key-value pairs. items: - $ref: '#/components/schemas/ObservabilityPipelineKafkaSourceLibrdkafkaOption' + $ref: '#/components/schemas/ObservabilityPipelineKafkaLibrdkafkaOption' type: array sasl: - $ref: '#/components/schemas/ObservabilityPipelineKafkaSourceSasl' + $ref: '#/components/schemas/ObservabilityPipelineKafkaSasl' tls: $ref: '#/components/schemas/ObservabilityPipelineTls' topics: @@ -36866,30 +37129,6 @@ components: - group_id - topics type: object - 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 - settings. - properties: - name: - description: The name of the `librdkafka` configuration option to set. - example: fetch.message.max.bytes - type: string - value: - description: The value assigned to the specified `librdkafka` configuration - option. - example: '1048576' - type: string - required: - - name - - value - type: object - ObservabilityPipelineKafkaSourceSasl: - description: Specifies the SASL mechanism for authenticating with a Kafka cluster. - properties: - mechanism: - $ref: '#/components/schemas/ObservabilityPipelinePipelineKafkaSourceSaslMechanism' - type: object ObservabilityPipelineKafkaSourceType: default: kafka description: The source type. The value should always be `kafka`. @@ -37116,6 +37355,45 @@ components: type: string x-enum-varnames: - OPENSEARCH + ObservabilityPipelineOpentelemetrySource: + description: The `opentelemetry` source receives telemetry data using the OpenTelemetry + Protocol (OTLP) over gRPC and HTTP. + properties: + grpc_address_key: + description: Environment variable name containing the gRPC server address + for receiving OTLP data. Must be a valid environment variable name (alphanumeric + characters and underscores only). + example: OTEL_GRPC_ADDRESS + type: string + http_address_key: + description: Environment variable name containing the HTTP server address + for receiving OTLP data. Must be a valid environment variable name (alphanumeric + characters and underscores only). + example: OTEL_HTTP_ADDRESS + type: string + id: + description: The unique identifier for this component. Used to reference + this component in other parts of the pipeline (e.g., as input to downstream + components). + example: opentelemetry-source + type: string + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + type: + $ref: '#/components/schemas/ObservabilityPipelineOpentelemetrySourceType' + required: + - id + - type + type: object + ObservabilityPipelineOpentelemetrySourceType: + default: opentelemetry + description: The source type. The value should always be `opentelemetry`. + enum: + - opentelemetry + example: opentelemetry + type: string + x-enum-varnames: + - OPENTELEMETRY ObservabilityPipelineParseGrokProcessor: description: The `parse_grok` processor extracts structured fields from unstructured log messages using Grok patterns. @@ -37279,17 +37557,72 @@ components: type: string x-enum-varnames: - PARSE_JSON - ObservabilityPipelinePipelineKafkaSourceSaslMechanism: - description: SASL mechanism used for Kafka authentication. + ObservabilityPipelineParseXMLProcessor: + description: The `parse_xml` processor parses XML from a specified field and + extracts it into the event. + properties: + always_use_text_key: + description: Whether to always use a text key for element content. + type: boolean + attr_prefix: + description: The prefix to use for XML attributes in the parsed output. + type: string + display_name: + $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' + enabled: + description: Whether this processor is enabled. + example: true + type: boolean + field: + description: The name of the log field that contains an XML string. + example: message + type: string + 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: parse-xml-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. + example: service:my-service + type: string + include_attr: + description: Whether to include XML attributes in the parsed output. + type: boolean + parse_bool: + description: Whether to parse boolean values from strings. + type: boolean + parse_null: + description: Whether to parse null values. + type: boolean + parse_number: + description: Whether to parse numeric values from strings. + type: boolean + text_key: + description: The key name to use for text content within XML elements. Must + be at least 1 character if specified. + minLength: 1 + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineParseXMLProcessorType' + required: + - id + - type + - include + - field + - enabled + type: object + ObservabilityPipelineParseXMLProcessorType: + default: parse_xml + description: The processor type. The value should always be `parse_xml`. enum: - - PLAIN - - SCRAM-SHA-256 - - SCRAM-SHA-512 + - parse_xml + example: parse_xml type: string x-enum-varnames: - - PLAIN - - SCRAMNOT_SHANOT_256 - - SCRAMNOT_SHANOT_512 + - PARSE_XML ObservabilityPipelineQuotaProcessor: description: The Quota Processor measures logging traffic for logs that match a specified filter. When the configured daily quota is met, the processor @@ -37298,9 +37631,10 @@ components: display_name: $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' drop_events: - description: If set to `true`, logs that matched the quota filter and sent - after the quota has been met are dropped; only logs that did not match - the filter query continue through the pipeline. + description: 'If set to `true`, logs that match the quota filter and are + sent after the quota is exceeded are dropped. Logs that do not match the + filter continue through the pipeline. **Note**: You can set either `drop_events` + or `overflow_action`, but not both.' example: false type: boolean enabled: @@ -37344,6 +37678,8 @@ components: items: type: string type: array + too_many_buckets_action: + $ref: '#/components/schemas/ObservabilityPipelineQuotaProcessorOverflowAction' type: $ref: '#/components/schemas/ObservabilityPipelineQuotaProcessorType' required: @@ -37381,7 +37717,8 @@ components: - BYTES - EVENTS ObservabilityPipelineQuotaProcessorOverflowAction: - description: 'The action to take when the quota is exceeded. Options: + description: 'The action to take when the quota or bucket limit is exceeded. + Options: - `drop`: Drop the event. @@ -37711,6 +38048,16 @@ components: description: Whether this processor is enabled. example: true type: boolean + group_by: + description: Optional list of fields to group events by. Each group is sampled + independently. + example: + - service + - host + items: + type: string + minItems: 1 + type: array id: description: The unique identifier for this component. Used to reference this component in other parts of the pipeline (for example, as the `input` @@ -37727,18 +38074,13 @@ components: example: 10.0 format: double type: number - rate: - description: Number of events to sample (1 in N). - example: 10 - format: int64 - minimum: 1 - type: integer type: $ref: '#/components/schemas/ObservabilityPipelineSampleProcessorType' required: - id - type - include + - percentage - enabled type: object ObservabilityPipelineSampleProcessorType: @@ -37907,6 +38249,11 @@ components: ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions: description: Options for defining a custom regex pattern. properties: + description: + description: Human-readable description providing context about a sensitive + data scanner rule + example: "Custom regex for internal API\u202Fkeys" + type: string rule: description: A regular expression used to detect sensitive values. Must be a valid regex. @@ -37962,6 +38309,11 @@ components: description: Options for selecting a predefined library pattern and enabling keyword support. properties: + description: + description: Human-readable description providing context about a sensitive + data scanner rule + example: Credit card pattern + type: string id: description: Identifier for a predefined pattern from the sensitive data scanner pattern library. @@ -38442,6 +38794,68 @@ components: - type - attributes type: object + ObservabilityPipelineSplitArrayProcessor: + description: The `split_array` processor splits array fields into separate events + based on configured rules. + properties: + arrays: + description: A list of array split configurations. + items: + $ref: '#/components/schemas/ObservabilityPipelineSplitArrayProcessorArrayConfig' + maxItems: 15 + minItems: 1 + type: array + display_name: + $ref: '#/components/schemas/ObservabilityPipelineComponentDisplayName' + 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: split-array-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. For split_array, this should typically be `*`. + example: '*' + type: string + type: + $ref: '#/components/schemas/ObservabilityPipelineSplitArrayProcessorType' + required: + - id + - type + - include + - arrays + - enabled + type: object + ObservabilityPipelineSplitArrayProcessorArrayConfig: + description: Configuration for a single array split operation. + properties: + field: + description: The path to the array field to split. + example: tags + type: string + include: + description: A Datadog search query used to determine which logs this array + split operation targets. + example: '*' + type: string + required: + - include + - field + type: object + ObservabilityPipelineSplitArrayProcessorType: + default: split_array + description: The processor type. The value should always be `split_array`. + enum: + - split_array + example: split_array + type: string + x-enum-varnames: + - SPLIT_ARRAY ObservabilityPipelineSplunkHecDestination: description: The `splunk_hec` destination forwards logs to Splunk using the HTTP Event Collector (HEC). @@ -75879,6 +76293,103 @@ paths: summary: Get all aggregated DNS traffic tags: - Cloud Network Monitoring + /api/v2/obs-pipelines/pipelines: + get: + description: Retrieve a list of pipelines. + operationId: ListPipelines + parameters: + - $ref: '#/components/parameters/PageSize' + - $ref: '#/components/parameters/PageNumber' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListPipelinesResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List pipelines + tags: + - Observability Pipelines + x-permission: + operator: OR + permissions: + - observability_pipelines_read + x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) + to request access.' + post: + description: Create a new pipeline. + operationId: CreatePipeline + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityPipelineSpec' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityPipeline' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '409': + $ref: '#/components/responses/ConflictResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a new pipeline + tags: + - Observability Pipelines + x-permission: + operator: OR + permissions: + - observability_pipelines_deploy + x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) + to request access.' + /api/v2/obs-pipelines/pipelines/validate: + post: + description: 'Validates a pipeline configuration without creating or updating + any resources. + + Returns a list of validation errors, if any.' + operationId: ValidatePipeline + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ObservabilityPipelineSpec' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/NotAuthorizedResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Validate an observability pipeline + tags: + - Observability Pipelines + x-permission: + operator: OR + permissions: + - observability_pipelines_read + x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) + to request access.' /api/v2/on-call/escalation-policies: post: description: Create a new On-Call escalation policy @@ -79313,103 +79824,6 @@ paths: tags: - CSM Threats x-codegen-request-body-name: body - /api/v2/remote_config/products/obs_pipelines/pipelines: - get: - description: Retrieve a list of pipelines. - operationId: ListPipelines - parameters: - - $ref: '#/components/parameters/PageSize' - - $ref: '#/components/parameters/PageNumber' - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ListPipelinesResponse' - description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' - '403': - $ref: '#/components/responses/NotAuthorizedResponse' - '429': - $ref: '#/components/responses/TooManyRequestsResponse' - summary: List pipelines - tags: - - Observability Pipelines - x-permission: - operator: OR - permissions: - - observability_pipelines_read - x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) - to request access.' - post: - description: Create a new pipeline. - operationId: CreatePipeline - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityPipelineSpec' - required: true - responses: - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityPipeline' - description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' - '403': - $ref: '#/components/responses/NotAuthorizedResponse' - '409': - $ref: '#/components/responses/ConflictResponse' - '429': - $ref: '#/components/responses/TooManyRequestsResponse' - summary: Create a new pipeline - tags: - - Observability Pipelines - x-permission: - operator: OR - permissions: - - observability_pipelines_deploy - x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) - to request access.' - /api/v2/remote_config/products/obs_pipelines/pipelines/validate: - post: - description: 'Validates a pipeline configuration without creating or updating - any resources. - - Returns a list of validation errors, if any.' - operationId: ValidatePipeline - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ObservabilityPipelineSpec' - required: true - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/ValidationResponse' - description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' - '403': - $ref: '#/components/responses/NotAuthorizedResponse' - '429': - $ref: '#/components/responses/TooManyRequestsResponse' - summary: Validate an observability pipeline - tags: - - Observability Pipelines - x-permission: - operator: OR - permissions: - - observability_pipelines_read - x-unstable: '**Note**: This endpoint is in Preview. Fill out this [form](https://www.datadoghq.com/product-preview/observability-pipelines-api-and-terraform-support/) - to request access.' /api/v2/remote_config/products/obs_pipelines/pipelines/{pipeline_id}: delete: description: Delete a pipeline. diff --git a/examples/v2_observability-pipelines_CreatePipeline.rs b/examples/v2_observability-pipelines_CreatePipeline.rs index 20e2a2c49..4b7f52d5f 100644 --- a/examples/v2_observability-pipelines_CreatePipeline.rs +++ b/examples/v2_observability-pipelines_CreatePipeline.rs @@ -44,7 +44,7 @@ async fn main() { ), ) ], - ).processors( + ).processor_groups( vec![ ObservabilityPipelineConfigProcessorGroup::new( true, diff --git a/examples/v2_observability-pipelines_UpdatePipeline.rs b/examples/v2_observability-pipelines_UpdatePipeline.rs index 316fafce8..5a514ff2a 100644 --- a/examples/v2_observability-pipelines_UpdatePipeline.rs +++ b/examples/v2_observability-pipelines_UpdatePipeline.rs @@ -46,7 +46,7 @@ async fn main() { ), ) ], - ).processors( + ).processor_groups( vec![ ObservabilityPipelineConfigProcessorGroup::new( true, diff --git a/examples/v2_observability-pipelines_ValidatePipeline.rs b/examples/v2_observability-pipelines_ValidatePipeline.rs index b0ebe11c5..71b962199 100644 --- a/examples/v2_observability-pipelines_ValidatePipeline.rs +++ b/examples/v2_observability-pipelines_ValidatePipeline.rs @@ -44,7 +44,7 @@ async fn main() { ), ) ], - ).processors( + ).processor_groups( vec![ ObservabilityPipelineConfigProcessorGroup::new( true, diff --git a/src/datadog/configuration.rs b/src/datadog/configuration.rs index 2eab236e9..ab2f7ead5 100644 --- a/src/datadog/configuration.rs +++ b/src/datadog/configuration.rs @@ -243,6 +243,12 @@ impl Default for Configuration { false, ), ("v2.validate_monitor_user_template".to_owned(), false), + ("v2.create_pipeline".to_owned(), false), + ("v2.delete_pipeline".to_owned(), false), + ("v2.get_pipeline".to_owned(), false), + ("v2.list_pipelines".to_owned(), false), + ("v2.update_pipeline".to_owned(), false), + ("v2.validate_pipeline".to_owned(), false), ("v2.list_role_templates".to_owned(), false), ("v2.create_connection".to_owned(), false), ("v2.delete_connection".to_owned(), false), @@ -254,12 +260,6 @@ impl Default for Configuration { ("v2.query_event_filtered_users".to_owned(), false), ("v2.query_users".to_owned(), false), ("v2.update_connection".to_owned(), false), - ("v2.create_pipeline".to_owned(), false), - ("v2.delete_pipeline".to_owned(), false), - ("v2.get_pipeline".to_owned(), false), - ("v2.list_pipelines".to_owned(), false), - ("v2.update_pipeline".to_owned(), false), - ("v2.validate_pipeline".to_owned(), false), ("v2.create_scorecard_outcomes_batch".to_owned(), false), ("v2.create_scorecard_rule".to_owned(), false), ("v2.delete_scorecard_rule".to_owned(), false), diff --git a/src/datadogV2/api/api_observability_pipelines.rs b/src/datadogV2/api/api_observability_pipelines.rs index 2a3ce4446..cf5be01b0 100644 --- a/src/datadogV2/api/api_observability_pipelines.rs +++ b/src/datadogV2/api/api_observability_pipelines.rs @@ -189,7 +189,7 @@ impl ObservabilityPipelinesAPI { let local_client = &self.client; let local_uri_str = format!( - "{}/api/v2/remote_config/products/obs_pipelines/pipelines", + "{}/api/v2/obs-pipelines/pipelines", local_configuration.get_operation_host(operation_id) ); let mut local_req_builder = @@ -563,7 +563,7 @@ impl ObservabilityPipelinesAPI { let local_client = &self.client; let local_uri_str = format!( - "{}/api/v2/remote_config/products/obs_pipelines/pipelines", + "{}/api/v2/obs-pipelines/pipelines", local_configuration.get_operation_host(operation_id) ); let mut local_req_builder = @@ -851,7 +851,7 @@ impl ObservabilityPipelinesAPI { let local_client = &self.client; let local_uri_str = format!( - "{}/api/v2/remote_config/products/obs_pipelines/pipelines/validate", + "{}/api/v2/obs-pipelines/pipelines/validate", local_configuration.get_operation_host(operation_id) ); let mut local_req_builder = diff --git a/src/datadogV2/model/mod.rs b/src/datadogV2/model/mod.rs index 5bc89fdeb..af4d9a7e5 100644 --- a/src/datadogV2/model/mod.rs +++ b/src/datadogV2/model/mod.rs @@ -3996,1014 +3996,6 @@ pub mod model_dns_metric_key; pub use self::model_dns_metric_key::DnsMetricKey; pub mod model_single_aggregated_dns_response_data_type; pub use self::model_single_aggregated_dns_response_data_type::SingleAggregatedDnsResponseDataType; -pub mod model_escalation_policy_create_request; -pub use self::model_escalation_policy_create_request::EscalationPolicyCreateRequest; -pub mod model_escalation_policy_create_request_data; -pub use self::model_escalation_policy_create_request_data::EscalationPolicyCreateRequestData; -pub mod model_escalation_policy_create_request_data_attributes; -pub use self::model_escalation_policy_create_request_data_attributes::EscalationPolicyCreateRequestDataAttributes; -pub mod model_escalation_policy_create_request_data_attributes_steps_items; -pub use self::model_escalation_policy_create_request_data_attributes_steps_items::EscalationPolicyCreateRequestDataAttributesStepsItems; -pub mod model_escalation_policy_step_attributes_assignment; -pub use self::model_escalation_policy_step_attributes_assignment::EscalationPolicyStepAttributesAssignment; -pub mod model_escalation_policy_step_target; -pub use self::model_escalation_policy_step_target::EscalationPolicyStepTarget; -pub mod model_escalation_policy_step_target_config; -pub use self::model_escalation_policy_step_target_config::EscalationPolicyStepTargetConfig; -pub mod model_escalation_policy_step_target_config_schedule; -pub use self::model_escalation_policy_step_target_config_schedule::EscalationPolicyStepTargetConfigSchedule; -pub mod model_schedule_target_position; -pub use self::model_schedule_target_position::ScheduleTargetPosition; -pub mod model_escalation_policy_step_target_type; -pub use self::model_escalation_policy_step_target_type::EscalationPolicyStepTargetType; -pub mod model_escalation_policy_create_request_data_relationships; -pub use self::model_escalation_policy_create_request_data_relationships::EscalationPolicyCreateRequestDataRelationships; -pub mod model_data_relationships_teams; -pub use self::model_data_relationships_teams::DataRelationshipsTeams; -pub mod model_data_relationships_teams_data_items; -pub use self::model_data_relationships_teams_data_items::DataRelationshipsTeamsDataItems; -pub mod model_data_relationships_teams_data_items_type; -pub use self::model_data_relationships_teams_data_items_type::DataRelationshipsTeamsDataItemsType; -pub mod model_escalation_policy_create_request_data_type; -pub use self::model_escalation_policy_create_request_data_type::EscalationPolicyCreateRequestDataType; -pub mod model_escalation_policy; -pub use self::model_escalation_policy::EscalationPolicy; -pub mod model_escalation_policy_data; -pub use self::model_escalation_policy_data::EscalationPolicyData; -pub mod model_escalation_policy_data_attributes; -pub use self::model_escalation_policy_data_attributes::EscalationPolicyDataAttributes; -pub mod model_escalation_policy_data_relationships; -pub use self::model_escalation_policy_data_relationships::EscalationPolicyDataRelationships; -pub mod model_escalation_policy_data_relationships_steps; -pub use self::model_escalation_policy_data_relationships_steps::EscalationPolicyDataRelationshipsSteps; -pub mod model_escalation_policy_data_relationships_steps_data_items; -pub use self::model_escalation_policy_data_relationships_steps_data_items::EscalationPolicyDataRelationshipsStepsDataItems; -pub mod model_escalation_policy_data_relationships_steps_data_items_type; -pub use self::model_escalation_policy_data_relationships_steps_data_items_type::EscalationPolicyDataRelationshipsStepsDataItemsType; -pub mod model_escalation_policy_data_type; -pub use self::model_escalation_policy_data_type::EscalationPolicyDataType; -pub mod model_escalation_policy_step; -pub use self::model_escalation_policy_step::EscalationPolicyStep; -pub mod model_escalation_policy_step_attributes; -pub use self::model_escalation_policy_step_attributes::EscalationPolicyStepAttributes; -pub mod model_escalation_policy_step_relationships; -pub use self::model_escalation_policy_step_relationships::EscalationPolicyStepRelationships; -pub mod model_escalation_targets; -pub use self::model_escalation_targets::EscalationTargets; -pub mod model_team_target; -pub use self::model_team_target::TeamTarget; -pub mod model_team_target_type; -pub use self::model_team_target_type::TeamTargetType; -pub mod model_user_target; -pub use self::model_user_target::UserTarget; -pub mod model_user_target_type; -pub use self::model_user_target_type::UserTargetType; -pub mod model_schedule_target; -pub use self::model_schedule_target::ScheduleTarget; -pub mod model_schedule_target_type; -pub use self::model_schedule_target_type::ScheduleTargetType; -pub mod model_configured_schedule_target; -pub use self::model_configured_schedule_target::ConfiguredScheduleTarget; -pub mod model_configured_schedule_target_type; -pub use self::model_configured_schedule_target_type::ConfiguredScheduleTargetType; -pub mod model_escalation_target; -pub use self::model_escalation_target::EscalationTarget; -pub mod model_escalation_policy_step_type; -pub use self::model_escalation_policy_step_type::EscalationPolicyStepType; -pub mod model_escalation_policy_user; -pub use self::model_escalation_policy_user::EscalationPolicyUser; -pub mod model_escalation_policy_user_attributes; -pub use self::model_escalation_policy_user_attributes::EscalationPolicyUserAttributes; -pub mod model_user_attributes_status; -pub use self::model_user_attributes_status::UserAttributesStatus; -pub mod model_escalation_policy_user_type; -pub use self::model_escalation_policy_user_type::EscalationPolicyUserType; -pub mod model_schedule_data; -pub use self::model_schedule_data::ScheduleData; -pub mod model_schedule_data_attributes; -pub use self::model_schedule_data_attributes::ScheduleDataAttributes; -pub mod model_schedule_data_relationships; -pub use self::model_schedule_data_relationships::ScheduleDataRelationships; -pub mod model_schedule_data_relationships_layers; -pub use self::model_schedule_data_relationships_layers::ScheduleDataRelationshipsLayers; -pub mod model_schedule_data_relationships_layers_data_items; -pub use self::model_schedule_data_relationships_layers_data_items::ScheduleDataRelationshipsLayersDataItems; -pub mod model_schedule_data_relationships_layers_data_items_type; -pub use self::model_schedule_data_relationships_layers_data_items_type::ScheduleDataRelationshipsLayersDataItemsType; -pub mod model_schedule_data_type; -pub use self::model_schedule_data_type::ScheduleDataType; -pub mod model_configured_schedule; -pub use self::model_configured_schedule::ConfiguredSchedule; -pub mod model_configured_schedule_target_attributes; -pub use self::model_configured_schedule_target_attributes::ConfiguredScheduleTargetAttributes; -pub mod model_configured_schedule_target_relationships; -pub use self::model_configured_schedule_target_relationships::ConfiguredScheduleTargetRelationships; -pub mod model_configured_schedule_target_relationships_schedule; -pub use self::model_configured_schedule_target_relationships_schedule::ConfiguredScheduleTargetRelationshipsSchedule; -pub mod model_team_reference; -pub use self::model_team_reference::TeamReference; -pub mod model_team_reference_attributes; -pub use self::model_team_reference_attributes::TeamReferenceAttributes; -pub mod model_team_reference_type; -pub use self::model_team_reference_type::TeamReferenceType; -pub mod model_escalation_policy_included; -pub use self::model_escalation_policy_included::EscalationPolicyIncluded; -pub mod model_escalation_policy_update_request; -pub use self::model_escalation_policy_update_request::EscalationPolicyUpdateRequest; -pub mod model_escalation_policy_update_request_data; -pub use self::model_escalation_policy_update_request_data::EscalationPolicyUpdateRequestData; -pub mod model_escalation_policy_update_request_data_attributes; -pub use self::model_escalation_policy_update_request_data_attributes::EscalationPolicyUpdateRequestDataAttributes; -pub mod model_escalation_policy_update_request_data_attributes_steps_items; -pub use self::model_escalation_policy_update_request_data_attributes_steps_items::EscalationPolicyUpdateRequestDataAttributesStepsItems; -pub mod model_escalation_policy_update_request_data_relationships; -pub use self::model_escalation_policy_update_request_data_relationships::EscalationPolicyUpdateRequestDataRelationships; -pub mod model_escalation_policy_update_request_data_type; -pub use self::model_escalation_policy_update_request_data_type::EscalationPolicyUpdateRequestDataType; -pub mod model_create_page_request; -pub use self::model_create_page_request::CreatePageRequest; -pub mod model_create_page_request_data; -pub use self::model_create_page_request_data::CreatePageRequestData; -pub mod model_create_page_request_data_attributes; -pub use self::model_create_page_request_data_attributes::CreatePageRequestDataAttributes; -pub mod model_create_page_request_data_attributes_target; -pub use self::model_create_page_request_data_attributes_target::CreatePageRequestDataAttributesTarget; -pub mod model_on_call_page_target_type; -pub use self::model_on_call_page_target_type::OnCallPageTargetType; -pub mod model_page_urgency; -pub use self::model_page_urgency::PageUrgency; -pub mod model_create_page_request_data_type; -pub use self::model_create_page_request_data_type::CreatePageRequestDataType; -pub mod model_create_page_response; -pub use self::model_create_page_response::CreatePageResponse; -pub mod model_create_page_response_data; -pub use self::model_create_page_response_data::CreatePageResponseData; -pub mod model_create_page_response_data_type; -pub use self::model_create_page_response_data_type::CreatePageResponseDataType; -pub mod model_schedule_create_request; -pub use self::model_schedule_create_request::ScheduleCreateRequest; -pub mod model_schedule_create_request_data; -pub use self::model_schedule_create_request_data::ScheduleCreateRequestData; -pub mod model_schedule_create_request_data_attributes; -pub use self::model_schedule_create_request_data_attributes::ScheduleCreateRequestDataAttributes; -pub mod model_schedule_create_request_data_attributes_layers_items; -pub use self::model_schedule_create_request_data_attributes_layers_items::ScheduleCreateRequestDataAttributesLayersItems; -pub mod model_layer_attributes_interval; -pub use self::model_layer_attributes_interval::LayerAttributesInterval; -pub mod model_schedule_request_data_attributes_layers_items_members_items; -pub use self::model_schedule_request_data_attributes_layers_items_members_items::ScheduleRequestDataAttributesLayersItemsMembersItems; -pub mod model_schedule_request_data_attributes_layers_items_members_items_user; -pub use self::model_schedule_request_data_attributes_layers_items_members_items_user::ScheduleRequestDataAttributesLayersItemsMembersItemsUser; -pub mod model_time_restriction; -pub use self::model_time_restriction::TimeRestriction; -pub mod model_weekday; -pub use self::model_weekday::Weekday; -pub mod model_schedule_create_request_data_relationships; -pub use self::model_schedule_create_request_data_relationships::ScheduleCreateRequestDataRelationships; -pub mod model_schedule_create_request_data_type; -pub use self::model_schedule_create_request_data_type::ScheduleCreateRequestDataType; -pub mod model_schedule; -pub use self::model_schedule::Schedule; -pub mod model_layer; -pub use self::model_layer::Layer; -pub mod model_layer_attributes; -pub use self::model_layer_attributes::LayerAttributes; -pub mod model_layer_relationships; -pub use self::model_layer_relationships::LayerRelationships; -pub mod model_layer_relationships_members; -pub use self::model_layer_relationships_members::LayerRelationshipsMembers; -pub mod model_layer_relationships_members_data_items; -pub use self::model_layer_relationships_members_data_items::LayerRelationshipsMembersDataItems; -pub mod model_layer_relationships_members_data_items_type; -pub use self::model_layer_relationships_members_data_items_type::LayerRelationshipsMembersDataItemsType; -pub mod model_layer_type; -pub use self::model_layer_type::LayerType; -pub mod model_schedule_member; -pub use self::model_schedule_member::ScheduleMember; -pub mod model_schedule_member_relationships; -pub use self::model_schedule_member_relationships::ScheduleMemberRelationships; -pub mod model_schedule_member_relationships_user; -pub use self::model_schedule_member_relationships_user::ScheduleMemberRelationshipsUser; -pub mod model_schedule_member_relationships_user_data; -pub use self::model_schedule_member_relationships_user_data::ScheduleMemberRelationshipsUserData; -pub mod model_schedule_member_relationships_user_data_type; -pub use self::model_schedule_member_relationships_user_data_type::ScheduleMemberRelationshipsUserDataType; -pub mod model_schedule_member_type; -pub use self::model_schedule_member_type::ScheduleMemberType; -pub mod model_schedule_user; -pub use self::model_schedule_user::ScheduleUser; -pub mod model_schedule_user_attributes; -pub use self::model_schedule_user_attributes::ScheduleUserAttributes; -pub mod model_schedule_user_type; -pub use self::model_schedule_user_type::ScheduleUserType; -pub mod model_schedule_data_included_item; -pub use self::model_schedule_data_included_item::ScheduleDataIncludedItem; -pub mod model_schedule_update_request; -pub use self::model_schedule_update_request::ScheduleUpdateRequest; -pub mod model_schedule_update_request_data; -pub use self::model_schedule_update_request_data::ScheduleUpdateRequestData; -pub mod model_schedule_update_request_data_attributes; -pub use self::model_schedule_update_request_data_attributes::ScheduleUpdateRequestDataAttributes; -pub mod model_schedule_update_request_data_attributes_layers_items; -pub use self::model_schedule_update_request_data_attributes_layers_items::ScheduleUpdateRequestDataAttributesLayersItems; -pub mod model_schedule_update_request_data_relationships; -pub use self::model_schedule_update_request_data_relationships::ScheduleUpdateRequestDataRelationships; -pub mod model_schedule_update_request_data_type; -pub use self::model_schedule_update_request_data_type::ScheduleUpdateRequestDataType; -pub mod model_shift; -pub use self::model_shift::Shift; -pub mod model_shift_data; -pub use self::model_shift_data::ShiftData; -pub mod model_shift_data_attributes; -pub use self::model_shift_data_attributes::ShiftDataAttributes; -pub mod model_shift_data_relationships; -pub use self::model_shift_data_relationships::ShiftDataRelationships; -pub mod model_shift_data_relationships_user; -pub use self::model_shift_data_relationships_user::ShiftDataRelationshipsUser; -pub mod model_shift_data_relationships_user_data; -pub use self::model_shift_data_relationships_user_data::ShiftDataRelationshipsUserData; -pub mod model_shift_data_relationships_user_data_type; -pub use self::model_shift_data_relationships_user_data_type::ShiftDataRelationshipsUserDataType; -pub mod model_shift_data_type; -pub use self::model_shift_data_type::ShiftDataType; -pub mod model_shift_included; -pub use self::model_shift_included::ShiftIncluded; -pub mod model_team_on_call_responders; -pub use self::model_team_on_call_responders::TeamOnCallResponders; -pub mod model_team_on_call_responders_data; -pub use self::model_team_on_call_responders_data::TeamOnCallRespondersData; -pub mod model_team_on_call_responders_data_relationships; -pub use self::model_team_on_call_responders_data_relationships::TeamOnCallRespondersDataRelationships; -pub mod model_team_on_call_responders_data_relationships_escalations; -pub use self::model_team_on_call_responders_data_relationships_escalations::TeamOnCallRespondersDataRelationshipsEscalations; -pub mod model_team_on_call_responders_data_relationships_escalations_data_items; -pub use self::model_team_on_call_responders_data_relationships_escalations_data_items::TeamOnCallRespondersDataRelationshipsEscalationsDataItems; -pub mod model_team_on_call_responders_data_relationships_escalations_data_items_type; -pub use self::model_team_on_call_responders_data_relationships_escalations_data_items_type::TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType; -pub mod model_team_on_call_responders_data_relationships_responders; -pub use self::model_team_on_call_responders_data_relationships_responders::TeamOnCallRespondersDataRelationshipsResponders; -pub mod model_team_on_call_responders_data_relationships_responders_data_items; -pub use self::model_team_on_call_responders_data_relationships_responders_data_items::TeamOnCallRespondersDataRelationshipsRespondersDataItems; -pub mod model_team_on_call_responders_data_relationships_responders_data_items_type; -pub use self::model_team_on_call_responders_data_relationships_responders_data_items_type::TeamOnCallRespondersDataRelationshipsRespondersDataItemsType; -pub mod model_team_on_call_responders_data_type; -pub use self::model_team_on_call_responders_data_type::TeamOnCallRespondersDataType; -pub mod model_escalation; -pub use self::model_escalation::Escalation; -pub mod model_escalation_relationships; -pub use self::model_escalation_relationships::EscalationRelationships; -pub mod model_escalation_relationships_responders; -pub use self::model_escalation_relationships_responders::EscalationRelationshipsResponders; -pub mod model_escalation_relationships_responders_data_items; -pub use self::model_escalation_relationships_responders_data_items::EscalationRelationshipsRespondersDataItems; -pub mod model_escalation_relationships_responders_data_items_type; -pub use self::model_escalation_relationships_responders_data_items_type::EscalationRelationshipsRespondersDataItemsType; -pub mod model_escalation_type; -pub use self::model_escalation_type::EscalationType; -pub mod model_team_on_call_responders_included; -pub use self::model_team_on_call_responders_included::TeamOnCallRespondersIncluded; -pub mod model_team_routing_rules; -pub use self::model_team_routing_rules::TeamRoutingRules; -pub mod model_team_routing_rules_data; -pub use self::model_team_routing_rules_data::TeamRoutingRulesData; -pub mod model_team_routing_rules_data_relationships; -pub use self::model_team_routing_rules_data_relationships::TeamRoutingRulesDataRelationships; -pub mod model_team_routing_rules_data_relationships_rules; -pub use self::model_team_routing_rules_data_relationships_rules::TeamRoutingRulesDataRelationshipsRules; -pub mod model_team_routing_rules_data_relationships_rules_data_items; -pub use self::model_team_routing_rules_data_relationships_rules_data_items::TeamRoutingRulesDataRelationshipsRulesDataItems; -pub mod model_team_routing_rules_data_relationships_rules_data_items_type; -pub use self::model_team_routing_rules_data_relationships_rules_data_items_type::TeamRoutingRulesDataRelationshipsRulesDataItemsType; -pub mod model_team_routing_rules_data_type; -pub use self::model_team_routing_rules_data_type::TeamRoutingRulesDataType; -pub mod model_routing_rule; -pub use self::model_routing_rule::RoutingRule; -pub mod model_routing_rule_attributes; -pub use self::model_routing_rule_attributes::RoutingRuleAttributes; -pub mod model_send_slack_message_action; -pub use self::model_send_slack_message_action::SendSlackMessageAction; -pub mod model_send_slack_message_action_type; -pub use self::model_send_slack_message_action_type::SendSlackMessageActionType; -pub mod model_send_teams_message_action; -pub use self::model_send_teams_message_action::SendTeamsMessageAction; -pub mod model_send_teams_message_action_type; -pub use self::model_send_teams_message_action_type::SendTeamsMessageActionType; -pub mod model_routing_rule_action; -pub use self::model_routing_rule_action::RoutingRuleAction; -pub mod model_time_restrictions; -pub use self::model_time_restrictions::TimeRestrictions; -pub mod model_urgency; -pub use self::model_urgency::Urgency; -pub mod model_routing_rule_relationships; -pub use self::model_routing_rule_relationships::RoutingRuleRelationships; -pub mod model_routing_rule_relationships_policy; -pub use self::model_routing_rule_relationships_policy::RoutingRuleRelationshipsPolicy; -pub mod model_routing_rule_relationships_policy_data; -pub use self::model_routing_rule_relationships_policy_data::RoutingRuleRelationshipsPolicyData; -pub mod model_routing_rule_relationships_policy_data_type; -pub use self::model_routing_rule_relationships_policy_data_type::RoutingRuleRelationshipsPolicyDataType; -pub mod model_routing_rule_type; -pub use self::model_routing_rule_type::RoutingRuleType; -pub mod model_team_routing_rules_included; -pub use self::model_team_routing_rules_included::TeamRoutingRulesIncluded; -pub mod model_team_routing_rules_request; -pub use self::model_team_routing_rules_request::TeamRoutingRulesRequest; -pub mod model_team_routing_rules_request_data; -pub use self::model_team_routing_rules_request_data::TeamRoutingRulesRequestData; -pub mod model_team_routing_rules_request_data_attributes; -pub use self::model_team_routing_rules_request_data_attributes::TeamRoutingRulesRequestDataAttributes; -pub mod model_team_routing_rules_request_rule; -pub use self::model_team_routing_rules_request_rule::TeamRoutingRulesRequestRule; -pub mod model_team_routing_rules_request_data_type; -pub use self::model_team_routing_rules_request_data_type::TeamRoutingRulesRequestDataType; -pub mod model_list_notification_channels_response; -pub use self::model_list_notification_channels_response::ListNotificationChannelsResponse; -pub mod model_notification_channel_data; -pub use self::model_notification_channel_data::NotificationChannelData; -pub mod model_notification_channel_attributes; -pub use self::model_notification_channel_attributes::NotificationChannelAttributes; -pub mod model_notification_channel_phone_config; -pub use self::model_notification_channel_phone_config::NotificationChannelPhoneConfig; -pub mod model_notification_channel_phone_config_type; -pub use self::model_notification_channel_phone_config_type::NotificationChannelPhoneConfigType; -pub mod model_notification_channel_email_config; -pub use self::model_notification_channel_email_config::NotificationChannelEmailConfig; -pub mod model_notification_channel_email_format_type; -pub use self::model_notification_channel_email_format_type::NotificationChannelEmailFormatType; -pub mod model_notification_channel_email_config_type; -pub use self::model_notification_channel_email_config_type::NotificationChannelEmailConfigType; -pub mod model_notification_channel_push_config; -pub use self::model_notification_channel_push_config::NotificationChannelPushConfig; -pub mod model_notification_channel_push_config_type; -pub use self::model_notification_channel_push_config_type::NotificationChannelPushConfigType; -pub mod model_notification_channel_config; -pub use self::model_notification_channel_config::NotificationChannelConfig; -pub mod model_notification_channel_type; -pub use self::model_notification_channel_type::NotificationChannelType; -pub mod model_create_user_notification_channel_request; -pub use self::model_create_user_notification_channel_request::CreateUserNotificationChannelRequest; -pub mod model_create_notification_channel_data; -pub use self::model_create_notification_channel_data::CreateNotificationChannelData; -pub mod model_create_notification_channel_attributes; -pub use self::model_create_notification_channel_attributes::CreateNotificationChannelAttributes; -pub mod model_create_phone_notification_channel_config; -pub use self::model_create_phone_notification_channel_config::CreatePhoneNotificationChannelConfig; -pub mod model_create_email_notification_channel_config; -pub use self::model_create_email_notification_channel_config::CreateEmailNotificationChannelConfig; -pub mod model_create_notification_channel_config; -pub use self::model_create_notification_channel_config::CreateNotificationChannelConfig; -pub mod model_notification_channel; -pub use self::model_notification_channel::NotificationChannel; -pub mod model_list_on_call_notification_rules_response; -pub use self::model_list_on_call_notification_rules_response::ListOnCallNotificationRulesResponse; -pub mod model_on_call_notification_rule_data; -pub use self::model_on_call_notification_rule_data::OnCallNotificationRuleData; -pub mod model_on_call_notification_rule_attributes; -pub use self::model_on_call_notification_rule_attributes::OnCallNotificationRuleAttributes; -pub mod model_on_call_notification_rule_category; -pub use self::model_on_call_notification_rule_category::OnCallNotificationRuleCategory; -pub mod model_on_call_phone_notification_rule_settings; -pub use self::model_on_call_phone_notification_rule_settings::OnCallPhoneNotificationRuleSettings; -pub mod model_on_call_phone_notification_rule_method; -pub use self::model_on_call_phone_notification_rule_method::OnCallPhoneNotificationRuleMethod; -pub mod model_on_call_notification_rule_channel_settings; -pub use self::model_on_call_notification_rule_channel_settings::OnCallNotificationRuleChannelSettings; -pub mod model_on_call_notification_rule_relationships; -pub use self::model_on_call_notification_rule_relationships::OnCallNotificationRuleRelationships; -pub mod model_on_call_notification_rule_channel_relationship; -pub use self::model_on_call_notification_rule_channel_relationship::OnCallNotificationRuleChannelRelationship; -pub mod model_on_call_notification_rule_channel_relationship_data; -pub use self::model_on_call_notification_rule_channel_relationship_data::OnCallNotificationRuleChannelRelationshipData; -pub mod model_on_call_notification_rule_type; -pub use self::model_on_call_notification_rule_type::OnCallNotificationRuleType; -pub mod model_on_call_notification_rules_included; -pub use self::model_on_call_notification_rules_included::OnCallNotificationRulesIncluded; -pub mod model_create_on_call_notification_rule_request; -pub use self::model_create_on_call_notification_rule_request::CreateOnCallNotificationRuleRequest; -pub mod model_create_on_call_notification_rule_request_data; -pub use self::model_create_on_call_notification_rule_request_data::CreateOnCallNotificationRuleRequestData; -pub mod model_on_call_notification_rule_request_attributes; -pub use self::model_on_call_notification_rule_request_attributes::OnCallNotificationRuleRequestAttributes; -pub mod model_on_call_notification_rule; -pub use self::model_on_call_notification_rule::OnCallNotificationRule; -pub mod model_update_on_call_notification_rule_request; -pub use self::model_update_on_call_notification_rule_request::UpdateOnCallNotificationRuleRequest; -pub mod model_update_on_call_notification_rule_request_data; -pub use self::model_update_on_call_notification_rule_request_data::UpdateOnCallNotificationRuleRequestData; -pub mod model_update_on_call_notification_rule_request_attributes; -pub use self::model_update_on_call_notification_rule_request_attributes::UpdateOnCallNotificationRuleRequestAttributes; -pub mod model_org_config_list_response; -pub use self::model_org_config_list_response::OrgConfigListResponse; -pub mod model_org_config_read; -pub use self::model_org_config_read::OrgConfigRead; -pub mod model_org_config_read_attributes; -pub use self::model_org_config_read_attributes::OrgConfigReadAttributes; -pub mod model_org_config_type; -pub use self::model_org_config_type::OrgConfigType; -pub mod model_org_config_get_response; -pub use self::model_org_config_get_response::OrgConfigGetResponse; -pub mod model_org_config_write_request; -pub use self::model_org_config_write_request::OrgConfigWriteRequest; -pub mod model_org_config_write; -pub use self::model_org_config_write::OrgConfigWrite; -pub mod model_org_config_write_attributes; -pub use self::model_org_config_write_attributes::OrgConfigWriteAttributes; -pub mod model_org_connection_list_response; -pub use self::model_org_connection_list_response::OrgConnectionListResponse; -pub mod model_org_connection; -pub use self::model_org_connection::OrgConnection; -pub mod model_org_connection_attributes; -pub use self::model_org_connection_attributes::OrgConnectionAttributes; -pub mod model_org_connection_type_enum; -pub use self::model_org_connection_type_enum::OrgConnectionTypeEnum; -pub mod model_org_connection_relationships; -pub use self::model_org_connection_relationships::OrgConnectionRelationships; -pub mod model_org_connection_user_relationship; -pub use self::model_org_connection_user_relationship::OrgConnectionUserRelationship; -pub mod model_org_connection_user_relationship_data; -pub use self::model_org_connection_user_relationship_data::OrgConnectionUserRelationshipData; -pub mod model_org_connection_user_relationship_data_type; -pub use self::model_org_connection_user_relationship_data_type::OrgConnectionUserRelationshipDataType; -pub mod model_org_connection_org_relationship; -pub use self::model_org_connection_org_relationship::OrgConnectionOrgRelationship; -pub mod model_org_connection_org_relationship_data; -pub use self::model_org_connection_org_relationship_data::OrgConnectionOrgRelationshipData; -pub mod model_org_connection_org_relationship_data_type; -pub use self::model_org_connection_org_relationship_data_type::OrgConnectionOrgRelationshipDataType; -pub mod model_org_connection_type; -pub use self::model_org_connection_type::OrgConnectionType; -pub mod model_org_connection_list_response_meta; -pub use self::model_org_connection_list_response_meta::OrgConnectionListResponseMeta; -pub mod model_org_connection_list_response_meta_page; -pub use self::model_org_connection_list_response_meta_page::OrgConnectionListResponseMetaPage; -pub mod model_org_connection_create_request; -pub use self::model_org_connection_create_request::OrgConnectionCreateRequest; -pub mod model_org_connection_create; -pub use self::model_org_connection_create::OrgConnectionCreate; -pub mod model_org_connection_create_attributes; -pub use self::model_org_connection_create_attributes::OrgConnectionCreateAttributes; -pub mod model_org_connection_create_relationships; -pub use self::model_org_connection_create_relationships::OrgConnectionCreateRelationships; -pub mod model_org_connection_response; -pub use self::model_org_connection_response::OrgConnectionResponse; -pub mod model_org_connection_update_request; -pub use self::model_org_connection_update_request::OrgConnectionUpdateRequest; -pub mod model_org_connection_update; -pub use self::model_org_connection_update::OrgConnectionUpdate; -pub mod model_org_connection_update_attributes; -pub use self::model_org_connection_update_attributes::OrgConnectionUpdateAttributes; -pub mod model_permissions_response; -pub use self::model_permissions_response::PermissionsResponse; -pub mod model_permission; -pub use self::model_permission::Permission; -pub mod model_permission_attributes; -pub use self::model_permission_attributes::PermissionAttributes; -pub mod model_finding_evaluation; -pub use self::model_finding_evaluation::FindingEvaluation; -pub mod model_finding_status; -pub use self::model_finding_status::FindingStatus; -pub mod model_finding_vulnerability_type; -pub use self::model_finding_vulnerability_type::FindingVulnerabilityType; -pub mod model_list_findings_response; -pub use self::model_list_findings_response::ListFindingsResponse; -pub mod model_finding; -pub use self::model_finding::Finding; -pub mod model_finding_attributes; -pub use self::model_finding_attributes::FindingAttributes; -pub mod model_finding_mute; -pub use self::model_finding_mute::FindingMute; -pub mod model_finding_mute_reason; -pub use self::model_finding_mute_reason::FindingMuteReason; -pub mod model_finding_rule; -pub use self::model_finding_rule::FindingRule; -pub mod model_finding_type; -pub use self::model_finding_type::FindingType; -pub mod model_list_findings_meta; -pub use self::model_list_findings_meta::ListFindingsMeta; -pub mod model_list_findings_page; -pub use self::model_list_findings_page::ListFindingsPage; -pub mod model_bulk_mute_findings_request; -pub use self::model_bulk_mute_findings_request::BulkMuteFindingsRequest; -pub mod model_bulk_mute_findings_request_data; -pub use self::model_bulk_mute_findings_request_data::BulkMuteFindingsRequestData; -pub mod model_bulk_mute_findings_request_attributes; -pub use self::model_bulk_mute_findings_request_attributes::BulkMuteFindingsRequestAttributes; -pub mod model_bulk_mute_findings_request_properties; -pub use self::model_bulk_mute_findings_request_properties::BulkMuteFindingsRequestProperties; -pub mod model_bulk_mute_findings_request_meta; -pub use self::model_bulk_mute_findings_request_meta::BulkMuteFindingsRequestMeta; -pub mod model_bulk_mute_findings_request_meta_findings; -pub use self::model_bulk_mute_findings_request_meta_findings::BulkMuteFindingsRequestMetaFindings; -pub mod model_bulk_mute_findings_response; -pub use self::model_bulk_mute_findings_response::BulkMuteFindingsResponse; -pub mod model_bulk_mute_findings_response_data; -pub use self::model_bulk_mute_findings_response_data::BulkMuteFindingsResponseData; -pub mod model_get_finding_response; -pub use self::model_get_finding_response::GetFindingResponse; -pub mod model_detailed_finding; -pub use self::model_detailed_finding::DetailedFinding; -pub mod model_detailed_finding_attributes; -pub use self::model_detailed_finding_attributes::DetailedFindingAttributes; -pub mod model_detailed_finding_type; -pub use self::model_detailed_finding_type::DetailedFindingType; -pub mod model_list_powerpacks_response; -pub use self::model_list_powerpacks_response::ListPowerpacksResponse; -pub mod model_powerpack_data; -pub use self::model_powerpack_data::PowerpackData; -pub mod model_powerpack_attributes; -pub use self::model_powerpack_attributes::PowerpackAttributes; -pub mod model_powerpack_group_widget; -pub use self::model_powerpack_group_widget::PowerpackGroupWidget; -pub mod model_powerpack_group_widget_definition; -pub use self::model_powerpack_group_widget_definition::PowerpackGroupWidgetDefinition; -pub mod model_powerpack_inner_widgets; -pub use self::model_powerpack_inner_widgets::PowerpackInnerWidgets; -pub mod model_powerpack_inner_widget_layout; -pub use self::model_powerpack_inner_widget_layout::PowerpackInnerWidgetLayout; -pub mod model_powerpack_group_widget_layout; -pub use self::model_powerpack_group_widget_layout::PowerpackGroupWidgetLayout; -pub mod model_widget_live_span; -pub use self::model_widget_live_span::WidgetLiveSpan; -pub mod model_powerpack_template_variable; -pub use self::model_powerpack_template_variable::PowerpackTemplateVariable; -pub mod model_powerpack_relationships; -pub use self::model_powerpack_relationships::PowerpackRelationships; -pub mod model_powerpack_response_links; -pub use self::model_powerpack_response_links::PowerpackResponseLinks; -pub mod model_powerpacks_response_meta; -pub use self::model_powerpacks_response_meta::PowerpacksResponseMeta; -pub mod model_powerpacks_response_meta_pagination; -pub use self::model_powerpacks_response_meta_pagination::PowerpacksResponseMetaPagination; -pub mod model_powerpack; -pub use self::model_powerpack::Powerpack; -pub mod model_powerpack_response; -pub use self::model_powerpack_response::PowerpackResponse; -pub mod model_process_summaries_response; -pub use self::model_process_summaries_response::ProcessSummariesResponse; -pub mod model_process_summary; -pub use self::model_process_summary::ProcessSummary; -pub mod model_process_summary_attributes; -pub use self::model_process_summary_attributes::ProcessSummaryAttributes; -pub mod model_process_summary_type; -pub use self::model_process_summary_type::ProcessSummaryType; -pub mod model_process_summaries_meta; -pub use self::model_process_summaries_meta::ProcessSummariesMeta; -pub mod model_process_summaries_meta_page; -pub use self::model_process_summaries_meta_page::ProcessSummariesMetaPage; -pub mod model_facet_info_request; -pub use self::model_facet_info_request::FacetInfoRequest; -pub mod model_facet_info_request_data; -pub use self::model_facet_info_request_data::FacetInfoRequestData; -pub mod model_facet_info_request_data_attributes; -pub use self::model_facet_info_request_data_attributes::FacetInfoRequestDataAttributes; -pub mod model_facet_info_request_data_attributes_search; -pub use self::model_facet_info_request_data_attributes_search::FacetInfoRequestDataAttributesSearch; -pub mod model_facet_info_request_data_attributes_term_search; -pub use self::model_facet_info_request_data_attributes_term_search::FacetInfoRequestDataAttributesTermSearch; -pub mod model_facet_info_request_data_type; -pub use self::model_facet_info_request_data_type::FacetInfoRequestDataType; -pub mod model_facet_info_response; -pub use self::model_facet_info_response::FacetInfoResponse; -pub mod model_facet_info_response_data; -pub use self::model_facet_info_response_data::FacetInfoResponseData; -pub mod model_facet_info_response_data_attributes; -pub use self::model_facet_info_response_data_attributes::FacetInfoResponseDataAttributes; -pub mod model_facet_info_response_data_attributes_result; -pub use self::model_facet_info_response_data_attributes_result::FacetInfoResponseDataAttributesResult; -pub mod model_facet_info_response_data_attributes_result_range; -pub use self::model_facet_info_response_data_attributes_result_range::FacetInfoResponseDataAttributesResultRange; -pub mod model_facet_info_response_data_attributes_result_values_items; -pub use self::model_facet_info_response_data_attributes_result_values_items::FacetInfoResponseDataAttributesResultValuesItems; -pub mod model_facet_info_response_data_type; -pub use self::model_facet_info_response_data_type::FacetInfoResponseDataType; -pub mod model_query_account_request; -pub use self::model_query_account_request::QueryAccountRequest; -pub mod model_query_account_request_data; -pub use self::model_query_account_request_data::QueryAccountRequestData; -pub mod model_query_account_request_data_attributes; -pub use self::model_query_account_request_data_attributes::QueryAccountRequestDataAttributes; -pub mod model_query_account_request_data_attributes_sort; -pub use self::model_query_account_request_data_attributes_sort::QueryAccountRequestDataAttributesSort; -pub mod model_query_account_request_data_type; -pub use self::model_query_account_request_data_type::QueryAccountRequestDataType; -pub mod model_query_response; -pub use self::model_query_response::QueryResponse; -pub mod model_query_response_data; -pub use self::model_query_response_data::QueryResponseData; -pub mod model_query_response_data_attributes; -pub use self::model_query_response_data_attributes::QueryResponseDataAttributes; -pub mod model_query_response_data_type; -pub use self::model_query_response_data_type::QueryResponseDataType; -pub mod model_query_event_filtered_users_request; -pub use self::model_query_event_filtered_users_request::QueryEventFilteredUsersRequest; -pub mod model_query_event_filtered_users_request_data; -pub use self::model_query_event_filtered_users_request_data::QueryEventFilteredUsersRequestData; -pub mod model_query_event_filtered_users_request_data_attributes; -pub use self::model_query_event_filtered_users_request_data_attributes::QueryEventFilteredUsersRequestDataAttributes; -pub mod model_query_event_filtered_users_request_data_attributes_event_query; -pub use self::model_query_event_filtered_users_request_data_attributes_event_query::QueryEventFilteredUsersRequestDataAttributesEventQuery; -pub mod model_query_event_filtered_users_request_data_attributes_event_query_time_frame; -pub use self::model_query_event_filtered_users_request_data_attributes_event_query_time_frame::QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame; -pub mod model_query_event_filtered_users_request_data_type; -pub use self::model_query_event_filtered_users_request_data_type::QueryEventFilteredUsersRequestDataType; -pub mod model_query_users_request; -pub use self::model_query_users_request::QueryUsersRequest; -pub mod model_query_users_request_data; -pub use self::model_query_users_request_data::QueryUsersRequestData; -pub mod model_query_users_request_data_attributes; -pub use self::model_query_users_request_data_attributes::QueryUsersRequestDataAttributes; -pub mod model_query_users_request_data_attributes_sort; -pub use self::model_query_users_request_data_attributes_sort::QueryUsersRequestDataAttributesSort; -pub mod model_query_users_request_data_type; -pub use self::model_query_users_request_data_type::QueryUsersRequestDataType; -pub mod model_get_mapping_response; -pub use self::model_get_mapping_response::GetMappingResponse; -pub mod model_get_mapping_response_data; -pub use self::model_get_mapping_response_data::GetMappingResponseData; -pub mod model_get_mapping_response_data_attributes; -pub use self::model_get_mapping_response_data_attributes::GetMappingResponseDataAttributes; -pub mod model_get_mapping_response_data_attributes_attributes_items; -pub use self::model_get_mapping_response_data_attributes_attributes_items::GetMappingResponseDataAttributesAttributesItems; -pub mod model_get_mapping_response_data_type; -pub use self::model_get_mapping_response_data_type::GetMappingResponseDataType; -pub mod model_create_connection_request; -pub use self::model_create_connection_request::CreateConnectionRequest; -pub mod model_create_connection_request_data; -pub use self::model_create_connection_request_data::CreateConnectionRequestData; -pub mod model_create_connection_request_data_attributes; -pub use self::model_create_connection_request_data_attributes::CreateConnectionRequestDataAttributes; -pub mod model_create_connection_request_data_attributes_fields_items; -pub use self::model_create_connection_request_data_attributes_fields_items::CreateConnectionRequestDataAttributesFieldsItems; -pub mod model_update_connection_request_data_type; -pub use self::model_update_connection_request_data_type::UpdateConnectionRequestDataType; -pub mod model_update_connection_request; -pub use self::model_update_connection_request::UpdateConnectionRequest; -pub mod model_update_connection_request_data; -pub use self::model_update_connection_request_data::UpdateConnectionRequestData; -pub mod model_update_connection_request_data_attributes; -pub use self::model_update_connection_request_data_attributes::UpdateConnectionRequestDataAttributes; -pub mod model_update_connection_request_data_attributes_fields_to_update_items; -pub use self::model_update_connection_request_data_attributes_fields_to_update_items::UpdateConnectionRequestDataAttributesFieldsToUpdateItems; -pub mod model_list_connections_response; -pub use self::model_list_connections_response::ListConnectionsResponse; -pub mod model_list_connections_response_data; -pub use self::model_list_connections_response_data::ListConnectionsResponseData; -pub mod model_list_connections_response_data_attributes; -pub use self::model_list_connections_response_data_attributes::ListConnectionsResponseDataAttributes; -pub mod model_list_connections_response_data_attributes_connections_items; -pub use self::model_list_connections_response_data_attributes_connections_items::ListConnectionsResponseDataAttributesConnectionsItems; -pub mod model_list_connections_response_data_attributes_connections_items_join; -pub use self::model_list_connections_response_data_attributes_connections_items_join::ListConnectionsResponseDataAttributesConnectionsItemsJoin; -pub mod model_list_connections_response_data_type; -pub use self::model_list_connections_response_data_type::ListConnectionsResponseDataType; -pub mod model_scalar_formula_query_request; -pub use self::model_scalar_formula_query_request::ScalarFormulaQueryRequest; -pub mod model_scalar_formula_request; -pub use self::model_scalar_formula_request::ScalarFormulaRequest; -pub mod model_scalar_formula_request_attributes; -pub use self::model_scalar_formula_request_attributes::ScalarFormulaRequestAttributes; -pub mod model_query_formula; -pub use self::model_query_formula::QueryFormula; -pub mod model_formula_limit; -pub use self::model_formula_limit::FormulaLimit; -pub mod model_query_sort_order; -pub use self::model_query_sort_order::QuerySortOrder; -pub mod model_metrics_scalar_query; -pub use self::model_metrics_scalar_query::MetricsScalarQuery; -pub mod model_metrics_aggregator; -pub use self::model_metrics_aggregator::MetricsAggregator; -pub mod model_metrics_data_source; -pub use self::model_metrics_data_source::MetricsDataSource; -pub mod model_events_scalar_query; -pub use self::model_events_scalar_query::EventsScalarQuery; -pub mod model_events_compute; -pub use self::model_events_compute::EventsCompute; -pub mod model_events_aggregation; -pub use self::model_events_aggregation::EventsAggregation; -pub mod model_events_data_source; -pub use self::model_events_data_source::EventsDataSource; -pub mod model_events_group_by; -pub use self::model_events_group_by::EventsGroupBy; -pub mod model_events_group_by_sort; -pub use self::model_events_group_by_sort::EventsGroupBySort; -pub mod model_events_sort_type; -pub use self::model_events_sort_type::EventsSortType; -pub mod model_events_search; -pub use self::model_events_search::EventsSearch; -pub mod model_scalar_query; -pub use self::model_scalar_query::ScalarQuery; -pub mod model_scalar_formula_request_type; -pub use self::model_scalar_formula_request_type::ScalarFormulaRequestType; -pub mod model_scalar_formula_query_response; -pub use self::model_scalar_formula_query_response::ScalarFormulaQueryResponse; -pub mod model_scalar_response; -pub use self::model_scalar_response::ScalarResponse; -pub mod model_scalar_formula_response_atrributes; -pub use self::model_scalar_formula_response_atrributes::ScalarFormulaResponseAtrributes; -pub mod model_group_scalar_column; -pub use self::model_group_scalar_column::GroupScalarColumn; -pub mod model_scalar_column_type_group; -pub use self::model_scalar_column_type_group::ScalarColumnTypeGroup; -pub mod model_data_scalar_column; -pub use self::model_data_scalar_column::DataScalarColumn; -pub mod model_scalar_meta; -pub use self::model_scalar_meta::ScalarMeta; -pub mod model_unit; -pub use self::model_unit::Unit; -pub mod model_scalar_column_type_number; -pub use self::model_scalar_column_type_number::ScalarColumnTypeNumber; -pub mod model_scalar_column; -pub use self::model_scalar_column::ScalarColumn; -pub mod model_scalar_formula_response_type; -pub use self::model_scalar_formula_response_type::ScalarFormulaResponseType; -pub mod model_timeseries_formula_query_request; -pub use self::model_timeseries_formula_query_request::TimeseriesFormulaQueryRequest; -pub mod model_timeseries_formula_request; -pub use self::model_timeseries_formula_request::TimeseriesFormulaRequest; -pub mod model_timeseries_formula_request_attributes; -pub use self::model_timeseries_formula_request_attributes::TimeseriesFormulaRequestAttributes; -pub mod model_metrics_timeseries_query; -pub use self::model_metrics_timeseries_query::MetricsTimeseriesQuery; -pub mod model_events_timeseries_query; -pub use self::model_events_timeseries_query::EventsTimeseriesQuery; -pub mod model_timeseries_query; -pub use self::model_timeseries_query::TimeseriesQuery; -pub mod model_timeseries_formula_request_type; -pub use self::model_timeseries_formula_request_type::TimeseriesFormulaRequestType; -pub mod model_timeseries_formula_query_response; -pub use self::model_timeseries_formula_query_response::TimeseriesFormulaQueryResponse; -pub mod model_timeseries_response; -pub use self::model_timeseries_response::TimeseriesResponse; -pub mod model_timeseries_response_attributes; -pub use self::model_timeseries_response_attributes::TimeseriesResponseAttributes; -pub mod model_timeseries_response_series; -pub use self::model_timeseries_response_series::TimeseriesResponseSeries; -pub mod model_timeseries_formula_response_type; -pub use self::model_timeseries_formula_response_type::TimeseriesFormulaResponseType; -pub mod model_reference_table_sort_type; -pub use self::model_reference_table_sort_type::ReferenceTableSortType; -pub mod model_table_result_v2_array; -pub use self::model_table_result_v2_array::TableResultV2Array; -pub mod model_table_result_v2_data; -pub use self::model_table_result_v2_data::TableResultV2Data; -pub mod model_table_result_v2_data_attributes; -pub use self::model_table_result_v2_data_attributes::TableResultV2DataAttributes; -pub mod model_table_result_v2_data_attributes_file_metadata; -pub use self::model_table_result_v2_data_attributes_file_metadata::TableResultV2DataAttributesFileMetadata; -pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details; -pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details::TableResultV2DataAttributesFileMetadataOneOfAccessDetails; -pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_aws_detail; -pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_aws_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail; -pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_azure_detail; -pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_azure_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail; -pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_gcp_detail; -pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_gcp_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail; -pub mod model_table_result_v2_data_attributes_file_metadata_cloud_storage_error_type; -pub use self::model_table_result_v2_data_attributes_file_metadata_cloud_storage_error_type::TableResultV2DataAttributesFileMetadataCloudStorageErrorType; -pub mod model_table_result_v2_data_attributes_schema; -pub use self::model_table_result_v2_data_attributes_schema::TableResultV2DataAttributesSchema; -pub mod model_table_result_v2_data_attributes_schema_fields_items; -pub use self::model_table_result_v2_data_attributes_schema_fields_items::TableResultV2DataAttributesSchemaFieldsItems; -pub mod model_reference_table_schema_field_type; -pub use self::model_reference_table_schema_field_type::ReferenceTableSchemaFieldType; -pub mod model_reference_table_source_type; -pub use self::model_reference_table_source_type::ReferenceTableSourceType; -pub mod model_table_result_v2_data_type; -pub use self::model_table_result_v2_data_type::TableResultV2DataType; -pub mod model_create_table_request; -pub use self::model_create_table_request::CreateTableRequest; -pub mod model_create_table_request_data; -pub use self::model_create_table_request_data::CreateTableRequestData; -pub mod model_create_table_request_data_attributes; -pub use self::model_create_table_request_data_attributes::CreateTableRequestDataAttributes; -pub mod model_create_table_request_data_attributes_file_metadata_cloud_storage; -pub use self::model_create_table_request_data_attributes_file_metadata_cloud_storage::CreateTableRequestDataAttributesFileMetadataCloudStorage; -pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details; -pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetails; -pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail; -pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail; -pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail; -pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail; -pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail; -pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail; -pub mod model_create_table_request_data_attributes_file_metadata_local_file; -pub use self::model_create_table_request_data_attributes_file_metadata_local_file::CreateTableRequestDataAttributesFileMetadataLocalFile; -pub mod model_create_table_request_data_attributes_file_metadata; -pub use self::model_create_table_request_data_attributes_file_metadata::CreateTableRequestDataAttributesFileMetadata; -pub mod model_create_table_request_data_attributes_schema; -pub use self::model_create_table_request_data_attributes_schema::CreateTableRequestDataAttributesSchema; -pub mod model_create_table_request_data_attributes_schema_fields_items; -pub use self::model_create_table_request_data_attributes_schema_fields_items::CreateTableRequestDataAttributesSchemaFieldsItems; -pub mod model_reference_table_create_source_type; -pub use self::model_reference_table_create_source_type::ReferenceTableCreateSourceType; -pub mod model_create_table_request_data_type; -pub use self::model_create_table_request_data_type::CreateTableRequestDataType; -pub mod model_table_result_v2; -pub use self::model_table_result_v2::TableResultV2; -pub mod model_patch_table_request; -pub use self::model_patch_table_request::PatchTableRequest; -pub mod model_patch_table_request_data; -pub use self::model_patch_table_request_data::PatchTableRequestData; -pub mod model_patch_table_request_data_attributes; -pub use self::model_patch_table_request_data_attributes::PatchTableRequestDataAttributes; -pub mod model_patch_table_request_data_attributes_file_metadata_cloud_storage; -pub use self::model_patch_table_request_data_attributes_file_metadata_cloud_storage::PatchTableRequestDataAttributesFileMetadataCloudStorage; -pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details; -pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails; -pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail; -pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail; -pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail; -pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail; -pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail; -pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail; -pub mod model_patch_table_request_data_attributes_file_metadata_local_file; -pub use self::model_patch_table_request_data_attributes_file_metadata_local_file::PatchTableRequestDataAttributesFileMetadataLocalFile; -pub mod model_patch_table_request_data_attributes_file_metadata; -pub use self::model_patch_table_request_data_attributes_file_metadata::PatchTableRequestDataAttributesFileMetadata; -pub mod model_patch_table_request_data_attributes_schema; -pub use self::model_patch_table_request_data_attributes_schema::PatchTableRequestDataAttributesSchema; -pub mod model_patch_table_request_data_attributes_schema_fields_items; -pub use self::model_patch_table_request_data_attributes_schema_fields_items::PatchTableRequestDataAttributesSchemaFieldsItems; -pub mod model_patch_table_request_data_type; -pub use self::model_patch_table_request_data_type::PatchTableRequestDataType; -pub mod model_batch_delete_rows_request_array; -pub use self::model_batch_delete_rows_request_array::BatchDeleteRowsRequestArray; -pub mod model_batch_delete_rows_request_data; -pub use self::model_batch_delete_rows_request_data::BatchDeleteRowsRequestData; -pub mod model_table_row_resource_data_type; -pub use self::model_table_row_resource_data_type::TableRowResourceDataType; -pub mod model_table_row_resource_array; -pub use self::model_table_row_resource_array::TableRowResourceArray; -pub mod model_table_row_resource_data; -pub use self::model_table_row_resource_data::TableRowResourceData; -pub mod model_table_row_resource_data_attributes; -pub use self::model_table_row_resource_data_attributes::TableRowResourceDataAttributes; -pub mod model_batch_upsert_rows_request_array; -pub use self::model_batch_upsert_rows_request_array::BatchUpsertRowsRequestArray; -pub mod model_batch_upsert_rows_request_data; -pub use self::model_batch_upsert_rows_request_data::BatchUpsertRowsRequestData; -pub mod model_batch_upsert_rows_request_data_attributes; -pub use self::model_batch_upsert_rows_request_data_attributes::BatchUpsertRowsRequestDataAttributes; -pub mod model_create_upload_request; -pub use self::model_create_upload_request::CreateUploadRequest; -pub mod model_create_upload_request_data; -pub use self::model_create_upload_request_data::CreateUploadRequestData; -pub mod model_create_upload_request_data_attributes; -pub use self::model_create_upload_request_data_attributes::CreateUploadRequestDataAttributes; -pub mod model_create_upload_request_data_type; -pub use self::model_create_upload_request_data_type::CreateUploadRequestDataType; -pub mod model_create_upload_response; -pub use self::model_create_upload_response::CreateUploadResponse; -pub mod model_create_upload_response_data; -pub use self::model_create_upload_response_data::CreateUploadResponseData; -pub mod model_create_upload_response_data_attributes; -pub use self::model_create_upload_response_data_attributes::CreateUploadResponseDataAttributes; -pub mod model_create_upload_response_data_type; -pub use self::model_create_upload_response_data_type::CreateUploadResponseDataType; -pub mod model_application_security_waf_custom_rule_list_response; -pub use self::model_application_security_waf_custom_rule_list_response::ApplicationSecurityWafCustomRuleListResponse; -pub mod model_application_security_waf_custom_rule_data; -pub use self::model_application_security_waf_custom_rule_data::ApplicationSecurityWafCustomRuleData; -pub mod model_application_security_waf_custom_rule_attributes; -pub use self::model_application_security_waf_custom_rule_attributes::ApplicationSecurityWafCustomRuleAttributes; -pub mod model_application_security_waf_custom_rule_action; -pub use self::model_application_security_waf_custom_rule_action::ApplicationSecurityWafCustomRuleAction; -pub mod model_application_security_waf_custom_rule_action_action; -pub use self::model_application_security_waf_custom_rule_action_action::ApplicationSecurityWafCustomRuleActionAction; -pub mod model_application_security_waf_custom_rule_action_parameters; -pub use self::model_application_security_waf_custom_rule_action_parameters::ApplicationSecurityWafCustomRuleActionParameters; -pub mod model_application_security_waf_custom_rule_condition; -pub use self::model_application_security_waf_custom_rule_condition::ApplicationSecurityWafCustomRuleCondition; -pub mod model_application_security_waf_custom_rule_condition_operator; -pub use self::model_application_security_waf_custom_rule_condition_operator::ApplicationSecurityWafCustomRuleConditionOperator; -pub mod model_application_security_waf_custom_rule_condition_parameters; -pub use self::model_application_security_waf_custom_rule_condition_parameters::ApplicationSecurityWafCustomRuleConditionParameters; -pub mod model_application_security_waf_custom_rule_condition_input; -pub use self::model_application_security_waf_custom_rule_condition_input::ApplicationSecurityWafCustomRuleConditionInput; -pub mod model_application_security_waf_custom_rule_condition_input_address; -pub use self::model_application_security_waf_custom_rule_condition_input_address::ApplicationSecurityWafCustomRuleConditionInputAddress; -pub mod model_application_security_waf_custom_rule_condition_options; -pub use self::model_application_security_waf_custom_rule_condition_options::ApplicationSecurityWafCustomRuleConditionOptions; -pub mod model_application_security_waf_custom_rule_metadata; -pub use self::model_application_security_waf_custom_rule_metadata::ApplicationSecurityWafCustomRuleMetadata; -pub mod model_application_security_waf_custom_rule_scope; -pub use self::model_application_security_waf_custom_rule_scope::ApplicationSecurityWafCustomRuleScope; -pub mod model_application_security_waf_custom_rule_tags; -pub use self::model_application_security_waf_custom_rule_tags::ApplicationSecurityWafCustomRuleTags; -pub mod model_application_security_waf_custom_rule_tags_category; -pub use self::model_application_security_waf_custom_rule_tags_category::ApplicationSecurityWafCustomRuleTagsCategory; -pub mod model_application_security_waf_custom_rule_type; -pub use self::model_application_security_waf_custom_rule_type::ApplicationSecurityWafCustomRuleType; -pub mod model_application_security_waf_custom_rule_create_request; -pub use self::model_application_security_waf_custom_rule_create_request::ApplicationSecurityWafCustomRuleCreateRequest; -pub mod model_application_security_waf_custom_rule_create_data; -pub use self::model_application_security_waf_custom_rule_create_data::ApplicationSecurityWafCustomRuleCreateData; -pub mod model_application_security_waf_custom_rule_create_attributes; -pub use self::model_application_security_waf_custom_rule_create_attributes::ApplicationSecurityWafCustomRuleCreateAttributes; -pub mod model_application_security_waf_custom_rule_response; -pub use self::model_application_security_waf_custom_rule_response::ApplicationSecurityWafCustomRuleResponse; -pub mod model_application_security_waf_custom_rule_update_request; -pub use self::model_application_security_waf_custom_rule_update_request::ApplicationSecurityWafCustomRuleUpdateRequest; -pub mod model_application_security_waf_custom_rule_update_data; -pub use self::model_application_security_waf_custom_rule_update_data::ApplicationSecurityWafCustomRuleUpdateData; -pub mod model_application_security_waf_custom_rule_update_attributes; -pub use self::model_application_security_waf_custom_rule_update_attributes::ApplicationSecurityWafCustomRuleUpdateAttributes; -pub mod model_application_security_waf_exclusion_filters_response; -pub use self::model_application_security_waf_exclusion_filters_response::ApplicationSecurityWafExclusionFiltersResponse; -pub mod model_application_security_waf_exclusion_filter_resource; -pub use self::model_application_security_waf_exclusion_filter_resource::ApplicationSecurityWafExclusionFilterResource; -pub mod model_application_security_waf_exclusion_filter_attributes; -pub use self::model_application_security_waf_exclusion_filter_attributes::ApplicationSecurityWafExclusionFilterAttributes; -pub mod model_application_security_waf_exclusion_filter_metadata; -pub use self::model_application_security_waf_exclusion_filter_metadata::ApplicationSecurityWafExclusionFilterMetadata; -pub mod model_application_security_waf_exclusion_filter_on_match; -pub use self::model_application_security_waf_exclusion_filter_on_match::ApplicationSecurityWafExclusionFilterOnMatch; -pub mod model_application_security_waf_exclusion_filter_rules_target; -pub use self::model_application_security_waf_exclusion_filter_rules_target::ApplicationSecurityWafExclusionFilterRulesTarget; -pub mod model_application_security_waf_exclusion_filter_rules_target_tags; -pub use self::model_application_security_waf_exclusion_filter_rules_target_tags::ApplicationSecurityWafExclusionFilterRulesTargetTags; -pub mod model_application_security_waf_exclusion_filter_scope; -pub use self::model_application_security_waf_exclusion_filter_scope::ApplicationSecurityWafExclusionFilterScope; -pub mod model_application_security_waf_exclusion_filter_type; -pub use self::model_application_security_waf_exclusion_filter_type::ApplicationSecurityWafExclusionFilterType; -pub mod model_application_security_waf_exclusion_filter_create_request; -pub use self::model_application_security_waf_exclusion_filter_create_request::ApplicationSecurityWafExclusionFilterCreateRequest; -pub mod model_application_security_waf_exclusion_filter_create_data; -pub use self::model_application_security_waf_exclusion_filter_create_data::ApplicationSecurityWafExclusionFilterCreateData; -pub mod model_application_security_waf_exclusion_filter_create_attributes; -pub use self::model_application_security_waf_exclusion_filter_create_attributes::ApplicationSecurityWafExclusionFilterCreateAttributes; -pub mod model_application_security_waf_exclusion_filter_response; -pub use self::model_application_security_waf_exclusion_filter_response::ApplicationSecurityWafExclusionFilterResponse; -pub mod model_application_security_waf_exclusion_filter_update_request; -pub use self::model_application_security_waf_exclusion_filter_update_request::ApplicationSecurityWafExclusionFilterUpdateRequest; -pub mod model_application_security_waf_exclusion_filter_update_data; -pub use self::model_application_security_waf_exclusion_filter_update_data::ApplicationSecurityWafExclusionFilterUpdateData; -pub mod model_application_security_waf_exclusion_filter_update_attributes; -pub use self::model_application_security_waf_exclusion_filter_update_attributes::ApplicationSecurityWafExclusionFilterUpdateAttributes; -pub mod model_cloud_workload_security_agent_rules_list_response; -pub use self::model_cloud_workload_security_agent_rules_list_response::CloudWorkloadSecurityAgentRulesListResponse; -pub mod model_cloud_workload_security_agent_rule_data; -pub use self::model_cloud_workload_security_agent_rule_data::CloudWorkloadSecurityAgentRuleData; -pub mod model_cloud_workload_security_agent_rule_attributes; -pub use self::model_cloud_workload_security_agent_rule_attributes::CloudWorkloadSecurityAgentRuleAttributes; -pub mod model_cloud_workload_security_agent_rule_action; -pub use self::model_cloud_workload_security_agent_rule_action::CloudWorkloadSecurityAgentRuleAction; -pub mod model_cloud_workload_security_agent_rule_action_hash; -pub use self::model_cloud_workload_security_agent_rule_action_hash::CloudWorkloadSecurityAgentRuleActionHash; -pub mod model_cloud_workload_security_agent_rule_kill; -pub use self::model_cloud_workload_security_agent_rule_kill::CloudWorkloadSecurityAgentRuleKill; -pub mod model_cloud_workload_security_agent_rule_action_metadata; -pub use self::model_cloud_workload_security_agent_rule_action_metadata::CloudWorkloadSecurityAgentRuleActionMetadata; -pub mod model_cloud_workload_security_agent_rule_action_set; -pub use self::model_cloud_workload_security_agent_rule_action_set::CloudWorkloadSecurityAgentRuleActionSet; -pub mod model_cloud_workload_security_agent_rule_action_set_value; -pub use self::model_cloud_workload_security_agent_rule_action_set_value::CloudWorkloadSecurityAgentRuleActionSetValue; -pub mod model_cloud_workload_security_agent_rule_creator_attributes; -pub use self::model_cloud_workload_security_agent_rule_creator_attributes::CloudWorkloadSecurityAgentRuleCreatorAttributes; -pub mod model_cloud_workload_security_agent_rule_updater_attributes; -pub use self::model_cloud_workload_security_agent_rule_updater_attributes::CloudWorkloadSecurityAgentRuleUpdaterAttributes; -pub mod model_cloud_workload_security_agent_rule_type; -pub use self::model_cloud_workload_security_agent_rule_type::CloudWorkloadSecurityAgentRuleType; -pub mod model_cloud_workload_security_agent_rule_create_request; -pub use self::model_cloud_workload_security_agent_rule_create_request::CloudWorkloadSecurityAgentRuleCreateRequest; -pub mod model_cloud_workload_security_agent_rule_create_data; -pub use self::model_cloud_workload_security_agent_rule_create_data::CloudWorkloadSecurityAgentRuleCreateData; -pub mod model_cloud_workload_security_agent_rule_create_attributes; -pub use self::model_cloud_workload_security_agent_rule_create_attributes::CloudWorkloadSecurityAgentRuleCreateAttributes; -pub mod model_cloud_workload_security_agent_rule_response; -pub use self::model_cloud_workload_security_agent_rule_response::CloudWorkloadSecurityAgentRuleResponse; -pub mod model_cloud_workload_security_agent_rule_update_request; -pub use self::model_cloud_workload_security_agent_rule_update_request::CloudWorkloadSecurityAgentRuleUpdateRequest; -pub mod model_cloud_workload_security_agent_rule_update_data; -pub use self::model_cloud_workload_security_agent_rule_update_data::CloudWorkloadSecurityAgentRuleUpdateData; -pub mod model_cloud_workload_security_agent_rule_update_attributes; -pub use self::model_cloud_workload_security_agent_rule_update_attributes::CloudWorkloadSecurityAgentRuleUpdateAttributes; -pub mod model_cloud_workload_security_agent_policies_list_response; -pub use self::model_cloud_workload_security_agent_policies_list_response::CloudWorkloadSecurityAgentPoliciesListResponse; -pub mod model_cloud_workload_security_agent_policy_data; -pub use self::model_cloud_workload_security_agent_policy_data::CloudWorkloadSecurityAgentPolicyData; -pub mod model_cloud_workload_security_agent_policy_attributes; -pub use self::model_cloud_workload_security_agent_policy_attributes::CloudWorkloadSecurityAgentPolicyAttributes; -pub mod model_cloud_workload_security_agent_policy_updater_attributes; -pub use self::model_cloud_workload_security_agent_policy_updater_attributes::CloudWorkloadSecurityAgentPolicyUpdaterAttributes; -pub mod model_cloud_workload_security_agent_policy_version; -pub use self::model_cloud_workload_security_agent_policy_version::CloudWorkloadSecurityAgentPolicyVersion; -pub mod model_cloud_workload_security_agent_policy_type; -pub use self::model_cloud_workload_security_agent_policy_type::CloudWorkloadSecurityAgentPolicyType; -pub mod model_cloud_workload_security_agent_policy_create_request; -pub use self::model_cloud_workload_security_agent_policy_create_request::CloudWorkloadSecurityAgentPolicyCreateRequest; -pub mod model_cloud_workload_security_agent_policy_create_data; -pub use self::model_cloud_workload_security_agent_policy_create_data::CloudWorkloadSecurityAgentPolicyCreateData; -pub mod model_cloud_workload_security_agent_policy_create_attributes; -pub use self::model_cloud_workload_security_agent_policy_create_attributes::CloudWorkloadSecurityAgentPolicyCreateAttributes; -pub mod model_cloud_workload_security_agent_policy_response; -pub use self::model_cloud_workload_security_agent_policy_response::CloudWorkloadSecurityAgentPolicyResponse; -pub mod model_cloud_workload_security_agent_policy_update_request; -pub use self::model_cloud_workload_security_agent_policy_update_request::CloudWorkloadSecurityAgentPolicyUpdateRequest; -pub mod model_cloud_workload_security_agent_policy_update_data; -pub use self::model_cloud_workload_security_agent_policy_update_data::CloudWorkloadSecurityAgentPolicyUpdateData; -pub mod model_cloud_workload_security_agent_policy_update_attributes; -pub use self::model_cloud_workload_security_agent_policy_update_attributes::CloudWorkloadSecurityAgentPolicyUpdateAttributes; pub mod model_list_pipelines_response; pub use self::model_list_pipelines_response::ListPipelinesResponse; pub mod model_observability_pipeline_data; @@ -5016,6 +4008,10 @@ 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_cloud_prem_destination; +pub use self::model_observability_pipeline_cloud_prem_destination::ObservabilityPipelineCloudPremDestination; +pub mod model_observability_pipeline_cloud_prem_destination_type; +pub use self::model_observability_pipeline_cloud_prem_destination_type::ObservabilityPipelineCloudPremDestinationType; 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; @@ -5056,6 +4052,8 @@ 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_data_stream; +pub use self::model_observability_pipeline_elasticsearch_destination_data_stream::ObservabilityPipelineElasticsearchDestinationDataStream; 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; @@ -5146,18 +4144,132 @@ 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_kafka_destination; +pub use self::model_observability_pipeline_kafka_destination::ObservabilityPipelineKafkaDestination; +pub mod model_observability_pipeline_kafka_destination_compression; +pub use self::model_observability_pipeline_kafka_destination_compression::ObservabilityPipelineKafkaDestinationCompression; +pub mod model_observability_pipeline_kafka_destination_encoding; +pub use self::model_observability_pipeline_kafka_destination_encoding::ObservabilityPipelineKafkaDestinationEncoding; +pub mod model_observability_pipeline_kafka_librdkafka_option; +pub use self::model_observability_pipeline_kafka_librdkafka_option::ObservabilityPipelineKafkaLibrdkafkaOption; +pub mod model_observability_pipeline_kafka_sasl; +pub use self::model_observability_pipeline_kafka_sasl::ObservabilityPipelineKafkaSasl; +pub mod model_observability_pipeline_kafka_sasl_mechanism; +pub use self::model_observability_pipeline_kafka_sasl_mechanism::ObservabilityPipelineKafkaSaslMechanism; +pub mod model_observability_pipeline_kafka_destination_type; +pub use self::model_observability_pipeline_kafka_destination_type::ObservabilityPipelineKafkaDestinationType; pub mod model_observability_pipeline_config_destination_item; pub use self::model_observability_pipeline_config_destination_item::ObservabilityPipelineConfigDestinationItem; pub mod model_observability_pipeline_config_processor_group; pub use self::model_observability_pipeline_config_processor_group::ObservabilityPipelineConfigProcessorGroup; +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_add_hostname_processor; +pub use self::model_observability_pipeline_add_hostname_processor::ObservabilityPipelineAddHostnameProcessor; +pub mod model_observability_pipeline_add_hostname_processor_type; +pub use self::model_observability_pipeline_add_hostname_processor_type::ObservabilityPipelineAddHostnameProcessorType; +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_reference_table; +pub use self::model_observability_pipeline_enrichment_table_reference_table::ObservabilityPipelineEnrichmentTableReferenceTable; +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_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_generate_metrics_processor; +pub use self::model_observability_pipeline_generate_metrics_processor::ObservabilityPipelineGenerateMetricsProcessor; +pub mod model_observability_pipeline_generated_metric; +pub use self::model_observability_pipeline_generated_metric::ObservabilityPipelineGeneratedMetric; +pub mod model_observability_pipeline_generated_metric_metric_type; +pub use self::model_observability_pipeline_generated_metric_metric_type::ObservabilityPipelineGeneratedMetricMetricType; +pub mod model_observability_pipeline_generated_metric_increment_by_one; +pub use self::model_observability_pipeline_generated_metric_increment_by_one::ObservabilityPipelineGeneratedMetricIncrementByOne; +pub mod model_observability_pipeline_generated_metric_increment_by_one_strategy; +pub use self::model_observability_pipeline_generated_metric_increment_by_one_strategy::ObservabilityPipelineGeneratedMetricIncrementByOneStrategy; +pub mod model_observability_pipeline_generated_metric_increment_by_field; +pub use self::model_observability_pipeline_generated_metric_increment_by_field::ObservabilityPipelineGeneratedMetricIncrementByField; +pub mod model_observability_pipeline_generated_metric_increment_by_field_strategy; +pub use self::model_observability_pipeline_generated_metric_increment_by_field_strategy::ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy; +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_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; +pub use self::model_observability_pipeline_parse_grok_processor_rule::ObservabilityPipelineParseGrokProcessorRule; +pub mod model_observability_pipeline_parse_grok_processor_rule_match_rule; +pub use self::model_observability_pipeline_parse_grok_processor_rule_match_rule::ObservabilityPipelineParseGrokProcessorRuleMatchRule; +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_parse_xml_processor; +pub use self::model_observability_pipeline_parse_xml_processor::ObservabilityPipelineParseXMLProcessor; +pub mod model_observability_pipeline_parse_xml_processor_type; +pub use self::model_observability_pipeline_parse_xml_processor_type::ObservabilityPipelineParseXMLProcessorType; pub mod model_observability_pipeline_quota_processor; pub use self::model_observability_pipeline_quota_processor::ObservabilityPipelineQuotaProcessor; pub mod model_observability_pipeline_quota_processor_limit; @@ -5168,14 +4280,16 @@ 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_fields_processor; -pub use self::model_observability_pipeline_add_fields_processor::ObservabilityPipelineAddFieldsProcessor; -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_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; @@ -5186,38 +4300,10 @@ 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_generate_metrics_processor; -pub use self::model_observability_pipeline_generate_metrics_processor::ObservabilityPipelineGenerateMetricsProcessor; -pub mod model_observability_pipeline_generated_metric; -pub use self::model_observability_pipeline_generated_metric::ObservabilityPipelineGeneratedMetric; -pub mod model_observability_pipeline_generated_metric_metric_type; -pub use self::model_observability_pipeline_generated_metric_metric_type::ObservabilityPipelineGeneratedMetricMetricType; -pub mod model_observability_pipeline_generated_metric_increment_by_one; -pub use self::model_observability_pipeline_generated_metric_increment_by_one::ObservabilityPipelineGeneratedMetricIncrementByOne; -pub mod model_observability_pipeline_generated_metric_increment_by_one_strategy; -pub use self::model_observability_pipeline_generated_metric_increment_by_one_strategy::ObservabilityPipelineGeneratedMetricIncrementByOneStrategy; -pub mod model_observability_pipeline_generated_metric_increment_by_field; -pub use self::model_observability_pipeline_generated_metric_increment_by_field::ObservabilityPipelineGeneratedMetricIncrementByField; -pub mod model_observability_pipeline_generated_metric_increment_by_field_strategy; -pub use self::model_observability_pipeline_generated_metric_increment_by_field_strategy::ObservabilityPipelineGeneratedMetricIncrementByFieldStrategy; -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_parse_grok_processor; -pub use self::model_observability_pipeline_parse_grok_processor::ObservabilityPipelineParseGrokProcessor; -pub mod model_observability_pipeline_parse_grok_processor_rule; -pub use self::model_observability_pipeline_parse_grok_processor_rule::ObservabilityPipelineParseGrokProcessorRule; -pub mod model_observability_pipeline_parse_grok_processor_rule_match_rule; -pub use self::model_observability_pipeline_parse_grok_processor_rule_match_rule::ObservabilityPipelineParseGrokProcessorRuleMatchRule; -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_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; @@ -5274,86 +4360,22 @@ pub mod model_observability_pipeline_sensitive_data_scanner_processor_scope_all_ pub use self::model_observability_pipeline_sensitive_data_scanner_processor_scope_all_target::ObservabilityPipelineSensitiveDataScannerProcessorScopeAllTarget; 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_sensitive_data_scanner_processor_type; +pub use self::model_observability_pipeline_sensitive_data_scanner_processor_type::ObservabilityPipelineSensitiveDataScannerProcessorType; +pub mod model_observability_pipeline_split_array_processor; +pub use self::model_observability_pipeline_split_array_processor::ObservabilityPipelineSplitArrayProcessor; +pub mod model_observability_pipeline_split_array_processor_array_config; +pub use self::model_observability_pipeline_split_array_processor_array_config::ObservabilityPipelineSplitArrayProcessorArrayConfig; +pub mod model_observability_pipeline_split_array_processor_type; +pub use self::model_observability_pipeline_split_array_processor_type::ObservabilityPipelineSplitArrayProcessorType; 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_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; @@ -5448,6 +4470,10 @@ 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_opentelemetry_source; +pub use self::model_observability_pipeline_opentelemetry_source::ObservabilityPipelineOpentelemetrySource; +pub mod model_observability_pipeline_opentelemetry_source_type; +pub use self::model_observability_pipeline_opentelemetry_source_type::ObservabilityPipelineOpentelemetrySourceType; 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; @@ -5464,6 +4490,1014 @@ pub mod model_validation_error; pub use self::model_validation_error::ValidationError; pub mod model_validation_error_meta; pub use self::model_validation_error_meta::ValidationErrorMeta; +pub mod model_escalation_policy_create_request; +pub use self::model_escalation_policy_create_request::EscalationPolicyCreateRequest; +pub mod model_escalation_policy_create_request_data; +pub use self::model_escalation_policy_create_request_data::EscalationPolicyCreateRequestData; +pub mod model_escalation_policy_create_request_data_attributes; +pub use self::model_escalation_policy_create_request_data_attributes::EscalationPolicyCreateRequestDataAttributes; +pub mod model_escalation_policy_create_request_data_attributes_steps_items; +pub use self::model_escalation_policy_create_request_data_attributes_steps_items::EscalationPolicyCreateRequestDataAttributesStepsItems; +pub mod model_escalation_policy_step_attributes_assignment; +pub use self::model_escalation_policy_step_attributes_assignment::EscalationPolicyStepAttributesAssignment; +pub mod model_escalation_policy_step_target; +pub use self::model_escalation_policy_step_target::EscalationPolicyStepTarget; +pub mod model_escalation_policy_step_target_config; +pub use self::model_escalation_policy_step_target_config::EscalationPolicyStepTargetConfig; +pub mod model_escalation_policy_step_target_config_schedule; +pub use self::model_escalation_policy_step_target_config_schedule::EscalationPolicyStepTargetConfigSchedule; +pub mod model_schedule_target_position; +pub use self::model_schedule_target_position::ScheduleTargetPosition; +pub mod model_escalation_policy_step_target_type; +pub use self::model_escalation_policy_step_target_type::EscalationPolicyStepTargetType; +pub mod model_escalation_policy_create_request_data_relationships; +pub use self::model_escalation_policy_create_request_data_relationships::EscalationPolicyCreateRequestDataRelationships; +pub mod model_data_relationships_teams; +pub use self::model_data_relationships_teams::DataRelationshipsTeams; +pub mod model_data_relationships_teams_data_items; +pub use self::model_data_relationships_teams_data_items::DataRelationshipsTeamsDataItems; +pub mod model_data_relationships_teams_data_items_type; +pub use self::model_data_relationships_teams_data_items_type::DataRelationshipsTeamsDataItemsType; +pub mod model_escalation_policy_create_request_data_type; +pub use self::model_escalation_policy_create_request_data_type::EscalationPolicyCreateRequestDataType; +pub mod model_escalation_policy; +pub use self::model_escalation_policy::EscalationPolicy; +pub mod model_escalation_policy_data; +pub use self::model_escalation_policy_data::EscalationPolicyData; +pub mod model_escalation_policy_data_attributes; +pub use self::model_escalation_policy_data_attributes::EscalationPolicyDataAttributes; +pub mod model_escalation_policy_data_relationships; +pub use self::model_escalation_policy_data_relationships::EscalationPolicyDataRelationships; +pub mod model_escalation_policy_data_relationships_steps; +pub use self::model_escalation_policy_data_relationships_steps::EscalationPolicyDataRelationshipsSteps; +pub mod model_escalation_policy_data_relationships_steps_data_items; +pub use self::model_escalation_policy_data_relationships_steps_data_items::EscalationPolicyDataRelationshipsStepsDataItems; +pub mod model_escalation_policy_data_relationships_steps_data_items_type; +pub use self::model_escalation_policy_data_relationships_steps_data_items_type::EscalationPolicyDataRelationshipsStepsDataItemsType; +pub mod model_escalation_policy_data_type; +pub use self::model_escalation_policy_data_type::EscalationPolicyDataType; +pub mod model_escalation_policy_step; +pub use self::model_escalation_policy_step::EscalationPolicyStep; +pub mod model_escalation_policy_step_attributes; +pub use self::model_escalation_policy_step_attributes::EscalationPolicyStepAttributes; +pub mod model_escalation_policy_step_relationships; +pub use self::model_escalation_policy_step_relationships::EscalationPolicyStepRelationships; +pub mod model_escalation_targets; +pub use self::model_escalation_targets::EscalationTargets; +pub mod model_team_target; +pub use self::model_team_target::TeamTarget; +pub mod model_team_target_type; +pub use self::model_team_target_type::TeamTargetType; +pub mod model_user_target; +pub use self::model_user_target::UserTarget; +pub mod model_user_target_type; +pub use self::model_user_target_type::UserTargetType; +pub mod model_schedule_target; +pub use self::model_schedule_target::ScheduleTarget; +pub mod model_schedule_target_type; +pub use self::model_schedule_target_type::ScheduleTargetType; +pub mod model_configured_schedule_target; +pub use self::model_configured_schedule_target::ConfiguredScheduleTarget; +pub mod model_configured_schedule_target_type; +pub use self::model_configured_schedule_target_type::ConfiguredScheduleTargetType; +pub mod model_escalation_target; +pub use self::model_escalation_target::EscalationTarget; +pub mod model_escalation_policy_step_type; +pub use self::model_escalation_policy_step_type::EscalationPolicyStepType; +pub mod model_escalation_policy_user; +pub use self::model_escalation_policy_user::EscalationPolicyUser; +pub mod model_escalation_policy_user_attributes; +pub use self::model_escalation_policy_user_attributes::EscalationPolicyUserAttributes; +pub mod model_user_attributes_status; +pub use self::model_user_attributes_status::UserAttributesStatus; +pub mod model_escalation_policy_user_type; +pub use self::model_escalation_policy_user_type::EscalationPolicyUserType; +pub mod model_schedule_data; +pub use self::model_schedule_data::ScheduleData; +pub mod model_schedule_data_attributes; +pub use self::model_schedule_data_attributes::ScheduleDataAttributes; +pub mod model_schedule_data_relationships; +pub use self::model_schedule_data_relationships::ScheduleDataRelationships; +pub mod model_schedule_data_relationships_layers; +pub use self::model_schedule_data_relationships_layers::ScheduleDataRelationshipsLayers; +pub mod model_schedule_data_relationships_layers_data_items; +pub use self::model_schedule_data_relationships_layers_data_items::ScheduleDataRelationshipsLayersDataItems; +pub mod model_schedule_data_relationships_layers_data_items_type; +pub use self::model_schedule_data_relationships_layers_data_items_type::ScheduleDataRelationshipsLayersDataItemsType; +pub mod model_schedule_data_type; +pub use self::model_schedule_data_type::ScheduleDataType; +pub mod model_configured_schedule; +pub use self::model_configured_schedule::ConfiguredSchedule; +pub mod model_configured_schedule_target_attributes; +pub use self::model_configured_schedule_target_attributes::ConfiguredScheduleTargetAttributes; +pub mod model_configured_schedule_target_relationships; +pub use self::model_configured_schedule_target_relationships::ConfiguredScheduleTargetRelationships; +pub mod model_configured_schedule_target_relationships_schedule; +pub use self::model_configured_schedule_target_relationships_schedule::ConfiguredScheduleTargetRelationshipsSchedule; +pub mod model_team_reference; +pub use self::model_team_reference::TeamReference; +pub mod model_team_reference_attributes; +pub use self::model_team_reference_attributes::TeamReferenceAttributes; +pub mod model_team_reference_type; +pub use self::model_team_reference_type::TeamReferenceType; +pub mod model_escalation_policy_included; +pub use self::model_escalation_policy_included::EscalationPolicyIncluded; +pub mod model_escalation_policy_update_request; +pub use self::model_escalation_policy_update_request::EscalationPolicyUpdateRequest; +pub mod model_escalation_policy_update_request_data; +pub use self::model_escalation_policy_update_request_data::EscalationPolicyUpdateRequestData; +pub mod model_escalation_policy_update_request_data_attributes; +pub use self::model_escalation_policy_update_request_data_attributes::EscalationPolicyUpdateRequestDataAttributes; +pub mod model_escalation_policy_update_request_data_attributes_steps_items; +pub use self::model_escalation_policy_update_request_data_attributes_steps_items::EscalationPolicyUpdateRequestDataAttributesStepsItems; +pub mod model_escalation_policy_update_request_data_relationships; +pub use self::model_escalation_policy_update_request_data_relationships::EscalationPolicyUpdateRequestDataRelationships; +pub mod model_escalation_policy_update_request_data_type; +pub use self::model_escalation_policy_update_request_data_type::EscalationPolicyUpdateRequestDataType; +pub mod model_create_page_request; +pub use self::model_create_page_request::CreatePageRequest; +pub mod model_create_page_request_data; +pub use self::model_create_page_request_data::CreatePageRequestData; +pub mod model_create_page_request_data_attributes; +pub use self::model_create_page_request_data_attributes::CreatePageRequestDataAttributes; +pub mod model_create_page_request_data_attributes_target; +pub use self::model_create_page_request_data_attributes_target::CreatePageRequestDataAttributesTarget; +pub mod model_on_call_page_target_type; +pub use self::model_on_call_page_target_type::OnCallPageTargetType; +pub mod model_page_urgency; +pub use self::model_page_urgency::PageUrgency; +pub mod model_create_page_request_data_type; +pub use self::model_create_page_request_data_type::CreatePageRequestDataType; +pub mod model_create_page_response; +pub use self::model_create_page_response::CreatePageResponse; +pub mod model_create_page_response_data; +pub use self::model_create_page_response_data::CreatePageResponseData; +pub mod model_create_page_response_data_type; +pub use self::model_create_page_response_data_type::CreatePageResponseDataType; +pub mod model_schedule_create_request; +pub use self::model_schedule_create_request::ScheduleCreateRequest; +pub mod model_schedule_create_request_data; +pub use self::model_schedule_create_request_data::ScheduleCreateRequestData; +pub mod model_schedule_create_request_data_attributes; +pub use self::model_schedule_create_request_data_attributes::ScheduleCreateRequestDataAttributes; +pub mod model_schedule_create_request_data_attributes_layers_items; +pub use self::model_schedule_create_request_data_attributes_layers_items::ScheduleCreateRequestDataAttributesLayersItems; +pub mod model_layer_attributes_interval; +pub use self::model_layer_attributes_interval::LayerAttributesInterval; +pub mod model_schedule_request_data_attributes_layers_items_members_items; +pub use self::model_schedule_request_data_attributes_layers_items_members_items::ScheduleRequestDataAttributesLayersItemsMembersItems; +pub mod model_schedule_request_data_attributes_layers_items_members_items_user; +pub use self::model_schedule_request_data_attributes_layers_items_members_items_user::ScheduleRequestDataAttributesLayersItemsMembersItemsUser; +pub mod model_time_restriction; +pub use self::model_time_restriction::TimeRestriction; +pub mod model_weekday; +pub use self::model_weekday::Weekday; +pub mod model_schedule_create_request_data_relationships; +pub use self::model_schedule_create_request_data_relationships::ScheduleCreateRequestDataRelationships; +pub mod model_schedule_create_request_data_type; +pub use self::model_schedule_create_request_data_type::ScheduleCreateRequestDataType; +pub mod model_schedule; +pub use self::model_schedule::Schedule; +pub mod model_layer; +pub use self::model_layer::Layer; +pub mod model_layer_attributes; +pub use self::model_layer_attributes::LayerAttributes; +pub mod model_layer_relationships; +pub use self::model_layer_relationships::LayerRelationships; +pub mod model_layer_relationships_members; +pub use self::model_layer_relationships_members::LayerRelationshipsMembers; +pub mod model_layer_relationships_members_data_items; +pub use self::model_layer_relationships_members_data_items::LayerRelationshipsMembersDataItems; +pub mod model_layer_relationships_members_data_items_type; +pub use self::model_layer_relationships_members_data_items_type::LayerRelationshipsMembersDataItemsType; +pub mod model_layer_type; +pub use self::model_layer_type::LayerType; +pub mod model_schedule_member; +pub use self::model_schedule_member::ScheduleMember; +pub mod model_schedule_member_relationships; +pub use self::model_schedule_member_relationships::ScheduleMemberRelationships; +pub mod model_schedule_member_relationships_user; +pub use self::model_schedule_member_relationships_user::ScheduleMemberRelationshipsUser; +pub mod model_schedule_member_relationships_user_data; +pub use self::model_schedule_member_relationships_user_data::ScheduleMemberRelationshipsUserData; +pub mod model_schedule_member_relationships_user_data_type; +pub use self::model_schedule_member_relationships_user_data_type::ScheduleMemberRelationshipsUserDataType; +pub mod model_schedule_member_type; +pub use self::model_schedule_member_type::ScheduleMemberType; +pub mod model_schedule_user; +pub use self::model_schedule_user::ScheduleUser; +pub mod model_schedule_user_attributes; +pub use self::model_schedule_user_attributes::ScheduleUserAttributes; +pub mod model_schedule_user_type; +pub use self::model_schedule_user_type::ScheduleUserType; +pub mod model_schedule_data_included_item; +pub use self::model_schedule_data_included_item::ScheduleDataIncludedItem; +pub mod model_schedule_update_request; +pub use self::model_schedule_update_request::ScheduleUpdateRequest; +pub mod model_schedule_update_request_data; +pub use self::model_schedule_update_request_data::ScheduleUpdateRequestData; +pub mod model_schedule_update_request_data_attributes; +pub use self::model_schedule_update_request_data_attributes::ScheduleUpdateRequestDataAttributes; +pub mod model_schedule_update_request_data_attributes_layers_items; +pub use self::model_schedule_update_request_data_attributes_layers_items::ScheduleUpdateRequestDataAttributesLayersItems; +pub mod model_schedule_update_request_data_relationships; +pub use self::model_schedule_update_request_data_relationships::ScheduleUpdateRequestDataRelationships; +pub mod model_schedule_update_request_data_type; +pub use self::model_schedule_update_request_data_type::ScheduleUpdateRequestDataType; +pub mod model_shift; +pub use self::model_shift::Shift; +pub mod model_shift_data; +pub use self::model_shift_data::ShiftData; +pub mod model_shift_data_attributes; +pub use self::model_shift_data_attributes::ShiftDataAttributes; +pub mod model_shift_data_relationships; +pub use self::model_shift_data_relationships::ShiftDataRelationships; +pub mod model_shift_data_relationships_user; +pub use self::model_shift_data_relationships_user::ShiftDataRelationshipsUser; +pub mod model_shift_data_relationships_user_data; +pub use self::model_shift_data_relationships_user_data::ShiftDataRelationshipsUserData; +pub mod model_shift_data_relationships_user_data_type; +pub use self::model_shift_data_relationships_user_data_type::ShiftDataRelationshipsUserDataType; +pub mod model_shift_data_type; +pub use self::model_shift_data_type::ShiftDataType; +pub mod model_shift_included; +pub use self::model_shift_included::ShiftIncluded; +pub mod model_team_on_call_responders; +pub use self::model_team_on_call_responders::TeamOnCallResponders; +pub mod model_team_on_call_responders_data; +pub use self::model_team_on_call_responders_data::TeamOnCallRespondersData; +pub mod model_team_on_call_responders_data_relationships; +pub use self::model_team_on_call_responders_data_relationships::TeamOnCallRespondersDataRelationships; +pub mod model_team_on_call_responders_data_relationships_escalations; +pub use self::model_team_on_call_responders_data_relationships_escalations::TeamOnCallRespondersDataRelationshipsEscalations; +pub mod model_team_on_call_responders_data_relationships_escalations_data_items; +pub use self::model_team_on_call_responders_data_relationships_escalations_data_items::TeamOnCallRespondersDataRelationshipsEscalationsDataItems; +pub mod model_team_on_call_responders_data_relationships_escalations_data_items_type; +pub use self::model_team_on_call_responders_data_relationships_escalations_data_items_type::TeamOnCallRespondersDataRelationshipsEscalationsDataItemsType; +pub mod model_team_on_call_responders_data_relationships_responders; +pub use self::model_team_on_call_responders_data_relationships_responders::TeamOnCallRespondersDataRelationshipsResponders; +pub mod model_team_on_call_responders_data_relationships_responders_data_items; +pub use self::model_team_on_call_responders_data_relationships_responders_data_items::TeamOnCallRespondersDataRelationshipsRespondersDataItems; +pub mod model_team_on_call_responders_data_relationships_responders_data_items_type; +pub use self::model_team_on_call_responders_data_relationships_responders_data_items_type::TeamOnCallRespondersDataRelationshipsRespondersDataItemsType; +pub mod model_team_on_call_responders_data_type; +pub use self::model_team_on_call_responders_data_type::TeamOnCallRespondersDataType; +pub mod model_escalation; +pub use self::model_escalation::Escalation; +pub mod model_escalation_relationships; +pub use self::model_escalation_relationships::EscalationRelationships; +pub mod model_escalation_relationships_responders; +pub use self::model_escalation_relationships_responders::EscalationRelationshipsResponders; +pub mod model_escalation_relationships_responders_data_items; +pub use self::model_escalation_relationships_responders_data_items::EscalationRelationshipsRespondersDataItems; +pub mod model_escalation_relationships_responders_data_items_type; +pub use self::model_escalation_relationships_responders_data_items_type::EscalationRelationshipsRespondersDataItemsType; +pub mod model_escalation_type; +pub use self::model_escalation_type::EscalationType; +pub mod model_team_on_call_responders_included; +pub use self::model_team_on_call_responders_included::TeamOnCallRespondersIncluded; +pub mod model_team_routing_rules; +pub use self::model_team_routing_rules::TeamRoutingRules; +pub mod model_team_routing_rules_data; +pub use self::model_team_routing_rules_data::TeamRoutingRulesData; +pub mod model_team_routing_rules_data_relationships; +pub use self::model_team_routing_rules_data_relationships::TeamRoutingRulesDataRelationships; +pub mod model_team_routing_rules_data_relationships_rules; +pub use self::model_team_routing_rules_data_relationships_rules::TeamRoutingRulesDataRelationshipsRules; +pub mod model_team_routing_rules_data_relationships_rules_data_items; +pub use self::model_team_routing_rules_data_relationships_rules_data_items::TeamRoutingRulesDataRelationshipsRulesDataItems; +pub mod model_team_routing_rules_data_relationships_rules_data_items_type; +pub use self::model_team_routing_rules_data_relationships_rules_data_items_type::TeamRoutingRulesDataRelationshipsRulesDataItemsType; +pub mod model_team_routing_rules_data_type; +pub use self::model_team_routing_rules_data_type::TeamRoutingRulesDataType; +pub mod model_routing_rule; +pub use self::model_routing_rule::RoutingRule; +pub mod model_routing_rule_attributes; +pub use self::model_routing_rule_attributes::RoutingRuleAttributes; +pub mod model_send_slack_message_action; +pub use self::model_send_slack_message_action::SendSlackMessageAction; +pub mod model_send_slack_message_action_type; +pub use self::model_send_slack_message_action_type::SendSlackMessageActionType; +pub mod model_send_teams_message_action; +pub use self::model_send_teams_message_action::SendTeamsMessageAction; +pub mod model_send_teams_message_action_type; +pub use self::model_send_teams_message_action_type::SendTeamsMessageActionType; +pub mod model_routing_rule_action; +pub use self::model_routing_rule_action::RoutingRuleAction; +pub mod model_time_restrictions; +pub use self::model_time_restrictions::TimeRestrictions; +pub mod model_urgency; +pub use self::model_urgency::Urgency; +pub mod model_routing_rule_relationships; +pub use self::model_routing_rule_relationships::RoutingRuleRelationships; +pub mod model_routing_rule_relationships_policy; +pub use self::model_routing_rule_relationships_policy::RoutingRuleRelationshipsPolicy; +pub mod model_routing_rule_relationships_policy_data; +pub use self::model_routing_rule_relationships_policy_data::RoutingRuleRelationshipsPolicyData; +pub mod model_routing_rule_relationships_policy_data_type; +pub use self::model_routing_rule_relationships_policy_data_type::RoutingRuleRelationshipsPolicyDataType; +pub mod model_routing_rule_type; +pub use self::model_routing_rule_type::RoutingRuleType; +pub mod model_team_routing_rules_included; +pub use self::model_team_routing_rules_included::TeamRoutingRulesIncluded; +pub mod model_team_routing_rules_request; +pub use self::model_team_routing_rules_request::TeamRoutingRulesRequest; +pub mod model_team_routing_rules_request_data; +pub use self::model_team_routing_rules_request_data::TeamRoutingRulesRequestData; +pub mod model_team_routing_rules_request_data_attributes; +pub use self::model_team_routing_rules_request_data_attributes::TeamRoutingRulesRequestDataAttributes; +pub mod model_team_routing_rules_request_rule; +pub use self::model_team_routing_rules_request_rule::TeamRoutingRulesRequestRule; +pub mod model_team_routing_rules_request_data_type; +pub use self::model_team_routing_rules_request_data_type::TeamRoutingRulesRequestDataType; +pub mod model_list_notification_channels_response; +pub use self::model_list_notification_channels_response::ListNotificationChannelsResponse; +pub mod model_notification_channel_data; +pub use self::model_notification_channel_data::NotificationChannelData; +pub mod model_notification_channel_attributes; +pub use self::model_notification_channel_attributes::NotificationChannelAttributes; +pub mod model_notification_channel_phone_config; +pub use self::model_notification_channel_phone_config::NotificationChannelPhoneConfig; +pub mod model_notification_channel_phone_config_type; +pub use self::model_notification_channel_phone_config_type::NotificationChannelPhoneConfigType; +pub mod model_notification_channel_email_config; +pub use self::model_notification_channel_email_config::NotificationChannelEmailConfig; +pub mod model_notification_channel_email_format_type; +pub use self::model_notification_channel_email_format_type::NotificationChannelEmailFormatType; +pub mod model_notification_channel_email_config_type; +pub use self::model_notification_channel_email_config_type::NotificationChannelEmailConfigType; +pub mod model_notification_channel_push_config; +pub use self::model_notification_channel_push_config::NotificationChannelPushConfig; +pub mod model_notification_channel_push_config_type; +pub use self::model_notification_channel_push_config_type::NotificationChannelPushConfigType; +pub mod model_notification_channel_config; +pub use self::model_notification_channel_config::NotificationChannelConfig; +pub mod model_notification_channel_type; +pub use self::model_notification_channel_type::NotificationChannelType; +pub mod model_create_user_notification_channel_request; +pub use self::model_create_user_notification_channel_request::CreateUserNotificationChannelRequest; +pub mod model_create_notification_channel_data; +pub use self::model_create_notification_channel_data::CreateNotificationChannelData; +pub mod model_create_notification_channel_attributes; +pub use self::model_create_notification_channel_attributes::CreateNotificationChannelAttributes; +pub mod model_create_phone_notification_channel_config; +pub use self::model_create_phone_notification_channel_config::CreatePhoneNotificationChannelConfig; +pub mod model_create_email_notification_channel_config; +pub use self::model_create_email_notification_channel_config::CreateEmailNotificationChannelConfig; +pub mod model_create_notification_channel_config; +pub use self::model_create_notification_channel_config::CreateNotificationChannelConfig; +pub mod model_notification_channel; +pub use self::model_notification_channel::NotificationChannel; +pub mod model_list_on_call_notification_rules_response; +pub use self::model_list_on_call_notification_rules_response::ListOnCallNotificationRulesResponse; +pub mod model_on_call_notification_rule_data; +pub use self::model_on_call_notification_rule_data::OnCallNotificationRuleData; +pub mod model_on_call_notification_rule_attributes; +pub use self::model_on_call_notification_rule_attributes::OnCallNotificationRuleAttributes; +pub mod model_on_call_notification_rule_category; +pub use self::model_on_call_notification_rule_category::OnCallNotificationRuleCategory; +pub mod model_on_call_phone_notification_rule_settings; +pub use self::model_on_call_phone_notification_rule_settings::OnCallPhoneNotificationRuleSettings; +pub mod model_on_call_phone_notification_rule_method; +pub use self::model_on_call_phone_notification_rule_method::OnCallPhoneNotificationRuleMethod; +pub mod model_on_call_notification_rule_channel_settings; +pub use self::model_on_call_notification_rule_channel_settings::OnCallNotificationRuleChannelSettings; +pub mod model_on_call_notification_rule_relationships; +pub use self::model_on_call_notification_rule_relationships::OnCallNotificationRuleRelationships; +pub mod model_on_call_notification_rule_channel_relationship; +pub use self::model_on_call_notification_rule_channel_relationship::OnCallNotificationRuleChannelRelationship; +pub mod model_on_call_notification_rule_channel_relationship_data; +pub use self::model_on_call_notification_rule_channel_relationship_data::OnCallNotificationRuleChannelRelationshipData; +pub mod model_on_call_notification_rule_type; +pub use self::model_on_call_notification_rule_type::OnCallNotificationRuleType; +pub mod model_on_call_notification_rules_included; +pub use self::model_on_call_notification_rules_included::OnCallNotificationRulesIncluded; +pub mod model_create_on_call_notification_rule_request; +pub use self::model_create_on_call_notification_rule_request::CreateOnCallNotificationRuleRequest; +pub mod model_create_on_call_notification_rule_request_data; +pub use self::model_create_on_call_notification_rule_request_data::CreateOnCallNotificationRuleRequestData; +pub mod model_on_call_notification_rule_request_attributes; +pub use self::model_on_call_notification_rule_request_attributes::OnCallNotificationRuleRequestAttributes; +pub mod model_on_call_notification_rule; +pub use self::model_on_call_notification_rule::OnCallNotificationRule; +pub mod model_update_on_call_notification_rule_request; +pub use self::model_update_on_call_notification_rule_request::UpdateOnCallNotificationRuleRequest; +pub mod model_update_on_call_notification_rule_request_data; +pub use self::model_update_on_call_notification_rule_request_data::UpdateOnCallNotificationRuleRequestData; +pub mod model_update_on_call_notification_rule_request_attributes; +pub use self::model_update_on_call_notification_rule_request_attributes::UpdateOnCallNotificationRuleRequestAttributes; +pub mod model_org_config_list_response; +pub use self::model_org_config_list_response::OrgConfigListResponse; +pub mod model_org_config_read; +pub use self::model_org_config_read::OrgConfigRead; +pub mod model_org_config_read_attributes; +pub use self::model_org_config_read_attributes::OrgConfigReadAttributes; +pub mod model_org_config_type; +pub use self::model_org_config_type::OrgConfigType; +pub mod model_org_config_get_response; +pub use self::model_org_config_get_response::OrgConfigGetResponse; +pub mod model_org_config_write_request; +pub use self::model_org_config_write_request::OrgConfigWriteRequest; +pub mod model_org_config_write; +pub use self::model_org_config_write::OrgConfigWrite; +pub mod model_org_config_write_attributes; +pub use self::model_org_config_write_attributes::OrgConfigWriteAttributes; +pub mod model_org_connection_list_response; +pub use self::model_org_connection_list_response::OrgConnectionListResponse; +pub mod model_org_connection; +pub use self::model_org_connection::OrgConnection; +pub mod model_org_connection_attributes; +pub use self::model_org_connection_attributes::OrgConnectionAttributes; +pub mod model_org_connection_type_enum; +pub use self::model_org_connection_type_enum::OrgConnectionTypeEnum; +pub mod model_org_connection_relationships; +pub use self::model_org_connection_relationships::OrgConnectionRelationships; +pub mod model_org_connection_user_relationship; +pub use self::model_org_connection_user_relationship::OrgConnectionUserRelationship; +pub mod model_org_connection_user_relationship_data; +pub use self::model_org_connection_user_relationship_data::OrgConnectionUserRelationshipData; +pub mod model_org_connection_user_relationship_data_type; +pub use self::model_org_connection_user_relationship_data_type::OrgConnectionUserRelationshipDataType; +pub mod model_org_connection_org_relationship; +pub use self::model_org_connection_org_relationship::OrgConnectionOrgRelationship; +pub mod model_org_connection_org_relationship_data; +pub use self::model_org_connection_org_relationship_data::OrgConnectionOrgRelationshipData; +pub mod model_org_connection_org_relationship_data_type; +pub use self::model_org_connection_org_relationship_data_type::OrgConnectionOrgRelationshipDataType; +pub mod model_org_connection_type; +pub use self::model_org_connection_type::OrgConnectionType; +pub mod model_org_connection_list_response_meta; +pub use self::model_org_connection_list_response_meta::OrgConnectionListResponseMeta; +pub mod model_org_connection_list_response_meta_page; +pub use self::model_org_connection_list_response_meta_page::OrgConnectionListResponseMetaPage; +pub mod model_org_connection_create_request; +pub use self::model_org_connection_create_request::OrgConnectionCreateRequest; +pub mod model_org_connection_create; +pub use self::model_org_connection_create::OrgConnectionCreate; +pub mod model_org_connection_create_attributes; +pub use self::model_org_connection_create_attributes::OrgConnectionCreateAttributes; +pub mod model_org_connection_create_relationships; +pub use self::model_org_connection_create_relationships::OrgConnectionCreateRelationships; +pub mod model_org_connection_response; +pub use self::model_org_connection_response::OrgConnectionResponse; +pub mod model_org_connection_update_request; +pub use self::model_org_connection_update_request::OrgConnectionUpdateRequest; +pub mod model_org_connection_update; +pub use self::model_org_connection_update::OrgConnectionUpdate; +pub mod model_org_connection_update_attributes; +pub use self::model_org_connection_update_attributes::OrgConnectionUpdateAttributes; +pub mod model_permissions_response; +pub use self::model_permissions_response::PermissionsResponse; +pub mod model_permission; +pub use self::model_permission::Permission; +pub mod model_permission_attributes; +pub use self::model_permission_attributes::PermissionAttributes; +pub mod model_finding_evaluation; +pub use self::model_finding_evaluation::FindingEvaluation; +pub mod model_finding_status; +pub use self::model_finding_status::FindingStatus; +pub mod model_finding_vulnerability_type; +pub use self::model_finding_vulnerability_type::FindingVulnerabilityType; +pub mod model_list_findings_response; +pub use self::model_list_findings_response::ListFindingsResponse; +pub mod model_finding; +pub use self::model_finding::Finding; +pub mod model_finding_attributes; +pub use self::model_finding_attributes::FindingAttributes; +pub mod model_finding_mute; +pub use self::model_finding_mute::FindingMute; +pub mod model_finding_mute_reason; +pub use self::model_finding_mute_reason::FindingMuteReason; +pub mod model_finding_rule; +pub use self::model_finding_rule::FindingRule; +pub mod model_finding_type; +pub use self::model_finding_type::FindingType; +pub mod model_list_findings_meta; +pub use self::model_list_findings_meta::ListFindingsMeta; +pub mod model_list_findings_page; +pub use self::model_list_findings_page::ListFindingsPage; +pub mod model_bulk_mute_findings_request; +pub use self::model_bulk_mute_findings_request::BulkMuteFindingsRequest; +pub mod model_bulk_mute_findings_request_data; +pub use self::model_bulk_mute_findings_request_data::BulkMuteFindingsRequestData; +pub mod model_bulk_mute_findings_request_attributes; +pub use self::model_bulk_mute_findings_request_attributes::BulkMuteFindingsRequestAttributes; +pub mod model_bulk_mute_findings_request_properties; +pub use self::model_bulk_mute_findings_request_properties::BulkMuteFindingsRequestProperties; +pub mod model_bulk_mute_findings_request_meta; +pub use self::model_bulk_mute_findings_request_meta::BulkMuteFindingsRequestMeta; +pub mod model_bulk_mute_findings_request_meta_findings; +pub use self::model_bulk_mute_findings_request_meta_findings::BulkMuteFindingsRequestMetaFindings; +pub mod model_bulk_mute_findings_response; +pub use self::model_bulk_mute_findings_response::BulkMuteFindingsResponse; +pub mod model_bulk_mute_findings_response_data; +pub use self::model_bulk_mute_findings_response_data::BulkMuteFindingsResponseData; +pub mod model_get_finding_response; +pub use self::model_get_finding_response::GetFindingResponse; +pub mod model_detailed_finding; +pub use self::model_detailed_finding::DetailedFinding; +pub mod model_detailed_finding_attributes; +pub use self::model_detailed_finding_attributes::DetailedFindingAttributes; +pub mod model_detailed_finding_type; +pub use self::model_detailed_finding_type::DetailedFindingType; +pub mod model_list_powerpacks_response; +pub use self::model_list_powerpacks_response::ListPowerpacksResponse; +pub mod model_powerpack_data; +pub use self::model_powerpack_data::PowerpackData; +pub mod model_powerpack_attributes; +pub use self::model_powerpack_attributes::PowerpackAttributes; +pub mod model_powerpack_group_widget; +pub use self::model_powerpack_group_widget::PowerpackGroupWidget; +pub mod model_powerpack_group_widget_definition; +pub use self::model_powerpack_group_widget_definition::PowerpackGroupWidgetDefinition; +pub mod model_powerpack_inner_widgets; +pub use self::model_powerpack_inner_widgets::PowerpackInnerWidgets; +pub mod model_powerpack_inner_widget_layout; +pub use self::model_powerpack_inner_widget_layout::PowerpackInnerWidgetLayout; +pub mod model_powerpack_group_widget_layout; +pub use self::model_powerpack_group_widget_layout::PowerpackGroupWidgetLayout; +pub mod model_widget_live_span; +pub use self::model_widget_live_span::WidgetLiveSpan; +pub mod model_powerpack_template_variable; +pub use self::model_powerpack_template_variable::PowerpackTemplateVariable; +pub mod model_powerpack_relationships; +pub use self::model_powerpack_relationships::PowerpackRelationships; +pub mod model_powerpack_response_links; +pub use self::model_powerpack_response_links::PowerpackResponseLinks; +pub mod model_powerpacks_response_meta; +pub use self::model_powerpacks_response_meta::PowerpacksResponseMeta; +pub mod model_powerpacks_response_meta_pagination; +pub use self::model_powerpacks_response_meta_pagination::PowerpacksResponseMetaPagination; +pub mod model_powerpack; +pub use self::model_powerpack::Powerpack; +pub mod model_powerpack_response; +pub use self::model_powerpack_response::PowerpackResponse; +pub mod model_process_summaries_response; +pub use self::model_process_summaries_response::ProcessSummariesResponse; +pub mod model_process_summary; +pub use self::model_process_summary::ProcessSummary; +pub mod model_process_summary_attributes; +pub use self::model_process_summary_attributes::ProcessSummaryAttributes; +pub mod model_process_summary_type; +pub use self::model_process_summary_type::ProcessSummaryType; +pub mod model_process_summaries_meta; +pub use self::model_process_summaries_meta::ProcessSummariesMeta; +pub mod model_process_summaries_meta_page; +pub use self::model_process_summaries_meta_page::ProcessSummariesMetaPage; +pub mod model_facet_info_request; +pub use self::model_facet_info_request::FacetInfoRequest; +pub mod model_facet_info_request_data; +pub use self::model_facet_info_request_data::FacetInfoRequestData; +pub mod model_facet_info_request_data_attributes; +pub use self::model_facet_info_request_data_attributes::FacetInfoRequestDataAttributes; +pub mod model_facet_info_request_data_attributes_search; +pub use self::model_facet_info_request_data_attributes_search::FacetInfoRequestDataAttributesSearch; +pub mod model_facet_info_request_data_attributes_term_search; +pub use self::model_facet_info_request_data_attributes_term_search::FacetInfoRequestDataAttributesTermSearch; +pub mod model_facet_info_request_data_type; +pub use self::model_facet_info_request_data_type::FacetInfoRequestDataType; +pub mod model_facet_info_response; +pub use self::model_facet_info_response::FacetInfoResponse; +pub mod model_facet_info_response_data; +pub use self::model_facet_info_response_data::FacetInfoResponseData; +pub mod model_facet_info_response_data_attributes; +pub use self::model_facet_info_response_data_attributes::FacetInfoResponseDataAttributes; +pub mod model_facet_info_response_data_attributes_result; +pub use self::model_facet_info_response_data_attributes_result::FacetInfoResponseDataAttributesResult; +pub mod model_facet_info_response_data_attributes_result_range; +pub use self::model_facet_info_response_data_attributes_result_range::FacetInfoResponseDataAttributesResultRange; +pub mod model_facet_info_response_data_attributes_result_values_items; +pub use self::model_facet_info_response_data_attributes_result_values_items::FacetInfoResponseDataAttributesResultValuesItems; +pub mod model_facet_info_response_data_type; +pub use self::model_facet_info_response_data_type::FacetInfoResponseDataType; +pub mod model_query_account_request; +pub use self::model_query_account_request::QueryAccountRequest; +pub mod model_query_account_request_data; +pub use self::model_query_account_request_data::QueryAccountRequestData; +pub mod model_query_account_request_data_attributes; +pub use self::model_query_account_request_data_attributes::QueryAccountRequestDataAttributes; +pub mod model_query_account_request_data_attributes_sort; +pub use self::model_query_account_request_data_attributes_sort::QueryAccountRequestDataAttributesSort; +pub mod model_query_account_request_data_type; +pub use self::model_query_account_request_data_type::QueryAccountRequestDataType; +pub mod model_query_response; +pub use self::model_query_response::QueryResponse; +pub mod model_query_response_data; +pub use self::model_query_response_data::QueryResponseData; +pub mod model_query_response_data_attributes; +pub use self::model_query_response_data_attributes::QueryResponseDataAttributes; +pub mod model_query_response_data_type; +pub use self::model_query_response_data_type::QueryResponseDataType; +pub mod model_query_event_filtered_users_request; +pub use self::model_query_event_filtered_users_request::QueryEventFilteredUsersRequest; +pub mod model_query_event_filtered_users_request_data; +pub use self::model_query_event_filtered_users_request_data::QueryEventFilteredUsersRequestData; +pub mod model_query_event_filtered_users_request_data_attributes; +pub use self::model_query_event_filtered_users_request_data_attributes::QueryEventFilteredUsersRequestDataAttributes; +pub mod model_query_event_filtered_users_request_data_attributes_event_query; +pub use self::model_query_event_filtered_users_request_data_attributes_event_query::QueryEventFilteredUsersRequestDataAttributesEventQuery; +pub mod model_query_event_filtered_users_request_data_attributes_event_query_time_frame; +pub use self::model_query_event_filtered_users_request_data_attributes_event_query_time_frame::QueryEventFilteredUsersRequestDataAttributesEventQueryTimeFrame; +pub mod model_query_event_filtered_users_request_data_type; +pub use self::model_query_event_filtered_users_request_data_type::QueryEventFilteredUsersRequestDataType; +pub mod model_query_users_request; +pub use self::model_query_users_request::QueryUsersRequest; +pub mod model_query_users_request_data; +pub use self::model_query_users_request_data::QueryUsersRequestData; +pub mod model_query_users_request_data_attributes; +pub use self::model_query_users_request_data_attributes::QueryUsersRequestDataAttributes; +pub mod model_query_users_request_data_attributes_sort; +pub use self::model_query_users_request_data_attributes_sort::QueryUsersRequestDataAttributesSort; +pub mod model_query_users_request_data_type; +pub use self::model_query_users_request_data_type::QueryUsersRequestDataType; +pub mod model_get_mapping_response; +pub use self::model_get_mapping_response::GetMappingResponse; +pub mod model_get_mapping_response_data; +pub use self::model_get_mapping_response_data::GetMappingResponseData; +pub mod model_get_mapping_response_data_attributes; +pub use self::model_get_mapping_response_data_attributes::GetMappingResponseDataAttributes; +pub mod model_get_mapping_response_data_attributes_attributes_items; +pub use self::model_get_mapping_response_data_attributes_attributes_items::GetMappingResponseDataAttributesAttributesItems; +pub mod model_get_mapping_response_data_type; +pub use self::model_get_mapping_response_data_type::GetMappingResponseDataType; +pub mod model_create_connection_request; +pub use self::model_create_connection_request::CreateConnectionRequest; +pub mod model_create_connection_request_data; +pub use self::model_create_connection_request_data::CreateConnectionRequestData; +pub mod model_create_connection_request_data_attributes; +pub use self::model_create_connection_request_data_attributes::CreateConnectionRequestDataAttributes; +pub mod model_create_connection_request_data_attributes_fields_items; +pub use self::model_create_connection_request_data_attributes_fields_items::CreateConnectionRequestDataAttributesFieldsItems; +pub mod model_update_connection_request_data_type; +pub use self::model_update_connection_request_data_type::UpdateConnectionRequestDataType; +pub mod model_update_connection_request; +pub use self::model_update_connection_request::UpdateConnectionRequest; +pub mod model_update_connection_request_data; +pub use self::model_update_connection_request_data::UpdateConnectionRequestData; +pub mod model_update_connection_request_data_attributes; +pub use self::model_update_connection_request_data_attributes::UpdateConnectionRequestDataAttributes; +pub mod model_update_connection_request_data_attributes_fields_to_update_items; +pub use self::model_update_connection_request_data_attributes_fields_to_update_items::UpdateConnectionRequestDataAttributesFieldsToUpdateItems; +pub mod model_list_connections_response; +pub use self::model_list_connections_response::ListConnectionsResponse; +pub mod model_list_connections_response_data; +pub use self::model_list_connections_response_data::ListConnectionsResponseData; +pub mod model_list_connections_response_data_attributes; +pub use self::model_list_connections_response_data_attributes::ListConnectionsResponseDataAttributes; +pub mod model_list_connections_response_data_attributes_connections_items; +pub use self::model_list_connections_response_data_attributes_connections_items::ListConnectionsResponseDataAttributesConnectionsItems; +pub mod model_list_connections_response_data_attributes_connections_items_join; +pub use self::model_list_connections_response_data_attributes_connections_items_join::ListConnectionsResponseDataAttributesConnectionsItemsJoin; +pub mod model_list_connections_response_data_type; +pub use self::model_list_connections_response_data_type::ListConnectionsResponseDataType; +pub mod model_scalar_formula_query_request; +pub use self::model_scalar_formula_query_request::ScalarFormulaQueryRequest; +pub mod model_scalar_formula_request; +pub use self::model_scalar_formula_request::ScalarFormulaRequest; +pub mod model_scalar_formula_request_attributes; +pub use self::model_scalar_formula_request_attributes::ScalarFormulaRequestAttributes; +pub mod model_query_formula; +pub use self::model_query_formula::QueryFormula; +pub mod model_formula_limit; +pub use self::model_formula_limit::FormulaLimit; +pub mod model_query_sort_order; +pub use self::model_query_sort_order::QuerySortOrder; +pub mod model_metrics_scalar_query; +pub use self::model_metrics_scalar_query::MetricsScalarQuery; +pub mod model_metrics_aggregator; +pub use self::model_metrics_aggregator::MetricsAggregator; +pub mod model_metrics_data_source; +pub use self::model_metrics_data_source::MetricsDataSource; +pub mod model_events_scalar_query; +pub use self::model_events_scalar_query::EventsScalarQuery; +pub mod model_events_compute; +pub use self::model_events_compute::EventsCompute; +pub mod model_events_aggregation; +pub use self::model_events_aggregation::EventsAggregation; +pub mod model_events_data_source; +pub use self::model_events_data_source::EventsDataSource; +pub mod model_events_group_by; +pub use self::model_events_group_by::EventsGroupBy; +pub mod model_events_group_by_sort; +pub use self::model_events_group_by_sort::EventsGroupBySort; +pub mod model_events_sort_type; +pub use self::model_events_sort_type::EventsSortType; +pub mod model_events_search; +pub use self::model_events_search::EventsSearch; +pub mod model_scalar_query; +pub use self::model_scalar_query::ScalarQuery; +pub mod model_scalar_formula_request_type; +pub use self::model_scalar_formula_request_type::ScalarFormulaRequestType; +pub mod model_scalar_formula_query_response; +pub use self::model_scalar_formula_query_response::ScalarFormulaQueryResponse; +pub mod model_scalar_response; +pub use self::model_scalar_response::ScalarResponse; +pub mod model_scalar_formula_response_atrributes; +pub use self::model_scalar_formula_response_atrributes::ScalarFormulaResponseAtrributes; +pub mod model_group_scalar_column; +pub use self::model_group_scalar_column::GroupScalarColumn; +pub mod model_scalar_column_type_group; +pub use self::model_scalar_column_type_group::ScalarColumnTypeGroup; +pub mod model_data_scalar_column; +pub use self::model_data_scalar_column::DataScalarColumn; +pub mod model_scalar_meta; +pub use self::model_scalar_meta::ScalarMeta; +pub mod model_unit; +pub use self::model_unit::Unit; +pub mod model_scalar_column_type_number; +pub use self::model_scalar_column_type_number::ScalarColumnTypeNumber; +pub mod model_scalar_column; +pub use self::model_scalar_column::ScalarColumn; +pub mod model_scalar_formula_response_type; +pub use self::model_scalar_formula_response_type::ScalarFormulaResponseType; +pub mod model_timeseries_formula_query_request; +pub use self::model_timeseries_formula_query_request::TimeseriesFormulaQueryRequest; +pub mod model_timeseries_formula_request; +pub use self::model_timeseries_formula_request::TimeseriesFormulaRequest; +pub mod model_timeseries_formula_request_attributes; +pub use self::model_timeseries_formula_request_attributes::TimeseriesFormulaRequestAttributes; +pub mod model_metrics_timeseries_query; +pub use self::model_metrics_timeseries_query::MetricsTimeseriesQuery; +pub mod model_events_timeseries_query; +pub use self::model_events_timeseries_query::EventsTimeseriesQuery; +pub mod model_timeseries_query; +pub use self::model_timeseries_query::TimeseriesQuery; +pub mod model_timeseries_formula_request_type; +pub use self::model_timeseries_formula_request_type::TimeseriesFormulaRequestType; +pub mod model_timeseries_formula_query_response; +pub use self::model_timeseries_formula_query_response::TimeseriesFormulaQueryResponse; +pub mod model_timeseries_response; +pub use self::model_timeseries_response::TimeseriesResponse; +pub mod model_timeseries_response_attributes; +pub use self::model_timeseries_response_attributes::TimeseriesResponseAttributes; +pub mod model_timeseries_response_series; +pub use self::model_timeseries_response_series::TimeseriesResponseSeries; +pub mod model_timeseries_formula_response_type; +pub use self::model_timeseries_formula_response_type::TimeseriesFormulaResponseType; +pub mod model_reference_table_sort_type; +pub use self::model_reference_table_sort_type::ReferenceTableSortType; +pub mod model_table_result_v2_array; +pub use self::model_table_result_v2_array::TableResultV2Array; +pub mod model_table_result_v2_data; +pub use self::model_table_result_v2_data::TableResultV2Data; +pub mod model_table_result_v2_data_attributes; +pub use self::model_table_result_v2_data_attributes::TableResultV2DataAttributes; +pub mod model_table_result_v2_data_attributes_file_metadata; +pub use self::model_table_result_v2_data_attributes_file_metadata::TableResultV2DataAttributesFileMetadata; +pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details; +pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details::TableResultV2DataAttributesFileMetadataOneOfAccessDetails; +pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_aws_detail; +pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_aws_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAwsDetail; +pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_azure_detail; +pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_azure_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsAzureDetail; +pub mod model_table_result_v2_data_attributes_file_metadata_one_of_access_details_gcp_detail; +pub use self::model_table_result_v2_data_attributes_file_metadata_one_of_access_details_gcp_detail::TableResultV2DataAttributesFileMetadataOneOfAccessDetailsGcpDetail; +pub mod model_table_result_v2_data_attributes_file_metadata_cloud_storage_error_type; +pub use self::model_table_result_v2_data_attributes_file_metadata_cloud_storage_error_type::TableResultV2DataAttributesFileMetadataCloudStorageErrorType; +pub mod model_table_result_v2_data_attributes_schema; +pub use self::model_table_result_v2_data_attributes_schema::TableResultV2DataAttributesSchema; +pub mod model_table_result_v2_data_attributes_schema_fields_items; +pub use self::model_table_result_v2_data_attributes_schema_fields_items::TableResultV2DataAttributesSchemaFieldsItems; +pub mod model_reference_table_schema_field_type; +pub use self::model_reference_table_schema_field_type::ReferenceTableSchemaFieldType; +pub mod model_reference_table_source_type; +pub use self::model_reference_table_source_type::ReferenceTableSourceType; +pub mod model_table_result_v2_data_type; +pub use self::model_table_result_v2_data_type::TableResultV2DataType; +pub mod model_create_table_request; +pub use self::model_create_table_request::CreateTableRequest; +pub mod model_create_table_request_data; +pub use self::model_create_table_request_data::CreateTableRequestData; +pub mod model_create_table_request_data_attributes; +pub use self::model_create_table_request_data_attributes::CreateTableRequestDataAttributes; +pub mod model_create_table_request_data_attributes_file_metadata_cloud_storage; +pub use self::model_create_table_request_data_attributes_file_metadata_cloud_storage::CreateTableRequestDataAttributesFileMetadataCloudStorage; +pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details; +pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetails; +pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail; +pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail; +pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail; +pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail; +pub mod model_create_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail; +pub use self::model_create_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail::CreateTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail; +pub mod model_create_table_request_data_attributes_file_metadata_local_file; +pub use self::model_create_table_request_data_attributes_file_metadata_local_file::CreateTableRequestDataAttributesFileMetadataLocalFile; +pub mod model_create_table_request_data_attributes_file_metadata; +pub use self::model_create_table_request_data_attributes_file_metadata::CreateTableRequestDataAttributesFileMetadata; +pub mod model_create_table_request_data_attributes_schema; +pub use self::model_create_table_request_data_attributes_schema::CreateTableRequestDataAttributesSchema; +pub mod model_create_table_request_data_attributes_schema_fields_items; +pub use self::model_create_table_request_data_attributes_schema_fields_items::CreateTableRequestDataAttributesSchemaFieldsItems; +pub mod model_reference_table_create_source_type; +pub use self::model_reference_table_create_source_type::ReferenceTableCreateSourceType; +pub mod model_create_table_request_data_type; +pub use self::model_create_table_request_data_type::CreateTableRequestDataType; +pub mod model_table_result_v2; +pub use self::model_table_result_v2::TableResultV2; +pub mod model_patch_table_request; +pub use self::model_patch_table_request::PatchTableRequest; +pub mod model_patch_table_request_data; +pub use self::model_patch_table_request_data::PatchTableRequestData; +pub mod model_patch_table_request_data_attributes; +pub use self::model_patch_table_request_data_attributes::PatchTableRequestDataAttributes; +pub mod model_patch_table_request_data_attributes_file_metadata_cloud_storage; +pub use self::model_patch_table_request_data_attributes_file_metadata_cloud_storage::PatchTableRequestDataAttributesFileMetadataCloudStorage; +pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details; +pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetails; +pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail; +pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_aws_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAwsDetail; +pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail; +pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_azure_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsAzureDetail; +pub mod model_patch_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail; +pub use self::model_patch_table_request_data_attributes_file_metadata_one_of_access_details_gcp_detail::PatchTableRequestDataAttributesFileMetadataOneOfAccessDetailsGcpDetail; +pub mod model_patch_table_request_data_attributes_file_metadata_local_file; +pub use self::model_patch_table_request_data_attributes_file_metadata_local_file::PatchTableRequestDataAttributesFileMetadataLocalFile; +pub mod model_patch_table_request_data_attributes_file_metadata; +pub use self::model_patch_table_request_data_attributes_file_metadata::PatchTableRequestDataAttributesFileMetadata; +pub mod model_patch_table_request_data_attributes_schema; +pub use self::model_patch_table_request_data_attributes_schema::PatchTableRequestDataAttributesSchema; +pub mod model_patch_table_request_data_attributes_schema_fields_items; +pub use self::model_patch_table_request_data_attributes_schema_fields_items::PatchTableRequestDataAttributesSchemaFieldsItems; +pub mod model_patch_table_request_data_type; +pub use self::model_patch_table_request_data_type::PatchTableRequestDataType; +pub mod model_batch_delete_rows_request_array; +pub use self::model_batch_delete_rows_request_array::BatchDeleteRowsRequestArray; +pub mod model_batch_delete_rows_request_data; +pub use self::model_batch_delete_rows_request_data::BatchDeleteRowsRequestData; +pub mod model_table_row_resource_data_type; +pub use self::model_table_row_resource_data_type::TableRowResourceDataType; +pub mod model_table_row_resource_array; +pub use self::model_table_row_resource_array::TableRowResourceArray; +pub mod model_table_row_resource_data; +pub use self::model_table_row_resource_data::TableRowResourceData; +pub mod model_table_row_resource_data_attributes; +pub use self::model_table_row_resource_data_attributes::TableRowResourceDataAttributes; +pub mod model_batch_upsert_rows_request_array; +pub use self::model_batch_upsert_rows_request_array::BatchUpsertRowsRequestArray; +pub mod model_batch_upsert_rows_request_data; +pub use self::model_batch_upsert_rows_request_data::BatchUpsertRowsRequestData; +pub mod model_batch_upsert_rows_request_data_attributes; +pub use self::model_batch_upsert_rows_request_data_attributes::BatchUpsertRowsRequestDataAttributes; +pub mod model_create_upload_request; +pub use self::model_create_upload_request::CreateUploadRequest; +pub mod model_create_upload_request_data; +pub use self::model_create_upload_request_data::CreateUploadRequestData; +pub mod model_create_upload_request_data_attributes; +pub use self::model_create_upload_request_data_attributes::CreateUploadRequestDataAttributes; +pub mod model_create_upload_request_data_type; +pub use self::model_create_upload_request_data_type::CreateUploadRequestDataType; +pub mod model_create_upload_response; +pub use self::model_create_upload_response::CreateUploadResponse; +pub mod model_create_upload_response_data; +pub use self::model_create_upload_response_data::CreateUploadResponseData; +pub mod model_create_upload_response_data_attributes; +pub use self::model_create_upload_response_data_attributes::CreateUploadResponseDataAttributes; +pub mod model_create_upload_response_data_type; +pub use self::model_create_upload_response_data_type::CreateUploadResponseDataType; +pub mod model_application_security_waf_custom_rule_list_response; +pub use self::model_application_security_waf_custom_rule_list_response::ApplicationSecurityWafCustomRuleListResponse; +pub mod model_application_security_waf_custom_rule_data; +pub use self::model_application_security_waf_custom_rule_data::ApplicationSecurityWafCustomRuleData; +pub mod model_application_security_waf_custom_rule_attributes; +pub use self::model_application_security_waf_custom_rule_attributes::ApplicationSecurityWafCustomRuleAttributes; +pub mod model_application_security_waf_custom_rule_action; +pub use self::model_application_security_waf_custom_rule_action::ApplicationSecurityWafCustomRuleAction; +pub mod model_application_security_waf_custom_rule_action_action; +pub use self::model_application_security_waf_custom_rule_action_action::ApplicationSecurityWafCustomRuleActionAction; +pub mod model_application_security_waf_custom_rule_action_parameters; +pub use self::model_application_security_waf_custom_rule_action_parameters::ApplicationSecurityWafCustomRuleActionParameters; +pub mod model_application_security_waf_custom_rule_condition; +pub use self::model_application_security_waf_custom_rule_condition::ApplicationSecurityWafCustomRuleCondition; +pub mod model_application_security_waf_custom_rule_condition_operator; +pub use self::model_application_security_waf_custom_rule_condition_operator::ApplicationSecurityWafCustomRuleConditionOperator; +pub mod model_application_security_waf_custom_rule_condition_parameters; +pub use self::model_application_security_waf_custom_rule_condition_parameters::ApplicationSecurityWafCustomRuleConditionParameters; +pub mod model_application_security_waf_custom_rule_condition_input; +pub use self::model_application_security_waf_custom_rule_condition_input::ApplicationSecurityWafCustomRuleConditionInput; +pub mod model_application_security_waf_custom_rule_condition_input_address; +pub use self::model_application_security_waf_custom_rule_condition_input_address::ApplicationSecurityWafCustomRuleConditionInputAddress; +pub mod model_application_security_waf_custom_rule_condition_options; +pub use self::model_application_security_waf_custom_rule_condition_options::ApplicationSecurityWafCustomRuleConditionOptions; +pub mod model_application_security_waf_custom_rule_metadata; +pub use self::model_application_security_waf_custom_rule_metadata::ApplicationSecurityWafCustomRuleMetadata; +pub mod model_application_security_waf_custom_rule_scope; +pub use self::model_application_security_waf_custom_rule_scope::ApplicationSecurityWafCustomRuleScope; +pub mod model_application_security_waf_custom_rule_tags; +pub use self::model_application_security_waf_custom_rule_tags::ApplicationSecurityWafCustomRuleTags; +pub mod model_application_security_waf_custom_rule_tags_category; +pub use self::model_application_security_waf_custom_rule_tags_category::ApplicationSecurityWafCustomRuleTagsCategory; +pub mod model_application_security_waf_custom_rule_type; +pub use self::model_application_security_waf_custom_rule_type::ApplicationSecurityWafCustomRuleType; +pub mod model_application_security_waf_custom_rule_create_request; +pub use self::model_application_security_waf_custom_rule_create_request::ApplicationSecurityWafCustomRuleCreateRequest; +pub mod model_application_security_waf_custom_rule_create_data; +pub use self::model_application_security_waf_custom_rule_create_data::ApplicationSecurityWafCustomRuleCreateData; +pub mod model_application_security_waf_custom_rule_create_attributes; +pub use self::model_application_security_waf_custom_rule_create_attributes::ApplicationSecurityWafCustomRuleCreateAttributes; +pub mod model_application_security_waf_custom_rule_response; +pub use self::model_application_security_waf_custom_rule_response::ApplicationSecurityWafCustomRuleResponse; +pub mod model_application_security_waf_custom_rule_update_request; +pub use self::model_application_security_waf_custom_rule_update_request::ApplicationSecurityWafCustomRuleUpdateRequest; +pub mod model_application_security_waf_custom_rule_update_data; +pub use self::model_application_security_waf_custom_rule_update_data::ApplicationSecurityWafCustomRuleUpdateData; +pub mod model_application_security_waf_custom_rule_update_attributes; +pub use self::model_application_security_waf_custom_rule_update_attributes::ApplicationSecurityWafCustomRuleUpdateAttributes; +pub mod model_application_security_waf_exclusion_filters_response; +pub use self::model_application_security_waf_exclusion_filters_response::ApplicationSecurityWafExclusionFiltersResponse; +pub mod model_application_security_waf_exclusion_filter_resource; +pub use self::model_application_security_waf_exclusion_filter_resource::ApplicationSecurityWafExclusionFilterResource; +pub mod model_application_security_waf_exclusion_filter_attributes; +pub use self::model_application_security_waf_exclusion_filter_attributes::ApplicationSecurityWafExclusionFilterAttributes; +pub mod model_application_security_waf_exclusion_filter_metadata; +pub use self::model_application_security_waf_exclusion_filter_metadata::ApplicationSecurityWafExclusionFilterMetadata; +pub mod model_application_security_waf_exclusion_filter_on_match; +pub use self::model_application_security_waf_exclusion_filter_on_match::ApplicationSecurityWafExclusionFilterOnMatch; +pub mod model_application_security_waf_exclusion_filter_rules_target; +pub use self::model_application_security_waf_exclusion_filter_rules_target::ApplicationSecurityWafExclusionFilterRulesTarget; +pub mod model_application_security_waf_exclusion_filter_rules_target_tags; +pub use self::model_application_security_waf_exclusion_filter_rules_target_tags::ApplicationSecurityWafExclusionFilterRulesTargetTags; +pub mod model_application_security_waf_exclusion_filter_scope; +pub use self::model_application_security_waf_exclusion_filter_scope::ApplicationSecurityWafExclusionFilterScope; +pub mod model_application_security_waf_exclusion_filter_type; +pub use self::model_application_security_waf_exclusion_filter_type::ApplicationSecurityWafExclusionFilterType; +pub mod model_application_security_waf_exclusion_filter_create_request; +pub use self::model_application_security_waf_exclusion_filter_create_request::ApplicationSecurityWafExclusionFilterCreateRequest; +pub mod model_application_security_waf_exclusion_filter_create_data; +pub use self::model_application_security_waf_exclusion_filter_create_data::ApplicationSecurityWafExclusionFilterCreateData; +pub mod model_application_security_waf_exclusion_filter_create_attributes; +pub use self::model_application_security_waf_exclusion_filter_create_attributes::ApplicationSecurityWafExclusionFilterCreateAttributes; +pub mod model_application_security_waf_exclusion_filter_response; +pub use self::model_application_security_waf_exclusion_filter_response::ApplicationSecurityWafExclusionFilterResponse; +pub mod model_application_security_waf_exclusion_filter_update_request; +pub use self::model_application_security_waf_exclusion_filter_update_request::ApplicationSecurityWafExclusionFilterUpdateRequest; +pub mod model_application_security_waf_exclusion_filter_update_data; +pub use self::model_application_security_waf_exclusion_filter_update_data::ApplicationSecurityWafExclusionFilterUpdateData; +pub mod model_application_security_waf_exclusion_filter_update_attributes; +pub use self::model_application_security_waf_exclusion_filter_update_attributes::ApplicationSecurityWafExclusionFilterUpdateAttributes; +pub mod model_cloud_workload_security_agent_rules_list_response; +pub use self::model_cloud_workload_security_agent_rules_list_response::CloudWorkloadSecurityAgentRulesListResponse; +pub mod model_cloud_workload_security_agent_rule_data; +pub use self::model_cloud_workload_security_agent_rule_data::CloudWorkloadSecurityAgentRuleData; +pub mod model_cloud_workload_security_agent_rule_attributes; +pub use self::model_cloud_workload_security_agent_rule_attributes::CloudWorkloadSecurityAgentRuleAttributes; +pub mod model_cloud_workload_security_agent_rule_action; +pub use self::model_cloud_workload_security_agent_rule_action::CloudWorkloadSecurityAgentRuleAction; +pub mod model_cloud_workload_security_agent_rule_action_hash; +pub use self::model_cloud_workload_security_agent_rule_action_hash::CloudWorkloadSecurityAgentRuleActionHash; +pub mod model_cloud_workload_security_agent_rule_kill; +pub use self::model_cloud_workload_security_agent_rule_kill::CloudWorkloadSecurityAgentRuleKill; +pub mod model_cloud_workload_security_agent_rule_action_metadata; +pub use self::model_cloud_workload_security_agent_rule_action_metadata::CloudWorkloadSecurityAgentRuleActionMetadata; +pub mod model_cloud_workload_security_agent_rule_action_set; +pub use self::model_cloud_workload_security_agent_rule_action_set::CloudWorkloadSecurityAgentRuleActionSet; +pub mod model_cloud_workload_security_agent_rule_action_set_value; +pub use self::model_cloud_workload_security_agent_rule_action_set_value::CloudWorkloadSecurityAgentRuleActionSetValue; +pub mod model_cloud_workload_security_agent_rule_creator_attributes; +pub use self::model_cloud_workload_security_agent_rule_creator_attributes::CloudWorkloadSecurityAgentRuleCreatorAttributes; +pub mod model_cloud_workload_security_agent_rule_updater_attributes; +pub use self::model_cloud_workload_security_agent_rule_updater_attributes::CloudWorkloadSecurityAgentRuleUpdaterAttributes; +pub mod model_cloud_workload_security_agent_rule_type; +pub use self::model_cloud_workload_security_agent_rule_type::CloudWorkloadSecurityAgentRuleType; +pub mod model_cloud_workload_security_agent_rule_create_request; +pub use self::model_cloud_workload_security_agent_rule_create_request::CloudWorkloadSecurityAgentRuleCreateRequest; +pub mod model_cloud_workload_security_agent_rule_create_data; +pub use self::model_cloud_workload_security_agent_rule_create_data::CloudWorkloadSecurityAgentRuleCreateData; +pub mod model_cloud_workload_security_agent_rule_create_attributes; +pub use self::model_cloud_workload_security_agent_rule_create_attributes::CloudWorkloadSecurityAgentRuleCreateAttributes; +pub mod model_cloud_workload_security_agent_rule_response; +pub use self::model_cloud_workload_security_agent_rule_response::CloudWorkloadSecurityAgentRuleResponse; +pub mod model_cloud_workload_security_agent_rule_update_request; +pub use self::model_cloud_workload_security_agent_rule_update_request::CloudWorkloadSecurityAgentRuleUpdateRequest; +pub mod model_cloud_workload_security_agent_rule_update_data; +pub use self::model_cloud_workload_security_agent_rule_update_data::CloudWorkloadSecurityAgentRuleUpdateData; +pub mod model_cloud_workload_security_agent_rule_update_attributes; +pub use self::model_cloud_workload_security_agent_rule_update_attributes::CloudWorkloadSecurityAgentRuleUpdateAttributes; +pub mod model_cloud_workload_security_agent_policies_list_response; +pub use self::model_cloud_workload_security_agent_policies_list_response::CloudWorkloadSecurityAgentPoliciesListResponse; +pub mod model_cloud_workload_security_agent_policy_data; +pub use self::model_cloud_workload_security_agent_policy_data::CloudWorkloadSecurityAgentPolicyData; +pub mod model_cloud_workload_security_agent_policy_attributes; +pub use self::model_cloud_workload_security_agent_policy_attributes::CloudWorkloadSecurityAgentPolicyAttributes; +pub mod model_cloud_workload_security_agent_policy_updater_attributes; +pub use self::model_cloud_workload_security_agent_policy_updater_attributes::CloudWorkloadSecurityAgentPolicyUpdaterAttributes; +pub mod model_cloud_workload_security_agent_policy_version; +pub use self::model_cloud_workload_security_agent_policy_version::CloudWorkloadSecurityAgentPolicyVersion; +pub mod model_cloud_workload_security_agent_policy_type; +pub use self::model_cloud_workload_security_agent_policy_type::CloudWorkloadSecurityAgentPolicyType; +pub mod model_cloud_workload_security_agent_policy_create_request; +pub use self::model_cloud_workload_security_agent_policy_create_request::CloudWorkloadSecurityAgentPolicyCreateRequest; +pub mod model_cloud_workload_security_agent_policy_create_data; +pub use self::model_cloud_workload_security_agent_policy_create_data::CloudWorkloadSecurityAgentPolicyCreateData; +pub mod model_cloud_workload_security_agent_policy_create_attributes; +pub use self::model_cloud_workload_security_agent_policy_create_attributes::CloudWorkloadSecurityAgentPolicyCreateAttributes; +pub mod model_cloud_workload_security_agent_policy_response; +pub use self::model_cloud_workload_security_agent_policy_response::CloudWorkloadSecurityAgentPolicyResponse; +pub mod model_cloud_workload_security_agent_policy_update_request; +pub use self::model_cloud_workload_security_agent_policy_update_request::CloudWorkloadSecurityAgentPolicyUpdateRequest; +pub mod model_cloud_workload_security_agent_policy_update_data; +pub use self::model_cloud_workload_security_agent_policy_update_data::CloudWorkloadSecurityAgentPolicyUpdateData; +pub mod model_cloud_workload_security_agent_policy_update_attributes; +pub use self::model_cloud_workload_security_agent_policy_update_attributes::CloudWorkloadSecurityAgentPolicyUpdateAttributes; pub mod model_restriction_policy_response; pub use self::model_restriction_policy_response::RestrictionPolicyResponse; pub mod model_restriction_policy; diff --git a/src/datadogV2/model/model_observability_pipeline_add_hostname_processor.rs b/src/datadogV2/model/model_observability_pipeline_add_hostname_processor.rs new file mode 100644 index 000000000..001b9afd0 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_add_hostname_processor.rs @@ -0,0 +1,155 @@ +// 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 `add_hostname` processor adds the hostname to log events. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineAddHostnameProcessor { + /// The display name for a component. + #[serde(rename = "display_name")] + pub display_name: Option, + /// 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 logs this processor targets. + #[serde(rename = "include")] + pub include: String, + /// The processor type. The value should always be `add_hostname`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineAddHostnameProcessorType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineAddHostnameProcessor { + pub fn new( + enabled: bool, + id: String, + include: String, + type_: crate::datadogV2::model::ObservabilityPipelineAddHostnameProcessorType, + ) -> ObservabilityPipelineAddHostnameProcessor { + ObservabilityPipelineAddHostnameProcessor { + display_name: None, + enabled, + id, + include, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn display_name(mut self, value: String) -> Self { + self.display_name = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineAddHostnameProcessor { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineAddHostnameProcessorVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineAddHostnameProcessorVisitor { + type Value = ObservabilityPipelineAddHostnameProcessor; + + 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 display_name: Option = None; + let mut enabled: Option = None; + let mut id: Option = None; + let mut include: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineAddHostnameProcessorType, + > = 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() { + "display_name" => { + if v.is_null() { + continue; + } + display_name = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "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)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ObservabilityPipelineAddHostnameProcessorType::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 type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineAddHostnameProcessor { + display_name, + enabled, + id, + include, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineAddHostnameProcessorVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_add_hostname_processor_type.rs b/src/datadogV2/model/model_observability_pipeline_add_hostname_processor_type.rs new file mode 100644 index 000000000..16c725b92 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_add_hostname_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 ObservabilityPipelineAddHostnameProcessorType { + ADD_HOSTNAME, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineAddHostnameProcessorType { + fn to_string(&self) -> String { + match self { + Self::ADD_HOSTNAME => String::from("add_hostname"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineAddHostnameProcessorType { + 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 ObservabilityPipelineAddHostnameProcessorType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "add_hostname" => Self::ADD_HOSTNAME, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_cloud_prem_destination.rs b/src/datadogV2/model/model_observability_pipeline_cloud_prem_destination.rs new file mode 100644 index 000000000..25925e4b2 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_cloud_prem_destination.rs @@ -0,0 +1,126 @@ +// 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 `cloud_prem` destination sends logs to Datadog CloudPrem. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineCloudPremDestination { + /// 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 `cloud_prem`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineCloudPremDestinationType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineCloudPremDestination { + pub fn new( + id: String, + inputs: Vec, + type_: crate::datadogV2::model::ObservabilityPipelineCloudPremDestinationType, + ) -> ObservabilityPipelineCloudPremDestination { + ObservabilityPipelineCloudPremDestination { + 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 ObservabilityPipelineCloudPremDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineCloudPremDestinationVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineCloudPremDestinationVisitor { + type Value = ObservabilityPipelineCloudPremDestination; + + 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::ObservabilityPipelineCloudPremDestinationType, + > = 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::ObservabilityPipelineCloudPremDestinationType::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 = ObservabilityPipelineCloudPremDestination { + id, + inputs, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineCloudPremDestinationVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_cloud_prem_destination_type.rs b/src/datadogV2/model/model_observability_pipeline_cloud_prem_destination_type.rs new file mode 100644 index 000000000..5d30914a6 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_cloud_prem_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 ObservabilityPipelineCloudPremDestinationType { + CLOUD_PREM, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineCloudPremDestinationType { + fn to_string(&self) -> String { + match self { + Self::CLOUD_PREM => String::from("cloud_prem"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineCloudPremDestinationType { + 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 ObservabilityPipelineCloudPremDestinationType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "cloud_prem" => Self::CLOUD_PREM, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_config.rs b/src/datadogV2/model/model_observability_pipeline_config.rs index d6fe63c42..2bde33808 100644 --- a/src/datadogV2/model/model_observability_pipeline_config.rs +++ b/src/datadogV2/model/model_observability_pipeline_config.rs @@ -15,8 +15,9 @@ pub struct ObservabilityPipelineConfig { #[serde(rename = "destinations")] pub destinations: Vec, /// A list of processor groups that transform or enrich log data. - #[serde(rename = "processors")] - pub processors: Option>, + #[serde(rename = "processor_groups")] + pub processor_groups: + Option>, /// A list of configured data sources for the pipeline. #[serde(rename = "sources")] pub sources: Vec, @@ -34,18 +35,18 @@ impl ObservabilityPipelineConfig { ) -> ObservabilityPipelineConfig { ObservabilityPipelineConfig { destinations, - processors: None, + processor_groups: None, sources, additional_properties: std::collections::BTreeMap::new(), _unparsed: false, } } - pub fn processors( + pub fn processor_groups( mut self, value: Vec, ) -> Self { - self.processors = Some(value); + self.processor_groups = Some(value); self } @@ -78,7 +79,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { let mut destinations: Option< Vec, > = None; - let mut processors: Option< + let mut processor_groups: Option< Vec, > = None; let mut sources: Option< @@ -96,11 +97,12 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { destinations = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } - "processors" => { + "processor_groups" => { if v.is_null() { continue; } - processors = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + processor_groups = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); } "sources" => { sources = Some(serde_json::from_value(v).map_err(M::Error::custom)?); @@ -118,7 +120,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfig { let content = ObservabilityPipelineConfig { destinations, - processors, + processor_groups, sources, additional_properties, _unparsed, 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..fbb3929ae 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_destination_item.rs @@ -11,6 +11,9 @@ pub enum ObservabilityPipelineConfigDestinationItem { ObservabilityPipelineDatadogLogsDestination( Box, ), + ObservabilityPipelineCloudPremDestination( + Box, + ), ObservabilityPipelineAmazonS3Destination( Box, ), @@ -61,6 +64,9 @@ pub enum ObservabilityPipelineConfigDestinationItem { ObservabilityPipelineGooglePubSubDestination( Box, ), + ObservabilityPipelineKafkaDestination( + Box, + ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -78,6 +84,14 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineDatadogLogsDestination(_v)); } } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineCloudPremDestination(_v)); + } + } if let Ok(_v) = serde_json::from_value::< Box, >(value.clone()) @@ -224,6 +238,14 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigDestinationItem { return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineGooglePubSubDestination(_v)); } } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigDestinationItem::ObservabilityPipelineKafkaDestination(_v)); + } + } return Ok(ObservabilityPipelineConfigDestinationItem::UnparsedObject( crate::datadog::UnparsedObject { value }, 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..b88a70bbd 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_processor_item.rs @@ -8,17 +8,50 @@ use serde::{Deserialize, Deserializer, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize)] #[serde(untagged)] pub enum ObservabilityPipelineConfigProcessorItem { + ObservabilityPipelineAddEnvVarsProcessor( + Box, + ), + ObservabilityPipelineAddFieldsProcessor( + Box, + ), + ObservabilityPipelineAddHostnameProcessor( + Box, + ), + ObservabilityPipelineCustomProcessor( + Box, + ), + ObservabilityPipelineDatadogTagsProcessor( + Box, + ), + ObservabilityPipelineDedupeProcessor( + Box, + ), + ObservabilityPipelineEnrichmentTableProcessor( + Box, + ), ObservabilityPipelineFilterProcessor( Box, ), + ObservabilityPipelineGenerateMetricsProcessor( + Box, + ), + ObservabilityPipelineOcsfMapperProcessor( + Box, + ), + ObservabilityPipelineParseGrokProcessor( + Box, + ), ObservabilityPipelineParseJSONProcessor( Box, ), + ObservabilityPipelineParseXMLProcessor( + Box, + ), ObservabilityPipelineQuotaProcessor( Box, ), - ObservabilityPipelineAddFieldsProcessor( - Box, + ObservabilityPipelineReduceProcessor( + Box, ), ObservabilityPipelineRemoveFieldsProcessor( Box, @@ -26,42 +59,18 @@ pub enum ObservabilityPipelineConfigProcessorItem { ObservabilityPipelineRenameFieldsProcessor( Box, ), - ObservabilityPipelineGenerateMetricsProcessor( - Box, - ), ObservabilityPipelineSampleProcessor( Box, ), - ObservabilityPipelineParseGrokProcessor( - Box, - ), ObservabilityPipelineSensitiveDataScannerProcessor( Box, ), - ObservabilityPipelineOcsfMapperProcessor( - Box, - ), - ObservabilityPipelineAddEnvVarsProcessor( - Box, - ), - ObservabilityPipelineDedupeProcessor( - Box, - ), - ObservabilityPipelineEnrichmentTableProcessor( - Box, - ), - ObservabilityPipelineReduceProcessor( - Box, + ObservabilityPipelineSplitArrayProcessor( + Box, ), ObservabilityPipelineThrottleProcessor( Box, ), - ObservabilityPipelineCustomProcessor( - Box, - ), - ObservabilityPipelineDatadogTagsProcessor( - Box, - ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -72,59 +81,79 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigProcessorItem { { 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( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor( - _v, - ), - ); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddEnvVarsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineParseJSONProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddFieldsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddHostnameProcessor(_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::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineFilterProcessor( + _v, + ), + ); } } if let Ok(_v) = serde_json::from_value::< @@ -136,15 +165,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 +181,95 @@ 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::ObservabilityPipelineParseXMLProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineAddEnvVarsProcessor(_v)); + return Ok( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineQuotaProcessor( + _v, + ), + ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { return Ok( - ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDedupeProcessor( + ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineReduceProcessor( _v, ), ); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineEnrichmentTableProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRemoveFieldsProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineRenameFieldsProcessor(_v)); + } + } + if let Ok(_v) = serde_json::from_value::< + 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::ObservabilityPipelineSplitArrayProcessor(_v)); } } if let Ok(_v) = serde_json::from_value::< - Box, + Box, >(value.clone()) { if !_v._unparsed { - return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineDatadogTagsProcessor(_v)); + return Ok(ObservabilityPipelineConfigProcessorItem::ObservabilityPipelineThrottleProcessor(_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..a1077892f 100644 --- a/src/datadogV2/model/model_observability_pipeline_config_source_item.rs +++ b/src/datadogV2/model/model_observability_pipeline_config_source_item.rs @@ -56,6 +56,9 @@ pub enum ObservabilityPipelineConfigSourceItem { ObservabilityPipelineSocketSource( Box, ), + ObservabilityPipelineOpentelemetrySource( + Box, + ), UnparsedObject(crate::datadog::UnparsedObject), } @@ -231,6 +234,18 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineConfigSourceItem { ); } } + if let Ok(_v) = serde_json::from_value::< + Box, + >(value.clone()) + { + if !_v._unparsed { + return Ok( + ObservabilityPipelineConfigSourceItem::ObservabilityPipelineOpentelemetrySource( + _v, + ), + ); + } + } return Ok(ObservabilityPipelineConfigSourceItem::UnparsedObject( crate::datadog::UnparsedObject { value }, diff --git a/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs index e104a3eac..bb4563a0b 100644 --- a/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs +++ b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination.rs @@ -18,6 +18,10 @@ pub struct ObservabilityPipelineElasticsearchDestination { /// The index to write logs to in Elasticsearch. #[serde(rename = "bulk_index")] pub bulk_index: Option, + /// Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. + #[serde(rename = "data_stream")] + pub data_stream: + Option, /// The unique identifier for this component. #[serde(rename = "id")] pub id: String, @@ -43,6 +47,7 @@ impl ObservabilityPipelineElasticsearchDestination { ObservabilityPipelineElasticsearchDestination { api_version: None, bulk_index: None, + data_stream: None, id, inputs, type_, @@ -64,6 +69,14 @@ impl ObservabilityPipelineElasticsearchDestination { self } + pub fn data_stream( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineElasticsearchDestinationDataStream, + ) -> Self { + self.data_stream = Some(value); + self + } + pub fn additional_properties( mut self, value: std::collections::BTreeMap, @@ -92,6 +105,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineElasticsearchDestination { { let mut api_version: Option = None; let mut bulk_index: Option = None; + let mut data_stream: Option = None; let mut id: Option = None; let mut inputs: Option> = None; let mut type_: Option< @@ -126,6 +140,13 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineElasticsearchDestination { } bulk_index = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "data_stream" => { + if v.is_null() { + continue; + } + data_stream = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "id" => { id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } @@ -157,6 +178,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineElasticsearchDestination { let content = ObservabilityPipelineElasticsearchDestination { api_version, bulk_index, + data_stream, id, inputs, type_, diff --git a/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination_data_stream.rs b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination_data_stream.rs new file mode 100644 index 000000000..70f8db46c --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_elasticsearch_destination_data_stream.rs @@ -0,0 +1,139 @@ +// 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}; + +/// Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineElasticsearchDestinationDataStream { + /// The data stream dataset for your logs. This groups logs by their source or application. + #[serde(rename = "dataset")] + pub dataset: Option, + /// The data stream type for your logs. This determines how logs are categorized within the data stream. + #[serde(rename = "dtype")] + pub dtype: Option, + /// The data stream namespace for your logs. This separates logs into different environments or domains. + #[serde(rename = "namespace")] + pub namespace: Option, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineElasticsearchDestinationDataStream { + pub fn new() -> ObservabilityPipelineElasticsearchDestinationDataStream { + ObservabilityPipelineElasticsearchDestinationDataStream { + dataset: None, + dtype: None, + namespace: None, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn dataset(mut self, value: String) -> Self { + self.dataset = Some(value); + self + } + + pub fn dtype(mut self, value: String) -> Self { + self.dtype = Some(value); + self + } + + pub fn namespace(mut self, value: String) -> Self { + self.namespace = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl Default for ObservabilityPipelineElasticsearchDestinationDataStream { + fn default() -> Self { + Self::new() + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineElasticsearchDestinationDataStream { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineElasticsearchDestinationDataStreamVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineElasticsearchDestinationDataStreamVisitor { + type Value = ObservabilityPipelineElasticsearchDestinationDataStream; + + 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 dataset: Option = None; + let mut dtype: Option = None; + let mut namespace: 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() { + "dataset" => { + if v.is_null() { + continue; + } + dataset = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "dtype" => { + if v.is_null() { + continue; + } + dtype = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "namespace" => { + if v.is_null() { + continue; + } + namespace = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + + let content = ObservabilityPipelineElasticsearchDestinationDataStream { + dataset, + dtype, + namespace, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineElasticsearchDestinationDataStreamVisitor) + } +} 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..63e912ba7 100644 --- a/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_enrichment_table_processor.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer, Serialize}; 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. +/// The `enrichment_table` processor enriches logs using a static CSV file, GeoIP database, or reference table. Exactly one of `file`, `geoip`, or `reference_table` must be configured. #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] @@ -29,6 +29,10 @@ pub struct ObservabilityPipelineEnrichmentTableProcessor { /// A Datadog search query used to determine which logs this processor targets. #[serde(rename = "include")] pub include: String, + /// Uses a Datadog reference table to enrich logs. + #[serde(rename = "reference_table")] + pub reference_table: + Option, /// Path where enrichment results should be stored in the log. #[serde(rename = "target")] pub target: String, @@ -57,6 +61,7 @@ impl ObservabilityPipelineEnrichmentTableProcessor { geoip: None, id, include, + reference_table: None, target, type_, additional_properties: std::collections::BTreeMap::new(), @@ -85,6 +90,14 @@ impl ObservabilityPipelineEnrichmentTableProcessor { self } + pub fn reference_table( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineEnrichmentTableReferenceTable, + ) -> Self { + self.reference_table = Some(value); + self + } + pub fn additional_properties( mut self, value: std::collections::BTreeMap, @@ -121,6 +134,9 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineEnrichmentTableProcessor { > = None; let mut id: Option = None; let mut include: Option = None; + let mut reference_table: Option< + crate::datadogV2::model::ObservabilityPipelineEnrichmentTableReferenceTable, + > = None; let mut target: Option = None; let mut type_: Option< crate::datadogV2::model::ObservabilityPipelineEnrichmentTableProcessorType, @@ -161,6 +177,13 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineEnrichmentTableProcessor { "include" => { include = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "reference_table" => { + if v.is_null() { + continue; + } + reference_table = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "target" => { target = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } @@ -195,6 +218,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineEnrichmentTableProcessor { geoip, id, include, + reference_table, target, type_, additional_properties, diff --git a/src/datadogV2/model/model_observability_pipeline_enrichment_table_reference_table.rs b/src/datadogV2/model/model_observability_pipeline_enrichment_table_reference_table.rs new file mode 100644 index 000000000..88108386f --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_enrichment_table_reference_table.rs @@ -0,0 +1,122 @@ +// 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}; + +/// Uses a Datadog reference table to enrich logs. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineEnrichmentTableReferenceTable { + /// List of column names to include from the reference table. If not provided, all columns are included. + #[serde(rename = "columns")] + pub columns: Option>, + /// Path to the field in the log event to match against the reference table. + #[serde(rename = "key_field")] + pub key_field: String, + /// The unique identifier of the reference table. + #[serde(rename = "table_id")] + pub table_id: String, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineEnrichmentTableReferenceTable { + pub fn new( + key_field: String, + table_id: String, + ) -> ObservabilityPipelineEnrichmentTableReferenceTable { + ObservabilityPipelineEnrichmentTableReferenceTable { + columns: None, + key_field, + table_id, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn columns(mut self, value: Vec) -> Self { + self.columns = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineEnrichmentTableReferenceTable { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineEnrichmentTableReferenceTableVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineEnrichmentTableReferenceTableVisitor { + type Value = ObservabilityPipelineEnrichmentTableReferenceTable; + + 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 columns: Option> = None; + let mut key_field: Option = None; + let mut table_id: 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() { + "columns" => { + if v.is_null() { + continue; + } + columns = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "key_field" => { + key_field = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "table_id" => { + table_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let key_field = key_field.ok_or_else(|| M::Error::missing_field("key_field"))?; + let table_id = table_id.ok_or_else(|| M::Error::missing_field("table_id"))?; + + let content = ObservabilityPipelineEnrichmentTableReferenceTable { + columns, + key_field, + table_id, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineEnrichmentTableReferenceTableVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_destination.rs b/src/datadogV2/model/model_observability_pipeline_kafka_destination.rs new file mode 100644 index 000000000..b2bab0e1d --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_kafka_destination.rs @@ -0,0 +1,356 @@ +// 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 `kafka` destination sends logs to Apache Kafka topics. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineKafkaDestination { + /// Compression codec for Kafka messages. + #[serde(rename = "compression")] + pub compression: + Option, + /// Encoding format for log events. + #[serde(rename = "encoding")] + pub encoding: crate::datadogV2::model::ObservabilityPipelineKafkaDestinationEncoding, + /// The field name to use for Kafka message headers. + #[serde(rename = "headers_key")] + pub headers_key: Option, + /// 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 field name to use as the Kafka message key. + #[serde(rename = "key_field")] + pub key_field: Option, + /// Optional list of advanced Kafka producer configuration options, defined as key-value pairs. + #[serde(rename = "librdkafka_options")] + pub librdkafka_options: + Option>, + /// Maximum time in milliseconds to wait for message delivery confirmation. + #[serde(rename = "message_timeout_ms")] + pub message_timeout_ms: Option, + /// Duration in seconds for the rate limit window. + #[serde(rename = "rate_limit_duration_secs")] + pub rate_limit_duration_secs: Option, + /// Maximum number of messages allowed per rate limit duration. + #[serde(rename = "rate_limit_num")] + pub rate_limit_num: Option, + /// Specifies the SASL mechanism for authenticating with a Kafka cluster. + #[serde(rename = "sasl")] + pub sasl: Option, + /// Socket timeout in milliseconds for network requests. + #[serde(rename = "socket_timeout_ms")] + pub socket_timeout_ms: Option, + /// Configuration for enabling TLS encryption between the pipeline component and external services. + #[serde(rename = "tls")] + pub tls: Option, + /// The Kafka topic name to publish logs to. + #[serde(rename = "topic")] + pub topic: String, + /// The destination type. The value should always be `kafka`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineKafkaDestinationType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineKafkaDestination { + pub fn new( + encoding: crate::datadogV2::model::ObservabilityPipelineKafkaDestinationEncoding, + id: String, + inputs: Vec, + topic: String, + type_: crate::datadogV2::model::ObservabilityPipelineKafkaDestinationType, + ) -> ObservabilityPipelineKafkaDestination { + ObservabilityPipelineKafkaDestination { + compression: None, + encoding, + headers_key: None, + id, + inputs, + key_field: None, + librdkafka_options: None, + message_timeout_ms: None, + rate_limit_duration_secs: None, + rate_limit_num: None, + sasl: None, + socket_timeout_ms: None, + tls: None, + topic, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn compression( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineKafkaDestinationCompression, + ) -> Self { + self.compression = Some(value); + self + } + + pub fn headers_key(mut self, value: String) -> Self { + self.headers_key = Some(value); + self + } + + pub fn key_field(mut self, value: String) -> Self { + self.key_field = Some(value); + self + } + + pub fn librdkafka_options( + mut self, + value: Vec, + ) -> Self { + self.librdkafka_options = Some(value); + self + } + + pub fn message_timeout_ms(mut self, value: i64) -> Self { + self.message_timeout_ms = Some(value); + self + } + + pub fn rate_limit_duration_secs(mut self, value: i64) -> Self { + self.rate_limit_duration_secs = Some(value); + self + } + + pub fn rate_limit_num(mut self, value: i64) -> Self { + self.rate_limit_num = Some(value); + self + } + + pub fn sasl(mut self, value: crate::datadogV2::model::ObservabilityPipelineKafkaSasl) -> Self { + self.sasl = Some(value); + self + } + + pub fn socket_timeout_ms(mut self, value: i64) -> Self { + self.socket_timeout_ms = 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 ObservabilityPipelineKafkaDestination { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineKafkaDestinationVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineKafkaDestinationVisitor { + type Value = ObservabilityPipelineKafkaDestination; + + 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 compression: Option< + crate::datadogV2::model::ObservabilityPipelineKafkaDestinationCompression, + > = None; + let mut encoding: Option< + crate::datadogV2::model::ObservabilityPipelineKafkaDestinationEncoding, + > = None; + let mut headers_key: Option = None; + let mut id: Option = None; + let mut inputs: Option> = None; + let mut key_field: Option = None; + let mut librdkafka_options: Option< + Vec, + > = None; + let mut message_timeout_ms: Option = None; + let mut rate_limit_duration_secs: Option = None; + let mut rate_limit_num: Option = None; + let mut sasl: Option = + None; + let mut socket_timeout_ms: Option = None; + let mut tls: Option = None; + let mut topic: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineKafkaDestinationType, + > = 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() { + "compression" => { + if v.is_null() { + continue; + } + compression = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _compression) = compression { + match _compression { + crate::datadogV2::model::ObservabilityPipelineKafkaDestinationCompression::UnparsedObject(_compression) => { + _unparsed = true; + }, + _ => {} + } + } + } + "encoding" => { + encoding = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _encoding) = encoding { + match _encoding { + crate::datadogV2::model::ObservabilityPipelineKafkaDestinationEncoding::UnparsedObject(_encoding) => { + _unparsed = true; + }, + _ => {} + } + } + } + "headers_key" => { + if v.is_null() { + continue; + } + headers_key = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "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)?); + } + "key_field" => { + if v.is_null() { + continue; + } + key_field = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "librdkafka_options" => { + if v.is_null() { + continue; + } + librdkafka_options = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "message_timeout_ms" => { + if v.is_null() { + continue; + } + message_timeout_ms = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rate_limit_duration_secs" => { + if v.is_null() { + continue; + } + rate_limit_duration_secs = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "rate_limit_num" => { + if v.is_null() { + continue; + } + rate_limit_num = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "sasl" => { + if v.is_null() { + continue; + } + sasl = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "socket_timeout_ms" => { + if v.is_null() { + continue; + } + socket_timeout_ms = + 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)?); + } + "topic" => { + topic = 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::ObservabilityPipelineKafkaDestinationType::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 topic = topic.ok_or_else(|| M::Error::missing_field("topic"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineKafkaDestination { + compression, + encoding, + headers_key, + id, + inputs, + key_field, + librdkafka_options, + message_timeout_ms, + rate_limit_duration_secs, + rate_limit_num, + sasl, + socket_timeout_ms, + tls, + topic, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineKafkaDestinationVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_destination_compression.rs b/src/datadogV2/model/model_observability_pipeline_kafka_destination_compression.rs new file mode 100644 index 000000000..7394485f1 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_kafka_destination_compression.rs @@ -0,0 +1,60 @@ +// 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 ObservabilityPipelineKafkaDestinationCompression { + NONE, + GZIP, + SNAPPY, + LZ4, + ZSTD, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineKafkaDestinationCompression { + fn to_string(&self) -> String { + match self { + Self::NONE => String::from("none"), + Self::GZIP => String::from("gzip"), + Self::SNAPPY => String::from("snappy"), + Self::LZ4 => String::from("lz4"), + Self::ZSTD => String::from("zstd"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineKafkaDestinationCompression { + 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 ObservabilityPipelineKafkaDestinationCompression { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "none" => Self::NONE, + "gzip" => Self::GZIP, + "snappy" => Self::SNAPPY, + "lz4" => Self::LZ4, + "zstd" => Self::ZSTD, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_destination_encoding.rs b/src/datadogV2/model/model_observability_pipeline_kafka_destination_encoding.rs new file mode 100644 index 000000000..5937f001d --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_kafka_destination_encoding.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 ObservabilityPipelineKafkaDestinationEncoding { + JSON, + RAW_MESSAGE, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineKafkaDestinationEncoding { + fn to_string(&self) -> String { + match self { + Self::JSON => String::from("json"), + Self::RAW_MESSAGE => String::from("raw_message"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineKafkaDestinationEncoding { + 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 ObservabilityPipelineKafkaDestinationEncoding { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "json" => Self::JSON, + "raw_message" => Self::RAW_MESSAGE, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_destination_type.rs b/src/datadogV2/model/model_observability_pipeline_kafka_destination_type.rs new file mode 100644 index 000000000..38fdb3964 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_kafka_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 ObservabilityPipelineKafkaDestinationType { + KAFKA, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineKafkaDestinationType { + fn to_string(&self) -> String { + match self { + Self::KAFKA => String::from("kafka"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineKafkaDestinationType { + 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 ObservabilityPipelineKafkaDestinationType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "kafka" => Self::KAFKA, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_source_librdkafka_option.rs b/src/datadogV2/model/model_observability_pipeline_kafka_librdkafka_option.rs similarity index 80% rename from src/datadogV2/model/model_observability_pipeline_kafka_source_librdkafka_option.rs rename to src/datadogV2/model/model_observability_pipeline_kafka_librdkafka_option.rs index 7ff22eb0f..1ec941c93 100644 --- a/src/datadogV2/model/model_observability_pipeline_kafka_source_librdkafka_option.rs +++ b/src/datadogV2/model/model_observability_pipeline_kafka_librdkafka_option.rs @@ -6,11 +6,11 @@ use serde::{Deserialize, Deserializer, Serialize}; use serde_with::skip_serializing_none; use std::fmt::{self, Formatter}; -/// Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka sources, such as timeouts, buffer sizes, and security settings. +/// Represents a key-value pair used to configure low-level `librdkafka` client options for Kafka source and destination, such as timeouts, buffer sizes, and security settings. #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] -pub struct ObservabilityPipelineKafkaSourceLibrdkafkaOption { +pub struct ObservabilityPipelineKafkaLibrdkafkaOption { /// The name of the `librdkafka` configuration option to set. #[serde(rename = "name")] pub name: String, @@ -24,9 +24,9 @@ pub struct ObservabilityPipelineKafkaSourceLibrdkafkaOption { pub(crate) _unparsed: bool, } -impl ObservabilityPipelineKafkaSourceLibrdkafkaOption { - pub fn new(name: String, value: String) -> ObservabilityPipelineKafkaSourceLibrdkafkaOption { - ObservabilityPipelineKafkaSourceLibrdkafkaOption { +impl ObservabilityPipelineKafkaLibrdkafkaOption { + pub fn new(name: String, value: String) -> ObservabilityPipelineKafkaLibrdkafkaOption { + ObservabilityPipelineKafkaLibrdkafkaOption { name, value, additional_properties: std::collections::BTreeMap::new(), @@ -43,14 +43,14 @@ impl ObservabilityPipelineKafkaSourceLibrdkafkaOption { } } -impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceLibrdkafkaOption { +impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaLibrdkafkaOption { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { - struct ObservabilityPipelineKafkaSourceLibrdkafkaOptionVisitor; - impl<'a> Visitor<'a> for ObservabilityPipelineKafkaSourceLibrdkafkaOptionVisitor { - type Value = ObservabilityPipelineKafkaSourceLibrdkafkaOption; + struct ObservabilityPipelineKafkaLibrdkafkaOptionVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineKafkaLibrdkafkaOptionVisitor { + type Value = ObservabilityPipelineKafkaLibrdkafkaOption; fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_str("a mapping") @@ -86,7 +86,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceLibrdkafkaOption let name = name.ok_or_else(|| M::Error::missing_field("name"))?; let value = value.ok_or_else(|| M::Error::missing_field("value"))?; - let content = ObservabilityPipelineKafkaSourceLibrdkafkaOption { + let content = ObservabilityPipelineKafkaLibrdkafkaOption { name, value, additional_properties, @@ -97,6 +97,6 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceLibrdkafkaOption } } - deserializer.deserialize_any(ObservabilityPipelineKafkaSourceLibrdkafkaOptionVisitor) + deserializer.deserialize_any(ObservabilityPipelineKafkaLibrdkafkaOptionVisitor) } } diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_source_sasl.rs b/src/datadogV2/model/model_observability_pipeline_kafka_sasl.rs similarity index 78% rename from src/datadogV2/model/model_observability_pipeline_kafka_source_sasl.rs rename to src/datadogV2/model/model_observability_pipeline_kafka_sasl.rs index 91216f442..da017d93e 100644 --- a/src/datadogV2/model/model_observability_pipeline_kafka_source_sasl.rs +++ b/src/datadogV2/model/model_observability_pipeline_kafka_sasl.rs @@ -10,11 +10,10 @@ use std::fmt::{self, Formatter}; #[non_exhaustive] #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] -pub struct ObservabilityPipelineKafkaSourceSasl { +pub struct ObservabilityPipelineKafkaSasl { /// SASL mechanism used for Kafka authentication. #[serde(rename = "mechanism")] - pub mechanism: - Option, + pub mechanism: Option, #[serde(flatten)] pub additional_properties: std::collections::BTreeMap, #[serde(skip)] @@ -22,9 +21,9 @@ pub struct ObservabilityPipelineKafkaSourceSasl { pub(crate) _unparsed: bool, } -impl ObservabilityPipelineKafkaSourceSasl { - pub fn new() -> ObservabilityPipelineKafkaSourceSasl { - ObservabilityPipelineKafkaSourceSasl { +impl ObservabilityPipelineKafkaSasl { + pub fn new() -> ObservabilityPipelineKafkaSasl { + ObservabilityPipelineKafkaSasl { mechanism: None, additional_properties: std::collections::BTreeMap::new(), _unparsed: false, @@ -33,7 +32,7 @@ impl ObservabilityPipelineKafkaSourceSasl { pub fn mechanism( mut self, - value: crate::datadogV2::model::ObservabilityPipelinePipelineKafkaSourceSaslMechanism, + value: crate::datadogV2::model::ObservabilityPipelineKafkaSaslMechanism, ) -> Self { self.mechanism = Some(value); self @@ -48,20 +47,20 @@ impl ObservabilityPipelineKafkaSourceSasl { } } -impl Default for ObservabilityPipelineKafkaSourceSasl { +impl Default for ObservabilityPipelineKafkaSasl { fn default() -> Self { Self::new() } } -impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceSasl { +impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSasl { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { - struct ObservabilityPipelineKafkaSourceSaslVisitor; - impl<'a> Visitor<'a> for ObservabilityPipelineKafkaSourceSaslVisitor { - type Value = ObservabilityPipelineKafkaSourceSasl; + struct ObservabilityPipelineKafkaSaslVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineKafkaSaslVisitor { + type Value = ObservabilityPipelineKafkaSasl; fn expecting(&self, f: &mut Formatter<'_>) -> fmt::Result { f.write_str("a mapping") @@ -72,7 +71,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceSasl { M: MapAccess<'a>, { let mut mechanism: Option< - crate::datadogV2::model::ObservabilityPipelinePipelineKafkaSourceSaslMechanism, + crate::datadogV2::model::ObservabilityPipelineKafkaSaslMechanism, > = None; let mut additional_properties: std::collections::BTreeMap< String, @@ -89,7 +88,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceSasl { mechanism = Some(serde_json::from_value(v).map_err(M::Error::custom)?); if let Some(ref _mechanism) = mechanism { match _mechanism { - crate::datadogV2::model::ObservabilityPipelinePipelineKafkaSourceSaslMechanism::UnparsedObject(_mechanism) => { + crate::datadogV2::model::ObservabilityPipelineKafkaSaslMechanism::UnparsedObject(_mechanism) => { _unparsed = true; }, _ => {} @@ -104,7 +103,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceSasl { } } - let content = ObservabilityPipelineKafkaSourceSasl { + let content = ObservabilityPipelineKafkaSasl { mechanism, additional_properties, _unparsed, @@ -114,6 +113,6 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSourceSasl { } } - deserializer.deserialize_any(ObservabilityPipelineKafkaSourceSaslVisitor) + deserializer.deserialize_any(ObservabilityPipelineKafkaSaslVisitor) } } diff --git a/src/datadogV2/model/model_observability_pipeline_pipeline_kafka_source_sasl_mechanism.rs b/src/datadogV2/model/model_observability_pipeline_kafka_sasl_mechanism.rs similarity index 84% rename from src/datadogV2/model/model_observability_pipeline_pipeline_kafka_source_sasl_mechanism.rs rename to src/datadogV2/model/model_observability_pipeline_kafka_sasl_mechanism.rs index de010e683..4eccd28d3 100644 --- a/src/datadogV2/model/model_observability_pipeline_pipeline_kafka_source_sasl_mechanism.rs +++ b/src/datadogV2/model/model_observability_pipeline_kafka_sasl_mechanism.rs @@ -6,14 +6,14 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; #[non_exhaustive] #[derive(Clone, Debug, Eq, PartialEq)] -pub enum ObservabilityPipelinePipelineKafkaSourceSaslMechanism { +pub enum ObservabilityPipelineKafkaSaslMechanism { PLAIN, SCRAMNOT_SHANOT_256, SCRAMNOT_SHANOT_512, UnparsedObject(crate::datadog::UnparsedObject), } -impl ToString for ObservabilityPipelinePipelineKafkaSourceSaslMechanism { +impl ToString for ObservabilityPipelineKafkaSaslMechanism { fn to_string(&self) -> String { match self { Self::PLAIN => String::from("PLAIN"), @@ -24,7 +24,7 @@ impl ToString for ObservabilityPipelinePipelineKafkaSourceSaslMechanism { } } -impl Serialize for ObservabilityPipelinePipelineKafkaSourceSaslMechanism { +impl Serialize for ObservabilityPipelineKafkaSaslMechanism { fn serialize(&self, serializer: S) -> Result where S: Serializer, @@ -36,7 +36,7 @@ impl Serialize for ObservabilityPipelinePipelineKafkaSourceSaslMechanism { } } -impl<'de> Deserialize<'de> for ObservabilityPipelinePipelineKafkaSourceSaslMechanism { +impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSaslMechanism { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, diff --git a/src/datadogV2/model/model_observability_pipeline_kafka_source.rs b/src/datadogV2/model/model_observability_pipeline_kafka_source.rs index a2cb75f12..da26ad5f8 100644 --- a/src/datadogV2/model/model_observability_pipeline_kafka_source.rs +++ b/src/datadogV2/model/model_observability_pipeline_kafka_source.rs @@ -20,10 +20,10 @@ pub struct ObservabilityPipelineKafkaSource { /// Optional list of advanced Kafka client configuration options, defined as key-value pairs. #[serde(rename = "librdkafka_options")] pub librdkafka_options: - Option>, + Option>, /// Specifies the SASL mechanism for authenticating with a Kafka cluster. #[serde(rename = "sasl")] - pub sasl: Option, + pub sasl: Option, /// Configuration for enabling TLS encryption between the pipeline component and external services. #[serde(rename = "tls")] pub tls: Option, @@ -62,16 +62,13 @@ impl ObservabilityPipelineKafkaSource { pub fn librdkafka_options( mut self, - value: Vec, + value: Vec, ) -> Self { self.librdkafka_options = Some(value); self } - pub fn sasl( - mut self, - value: crate::datadogV2::model::ObservabilityPipelineKafkaSourceSasl, - ) -> Self { + pub fn sasl(mut self, value: crate::datadogV2::model::ObservabilityPipelineKafkaSasl) -> Self { self.sasl = Some(value); self } @@ -110,11 +107,10 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineKafkaSource { let mut group_id: Option = None; let mut id: Option = None; let mut librdkafka_options: Option< - Vec, - > = None; - let mut sasl: Option< - crate::datadogV2::model::ObservabilityPipelineKafkaSourceSasl, + Vec, > = None; + let mut sasl: Option = + None; let mut tls: Option = None; let mut topics: Option> = None; let mut type_: Option< diff --git a/src/datadogV2/model/model_observability_pipeline_opentelemetry_source.rs b/src/datadogV2/model/model_observability_pipeline_opentelemetry_source.rs new file mode 100644 index 000000000..f7b4f0b0d --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_opentelemetry_source.rs @@ -0,0 +1,168 @@ +// 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 `opentelemetry` source receives telemetry data using the OpenTelemetry Protocol (OTLP) over gRPC and HTTP. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineOpentelemetrySource { + /// Environment variable name containing the gRPC server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). + #[serde(rename = "grpc_address_key")] + pub grpc_address_key: Option, + /// Environment variable name containing the HTTP server address for receiving OTLP data. Must be a valid environment variable name (alphanumeric characters and underscores only). + #[serde(rename = "http_address_key")] + pub http_address_key: Option, + /// The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). + #[serde(rename = "id")] + pub id: String, + /// Configuration for enabling TLS encryption between the pipeline component and external services. + #[serde(rename = "tls")] + pub tls: Option, + /// The source type. The value should always be `opentelemetry`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineOpentelemetrySourceType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineOpentelemetrySource { + pub fn new( + id: String, + type_: crate::datadogV2::model::ObservabilityPipelineOpentelemetrySourceType, + ) -> ObservabilityPipelineOpentelemetrySource { + ObservabilityPipelineOpentelemetrySource { + grpc_address_key: None, + http_address_key: None, + id, + tls: None, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn grpc_address_key(mut self, value: String) -> Self { + self.grpc_address_key = Some(value); + self + } + + pub fn http_address_key(mut self, value: String) -> Self { + self.http_address_key = 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 ObservabilityPipelineOpentelemetrySource { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineOpentelemetrySourceVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineOpentelemetrySourceVisitor { + type Value = ObservabilityPipelineOpentelemetrySource; + + 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 grpc_address_key: Option = None; + let mut http_address_key: Option = None; + let mut id: Option = None; + let mut tls: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineOpentelemetrySourceType, + > = 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() { + "grpc_address_key" => { + if v.is_null() { + continue; + } + grpc_address_key = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "http_address_key" => { + if v.is_null() { + continue; + } + http_address_key = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "id" => { + id = 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::ObservabilityPipelineOpentelemetrySourceType::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 type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineOpentelemetrySource { + grpc_address_key, + http_address_key, + id, + tls, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineOpentelemetrySourceVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_opentelemetry_source_type.rs b/src/datadogV2/model/model_observability_pipeline_opentelemetry_source_type.rs new file mode 100644 index 000000000..042c2c6de --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_opentelemetry_source_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 ObservabilityPipelineOpentelemetrySourceType { + OPENTELEMETRY, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineOpentelemetrySourceType { + fn to_string(&self) -> String { + match self { + Self::OPENTELEMETRY => String::from("opentelemetry"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineOpentelemetrySourceType { + 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 ObservabilityPipelineOpentelemetrySourceType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "opentelemetry" => Self::OPENTELEMETRY, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_parse_xml_processor.rs b/src/datadogV2/model/model_observability_pipeline_parse_xml_processor.rs new file mode 100644 index 000000000..8543dc5c4 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_parse_xml_processor.rs @@ -0,0 +1,289 @@ +// 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 `parse_xml` processor parses XML from a specified field and extracts it into the event. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineParseXMLProcessor { + /// Whether to always use a text key for element content. + #[serde(rename = "always_use_text_key")] + pub always_use_text_key: Option, + /// The prefix to use for XML attributes in the parsed output. + #[serde(rename = "attr_prefix")] + pub attr_prefix: Option, + /// The display name for a component. + #[serde(rename = "display_name")] + pub display_name: Option, + /// Whether this processor is enabled. + #[serde(rename = "enabled")] + pub enabled: bool, + /// The name of the log field that contains an XML string. + #[serde(rename = "field")] + pub field: String, + /// 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 this processor targets. + #[serde(rename = "include")] + pub include: String, + /// Whether to include XML attributes in the parsed output. + #[serde(rename = "include_attr")] + pub include_attr: Option, + /// Whether to parse boolean values from strings. + #[serde(rename = "parse_bool")] + pub parse_bool: Option, + /// Whether to parse null values. + #[serde(rename = "parse_null")] + pub parse_null: Option, + /// Whether to parse numeric values from strings. + #[serde(rename = "parse_number")] + pub parse_number: Option, + /// The key name to use for text content within XML elements. Must be at least 1 character if specified. + #[serde(rename = "text_key")] + pub text_key: Option, + /// The processor type. The value should always be `parse_xml`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineParseXMLProcessorType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineParseXMLProcessor { + pub fn new( + enabled: bool, + field: String, + id: String, + include: String, + type_: crate::datadogV2::model::ObservabilityPipelineParseXMLProcessorType, + ) -> ObservabilityPipelineParseXMLProcessor { + ObservabilityPipelineParseXMLProcessor { + always_use_text_key: None, + attr_prefix: None, + display_name: None, + enabled, + field, + id, + include, + include_attr: None, + parse_bool: None, + parse_null: None, + parse_number: None, + text_key: None, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn always_use_text_key(mut self, value: bool) -> Self { + self.always_use_text_key = Some(value); + self + } + + pub fn attr_prefix(mut self, value: String) -> Self { + self.attr_prefix = Some(value); + self + } + + pub fn display_name(mut self, value: String) -> Self { + self.display_name = Some(value); + self + } + + pub fn include_attr(mut self, value: bool) -> Self { + self.include_attr = Some(value); + self + } + + pub fn parse_bool(mut self, value: bool) -> Self { + self.parse_bool = Some(value); + self + } + + pub fn parse_null(mut self, value: bool) -> Self { + self.parse_null = Some(value); + self + } + + pub fn parse_number(mut self, value: bool) -> Self { + self.parse_number = Some(value); + self + } + + pub fn text_key(mut self, value: String) -> Self { + self.text_key = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineParseXMLProcessor { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineParseXMLProcessorVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineParseXMLProcessorVisitor { + type Value = ObservabilityPipelineParseXMLProcessor; + + 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 always_use_text_key: Option = None; + let mut attr_prefix: Option = None; + let mut display_name: Option = None; + let mut enabled: Option = None; + let mut field: Option = None; + let mut id: Option = None; + let mut include: Option = None; + let mut include_attr: Option = None; + let mut parse_bool: Option = None; + let mut parse_null: Option = None; + let mut parse_number: Option = None; + let mut text_key: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineParseXMLProcessorType, + > = 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() { + "always_use_text_key" => { + if v.is_null() { + continue; + } + always_use_text_key = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "attr_prefix" => { + if v.is_null() { + continue; + } + attr_prefix = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "display_name" => { + if v.is_null() { + continue; + } + display_name = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "enabled" => { + enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "field" => { + field = 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)?); + } + "include_attr" => { + if v.is_null() { + continue; + } + include_attr = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "parse_bool" => { + if v.is_null() { + continue; + } + parse_bool = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "parse_null" => { + if v.is_null() { + continue; + } + parse_null = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "parse_number" => { + if v.is_null() { + continue; + } + parse_number = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "text_key" => { + if v.is_null() { + continue; + } + text_key = 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::ObservabilityPipelineParseXMLProcessorType::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 field = field.ok_or_else(|| M::Error::missing_field("field"))?; + let id = id.ok_or_else(|| M::Error::missing_field("id"))?; + let include = include.ok_or_else(|| M::Error::missing_field("include"))?; + let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineParseXMLProcessor { + always_use_text_key, + attr_prefix, + display_name, + enabled, + field, + id, + include, + include_attr, + parse_bool, + parse_null, + parse_number, + text_key, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineParseXMLProcessorVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_parse_xml_processor_type.rs b/src/datadogV2/model/model_observability_pipeline_parse_xml_processor_type.rs new file mode 100644 index 000000000..05aaf7733 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_parse_xml_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 ObservabilityPipelineParseXMLProcessorType { + PARSE_XML, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineParseXMLProcessorType { + fn to_string(&self) -> String { + match self { + Self::PARSE_XML => String::from("parse_xml"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineParseXMLProcessorType { + 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 ObservabilityPipelineParseXMLProcessorType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "parse_xml" => Self::PARSE_XML, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_quota_processor.rs b/src/datadogV2/model/model_observability_pipeline_quota_processor.rs index 9dd257574..1647d3c36 100644 --- a/src/datadogV2/model/model_observability_pipeline_quota_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_quota_processor.rs @@ -14,7 +14,7 @@ pub struct ObservabilityPipelineQuotaProcessor { /// The display name for a component. #[serde(rename = "display_name")] pub display_name: Option, - /// If set to `true`, logs that matched the quota filter and sent after the quota has been met are dropped; only logs that did not match the filter query continue through the pipeline. + /// If set to `true`, logs that match the quota filter and are sent after the quota is exceeded are dropped. Logs that do not match the filter continue through the pipeline. **Note**: You can set either `drop_events` or `overflow_action`, but not both. #[serde(rename = "drop_events")] pub drop_events: Option, /// Whether this processor is enabled. @@ -35,7 +35,7 @@ pub struct ObservabilityPipelineQuotaProcessor { /// Name of the quota. #[serde(rename = "name")] pub name: String, - /// The action to take when the quota is exceeded. Options: + /// The action to take when the quota or bucket limit is exceeded. Options: /// - `drop`: Drop the event. /// - `no_action`: Let the event pass through. /// - `overflow_routing`: Route to an overflow destination. @@ -49,6 +49,13 @@ pub struct ObservabilityPipelineQuotaProcessor { /// A list of fields used to segment log traffic for quota enforcement. Quotas are tracked independently by unique combinations of these field values. #[serde(rename = "partition_fields")] pub partition_fields: Option>, + /// The action to take when the quota or bucket limit is exceeded. Options: + /// - `drop`: Drop the event. + /// - `no_action`: Let the event pass through. + /// - `overflow_routing`: Route to an overflow destination. + #[serde(rename = "too_many_buckets_action")] + pub too_many_buckets_action: + Option, /// The processor type. The value should always be `quota`. #[serde(rename = "type")] pub type_: crate::datadogV2::model::ObservabilityPipelineQuotaProcessorType, @@ -80,6 +87,7 @@ impl ObservabilityPipelineQuotaProcessor { overflow_action: None, overrides: None, partition_fields: None, + too_many_buckets_action: None, type_, additional_properties: std::collections::BTreeMap::new(), _unparsed: false, @@ -122,6 +130,14 @@ impl ObservabilityPipelineQuotaProcessor { self } + pub fn too_many_buckets_action( + mut self, + value: crate::datadogV2::model::ObservabilityPipelineQuotaProcessorOverflowAction, + ) -> Self { + self.too_many_buckets_action = Some(value); + self + } + pub fn additional_properties( mut self, value: std::collections::BTreeMap, @@ -165,6 +181,9 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineQuotaProcessor { Vec, > = None; let mut partition_fields: Option> = None; + let mut too_many_buckets_action: Option< + crate::datadogV2::model::ObservabilityPipelineQuotaProcessorOverflowAction, + > = None; let mut type_: Option< crate::datadogV2::model::ObservabilityPipelineQuotaProcessorType, > = None; @@ -240,6 +259,21 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineQuotaProcessor { partition_fields = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "too_many_buckets_action" => { + if v.is_null() { + continue; + } + too_many_buckets_action = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _too_many_buckets_action) = too_many_buckets_action { + match _too_many_buckets_action { + crate::datadogV2::model::ObservabilityPipelineQuotaProcessorOverflowAction::UnparsedObject(_too_many_buckets_action) => { + _unparsed = true; + }, + _ => {} + } + } + } "type" => { type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); if let Some(ref _type_) = type_ { @@ -277,6 +311,7 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineQuotaProcessor { overflow_action, overrides, partition_fields, + too_many_buckets_action, type_, additional_properties, _unparsed, diff --git a/src/datadogV2/model/model_observability_pipeline_sample_processor.rs b/src/datadogV2/model/model_observability_pipeline_sample_processor.rs index 52a0cd33b..60db3c076 100644 --- a/src/datadogV2/model/model_observability_pipeline_sample_processor.rs +++ b/src/datadogV2/model/model_observability_pipeline_sample_processor.rs @@ -17,6 +17,9 @@ pub struct ObservabilityPipelineSampleProcessor { /// Whether this processor is enabled. #[serde(rename = "enabled")] pub enabled: bool, + /// Optional list of fields to group events by. Each group is sampled independently. + #[serde(rename = "group_by")] + pub group_by: Option>, /// 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, @@ -25,10 +28,7 @@ pub struct ObservabilityPipelineSampleProcessor { pub include: String, /// The percentage of logs to sample. #[serde(rename = "percentage")] - pub percentage: Option, - /// Number of events to sample (1 in N). - #[serde(rename = "rate")] - pub rate: Option, + pub percentage: f64, /// The processor type. The value should always be `sample`. #[serde(rename = "type")] pub type_: crate::datadogV2::model::ObservabilityPipelineSampleProcessorType, @@ -44,15 +44,16 @@ impl ObservabilityPipelineSampleProcessor { enabled: bool, id: String, include: String, + percentage: f64, type_: crate::datadogV2::model::ObservabilityPipelineSampleProcessorType, ) -> ObservabilityPipelineSampleProcessor { ObservabilityPipelineSampleProcessor { display_name: None, enabled, + group_by: None, id, include, - percentage: None, - rate: None, + percentage, type_, additional_properties: std::collections::BTreeMap::new(), _unparsed: false, @@ -64,13 +65,8 @@ impl ObservabilityPipelineSampleProcessor { self } - pub fn percentage(mut self, value: f64) -> Self { - self.percentage = Some(value); - self - } - - pub fn rate(mut self, value: i64) -> Self { - self.rate = Some(value); + pub fn group_by(mut self, value: Vec) -> Self { + self.group_by = Some(value); self } @@ -102,10 +98,10 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineSampleProcessor { { let mut display_name: Option = None; let mut enabled: Option = None; + let mut group_by: Option> = None; let mut id: Option = None; let mut include: Option = None; let mut percentage: Option = None; - let mut rate: Option = None; let mut type_: Option< crate::datadogV2::model::ObservabilityPipelineSampleProcessorType, > = None; @@ -127,6 +123,12 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineSampleProcessor { "enabled" => { enabled = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } + "group_by" => { + if v.is_null() { + continue; + } + group_by = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "id" => { id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } @@ -134,17 +136,8 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineSampleProcessor { include = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } "percentage" => { - if v.is_null() { - continue; - } percentage = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } - "rate" => { - if v.is_null() { - continue; - } - rate = 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_ { @@ -166,15 +159,16 @@ impl<'de> Deserialize<'de> for ObservabilityPipelineSampleProcessor { 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 percentage = percentage.ok_or_else(|| M::Error::missing_field("percentage"))?; let type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; let content = ObservabilityPipelineSampleProcessor { display_name, enabled, + group_by, id, include, percentage, - rate, type_, additional_properties, _unparsed, diff --git a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_custom_pattern_options.rs b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_custom_pattern_options.rs index e0cdf3a7e..eb8be15e3 100644 --- a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_custom_pattern_options.rs +++ b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_custom_pattern_options.rs @@ -11,6 +11,9 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions { + /// Human-readable description providing context about a sensitive data scanner rule + #[serde(rename = "description")] + pub description: Option, /// A regular expression used to detect sensitive values. Must be a valid regex. #[serde(rename = "rule")] pub rule: String, @@ -26,12 +29,18 @@ impl ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions { rule: String, ) -> ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions { ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions { + description: None, rule, additional_properties: std::collections::BTreeMap::new(), _unparsed: false, } } + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + pub fn additional_properties( mut self, value: std::collections::BTreeMap, @@ -62,6 +71,7 @@ impl<'de> Deserialize<'de> where M: MapAccess<'a>, { + let mut description: Option = None; let mut rule: Option = None; let mut additional_properties: std::collections::BTreeMap< String, @@ -71,6 +81,13 @@ impl<'de> Deserialize<'de> while let Some((k, v)) = map.next_entry::()? { match k.as_str() { + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "rule" => { rule = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } @@ -85,6 +102,7 @@ impl<'de> Deserialize<'de> let content = ObservabilityPipelineSensitiveDataScannerProcessorCustomPatternOptions { + description, rule, additional_properties, _unparsed, diff --git a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_library_pattern_options.rs b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_library_pattern_options.rs index 381bf5e94..e967a9d20 100644 --- a/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_library_pattern_options.rs +++ b/src/datadogV2/model/model_observability_pipeline_sensitive_data_scanner_processor_library_pattern_options.rs @@ -11,6 +11,9 @@ use std::fmt::{self, Formatter}; #[skip_serializing_none] #[derive(Clone, Debug, PartialEq, Serialize)] pub struct ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { + /// Human-readable description providing context about a sensitive data scanner rule + #[serde(rename = "description")] + pub description: Option, /// Identifier for a predefined pattern from the sensitive data scanner pattern library. #[serde(rename = "id")] pub id: String, @@ -29,6 +32,7 @@ impl ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { id: String, ) -> ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { + description: None, id, use_recommended_keywords: None, additional_properties: std::collections::BTreeMap::new(), @@ -36,6 +40,11 @@ impl ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { } } + pub fn description(mut self, value: String) -> Self { + self.description = Some(value); + self + } + pub fn use_recommended_keywords(mut self, value: bool) -> Self { self.use_recommended_keywords = Some(value); self @@ -71,6 +80,7 @@ impl<'de> Deserialize<'de> where M: MapAccess<'a>, { + let mut description: Option = None; let mut id: Option = None; let mut use_recommended_keywords: Option = None; let mut additional_properties: std::collections::BTreeMap< @@ -81,6 +91,13 @@ impl<'de> Deserialize<'de> while let Some((k, v)) = map.next_entry::()? { match k.as_str() { + "description" => { + if v.is_null() { + continue; + } + description = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } "id" => { id = Some(serde_json::from_value(v).map_err(M::Error::custom)?); } @@ -102,6 +119,7 @@ impl<'de> Deserialize<'de> let content = ObservabilityPipelineSensitiveDataScannerProcessorLibraryPatternOptions { + description, id, use_recommended_keywords, additional_properties, diff --git a/src/datadogV2/model/model_observability_pipeline_split_array_processor.rs b/src/datadogV2/model/model_observability_pipeline_split_array_processor.rs new file mode 100644 index 000000000..fdb05fee1 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_split_array_processor.rs @@ -0,0 +1,166 @@ +// 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 `split_array` processor splits array fields into separate events based on configured rules. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineSplitArrayProcessor { + /// A list of array split configurations. + #[serde(rename = "arrays")] + pub arrays: Vec, + /// The display name for a component. + #[serde(rename = "display_name")] + pub display_name: Option, + /// 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 logs this processor targets. For split_array, this should typically be `*`. + #[serde(rename = "include")] + pub include: String, + /// The processor type. The value should always be `split_array`. + #[serde(rename = "type")] + pub type_: crate::datadogV2::model::ObservabilityPipelineSplitArrayProcessorType, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineSplitArrayProcessor { + pub fn new( + arrays: Vec, + enabled: bool, + id: String, + include: String, + type_: crate::datadogV2::model::ObservabilityPipelineSplitArrayProcessorType, + ) -> ObservabilityPipelineSplitArrayProcessor { + ObservabilityPipelineSplitArrayProcessor { + arrays, + display_name: None, + enabled, + id, + include, + type_, + additional_properties: std::collections::BTreeMap::new(), + _unparsed: false, + } + } + + pub fn display_name(mut self, value: String) -> Self { + self.display_name = Some(value); + self + } + + pub fn additional_properties( + mut self, + value: std::collections::BTreeMap, + ) -> Self { + self.additional_properties = value; + self + } +} + +impl<'de> Deserialize<'de> for ObservabilityPipelineSplitArrayProcessor { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineSplitArrayProcessorVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineSplitArrayProcessorVisitor { + type Value = ObservabilityPipelineSplitArrayProcessor; + + 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 arrays: Option> = None; + let mut display_name: Option = None; + let mut enabled: Option = None; + let mut id: Option = None; + let mut include: Option = None; + let mut type_: Option< + crate::datadogV2::model::ObservabilityPipelineSplitArrayProcessorType, + > = 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() { + "arrays" => { + arrays = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "display_name" => { + if v.is_null() { + continue; + } + display_name = + Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "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)?); + } + "type" => { + type_ = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + if let Some(ref _type_) = type_ { + match _type_ { + crate::datadogV2::model::ObservabilityPipelineSplitArrayProcessorType::UnparsedObject(_type_) => { + _unparsed = true; + }, + _ => {} + } + } + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let arrays = arrays.ok_or_else(|| M::Error::missing_field("arrays"))?; + 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 type_ = type_.ok_or_else(|| M::Error::missing_field("type_"))?; + + let content = ObservabilityPipelineSplitArrayProcessor { + arrays, + display_name, + enabled, + id, + include, + type_, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineSplitArrayProcessorVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_split_array_processor_array_config.rs b/src/datadogV2/model/model_observability_pipeline_split_array_processor_array_config.rs new file mode 100644 index 000000000..8c65ab717 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_split_array_processor_array_config.rs @@ -0,0 +1,105 @@ +// 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}; + +/// Configuration for a single array split operation. +#[non_exhaustive] +#[skip_serializing_none] +#[derive(Clone, Debug, PartialEq, Serialize)] +pub struct ObservabilityPipelineSplitArrayProcessorArrayConfig { + /// The path to the array field to split. + #[serde(rename = "field")] + pub field: String, + /// A Datadog search query used to determine which logs this array split operation targets. + #[serde(rename = "include")] + pub include: String, + #[serde(flatten)] + pub additional_properties: std::collections::BTreeMap, + #[serde(skip)] + #[serde(default)] + pub(crate) _unparsed: bool, +} + +impl ObservabilityPipelineSplitArrayProcessorArrayConfig { + pub fn new( + field: String, + include: String, + ) -> ObservabilityPipelineSplitArrayProcessorArrayConfig { + ObservabilityPipelineSplitArrayProcessorArrayConfig { + field, + include, + 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 ObservabilityPipelineSplitArrayProcessorArrayConfig { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + struct ObservabilityPipelineSplitArrayProcessorArrayConfigVisitor; + impl<'a> Visitor<'a> for ObservabilityPipelineSplitArrayProcessorArrayConfigVisitor { + type Value = ObservabilityPipelineSplitArrayProcessorArrayConfig; + + 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 field: Option = None; + let mut include: 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() { + "field" => { + field = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + "include" => { + include = Some(serde_json::from_value(v).map_err(M::Error::custom)?); + } + &_ => { + if let Ok(value) = serde_json::from_value(v.clone()) { + additional_properties.insert(k, value); + } + } + } + } + let field = field.ok_or_else(|| M::Error::missing_field("field"))?; + let include = include.ok_or_else(|| M::Error::missing_field("include"))?; + + let content = ObservabilityPipelineSplitArrayProcessorArrayConfig { + field, + include, + additional_properties, + _unparsed, + }; + + Ok(content) + } + } + + deserializer.deserialize_any(ObservabilityPipelineSplitArrayProcessorArrayConfigVisitor) + } +} diff --git a/src/datadogV2/model/model_observability_pipeline_split_array_processor_type.rs b/src/datadogV2/model/model_observability_pipeline_split_array_processor_type.rs new file mode 100644 index 000000000..444613a93 --- /dev/null +++ b/src/datadogV2/model/model_observability_pipeline_split_array_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 ObservabilityPipelineSplitArrayProcessorType { + SPLIT_ARRAY, + UnparsedObject(crate::datadog::UnparsedObject), +} + +impl ToString for ObservabilityPipelineSplitArrayProcessorType { + fn to_string(&self) -> String { + match self { + Self::SPLIT_ARRAY => String::from("split_array"), + Self::UnparsedObject(v) => v.value.to_string(), + } + } +} + +impl Serialize for ObservabilityPipelineSplitArrayProcessorType { + 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 ObservabilityPipelineSplitArrayProcessorType { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s: String = String::deserialize(deserializer)?; + Ok(match s.as_str() { + "split_array" => Self::SPLIT_ARRAY, + _ => Self::UnparsedObject(crate::datadog::UnparsedObject { + value: serde_json::Value::String(s.into()), + }), + }) + } +} diff --git a/tests/scenarios/features/v2/given.json b/tests/scenarios/features/v2/given.json index aa0818187..3a01a060c 100644 --- a/tests/scenarios/features/v2/given.json +++ b/tests/scenarios/features/v2/given.json @@ -727,6 +727,18 @@ "tag": "Monitors", "operationId": "CreateMonitorUserTemplate" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\":{\n \"attributes\":{\n \"config\":{\n \"destinations\":[\n {\n \"id\":\"datadog-logs-destination\",\n \"inputs\":[\n \"processor-group-0\"\n ],\n \"type\":\"datadog_logs\"\n }\n ],\n \"processor_groups\":[\n {\n \"id\":\"processor-group-0\",\n \"include\":\"service:my-service\",\n \"display_name\": \"My Processor Group\",\n \"inputs\":[\n \"datadog-agent-source\"\n ],\n \"enabled\": true,\n \"processors\": [\n {\n \"id\": \"filter-processor\",\n \"type\": \"filter\",\n \"include\": \"status:error\",\n \"display_name\": \"My Filter Processor\",\n \"enabled\": true\n }\n ]\n }\n ],\n \"sources\":[\n {\n \"id\":\"datadog-agent-source\",\n \"type\":\"datadog_agent\"\n }\n ]\n },\n \"name\":\"Main Observability Pipeline\"\n },\n \"type\":\"pipelines\"\n }\n}" + } + ], + "step": "there is a valid \"pipeline\" in the system", + "key": "pipeline", + "tag": "Observability Pipelines", + "operationId": "CreatePipeline" + }, { "parameters": [ { @@ -879,18 +891,6 @@ "tag": "CSM Threats", "operationId": "CreateCSMThreatsAgentPolicy" }, - { - "parameters": [ - { - "name": "body", - "value": "{\n \"data\":{\n \"attributes\":{\n \"config\":{\n \"destinations\":[\n {\n \"id\":\"datadog-logs-destination\",\n \"inputs\":[\n \"processor-group-0\"\n ],\n \"type\":\"datadog_logs\"\n }\n ],\n \"processors\":[\n {\n \"id\":\"processor-group-0\",\n \"include\":\"service:my-service\",\n \"display_name\": \"My Processor Group\",\n \"inputs\":[\n \"datadog-agent-source\"\n ],\n \"enabled\": true,\n \"processors\": [\n {\n \"id\": \"filter-processor\",\n \"type\": \"filter\",\n \"include\": \"status:error\",\n \"display_name\": \"My Filter Processor\",\n \"enabled\": true\n }\n ]\n }\n ],\n \"sources\":[\n {\n \"id\":\"datadog-agent-source\",\n \"type\":\"datadog_agent\"\n }\n ]\n },\n \"name\":\"Main Observability Pipeline\"\n },\n \"type\":\"pipelines\"\n }\n}" - } - ], - "step": "there is a valid \"pipeline\" in the system", - "key": "pipeline", - "tag": "Observability Pipelines", - "operationId": "CreatePipeline" - }, { "parameters": [ { diff --git a/tests/scenarios/features/v2/observability_pipelines.feature b/tests/scenarios/features/v2/observability_pipelines.feature index c43fa8b3b..afe602c3b 100644 --- a/tests/scenarios/features/v2/observability_pipelines.feature +++ b/tests/scenarios/features/v2/observability_pipelines.feature @@ -12,7 +12,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "Bad Request" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request @@ -20,7 +20,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "Conflict" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"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"}], "processor_groups": [{"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 @@ -28,7 +28,7 @@ Feature: Observability Pipelines Scenario: Create a new pipeline returns "OK" response Given operation "CreatePipeline" enabled And new "CreatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 201 OK And the response "data" has field "id" @@ -106,7 +106,7 @@ Feature: Observability Pipelines And new "UpdatePipeline" request And there is a valid "pipeline" in the system And request contains "pipeline_id" parameter from "pipeline.data.id" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "unknown-processor", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request @@ -115,7 +115,7 @@ Feature: Observability Pipelines Given operation "UpdatePipeline" enabled And new "UpdatePipeline" request And request contains "pipeline_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["filter-processor"], "type": "datadog_logs"}], "processors": [{"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"}], "processor_groups": [{"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 @@ -124,7 +124,7 @@ Feature: Observability Pipelines Given operation "UpdatePipeline" enabled And new "UpdatePipeline" request And request contains "pipeline_id" parameter with value "3fa85f64-5717-4562-b3fc-2c963f66afa6" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 404 Not Found @@ -134,7 +134,7 @@ Feature: Observability Pipelines And there is a valid "pipeline" in the system And new "UpdatePipeline" request And request contains "pipeline_id" parameter from "pipeline.data.id" - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "updated-datadog-logs-destination-id", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Updated Pipeline Name"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "updated-datadog-logs-destination-id", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Updated Pipeline Name"}, "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "type": "pipelines"}} When the request is sent Then the response status is 200 OK And the response "data" has field "id" @@ -149,7 +149,7 @@ Feature: Observability Pipelines Scenario: Validate an observability pipeline returns "Bad Request" response Given operation "ValidatePipeline" enabled And new "ValidatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 400 Bad Request And the response "errors[0].title" is equal to "Field 'include' is required" @@ -161,7 +161,7 @@ Feature: Observability Pipelines Scenario: Validate an observability pipeline returns "OK" response Given operation "ValidatePipeline" enabled And new "ValidatePipeline" request - And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processors": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "datadog-logs-destination", "inputs": ["my-processor-group"], "type": "datadog_logs"}], "processor_groups": [{"enabled": true, "id": "my-processor-group", "include": "service:my-service", "inputs": ["datadog-agent-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "datadog-agent-source", "type": "datadog_agent"}]}, "name": "Main Observability Pipeline"}, "type": "pipelines"}} When the request is sent Then the response status is 200 OK And the response "errors" has length 0 diff --git a/tests/scenarios/features/v2/undo.json b/tests/scenarios/features/v2/undo.json index eb43f26db..25c59473d 100644 --- a/tests/scenarios/features/v2/undo.json +++ b/tests/scenarios/features/v2/undo.json @@ -2838,6 +2838,31 @@ "type": "safe" } }, + "ListPipelines": { + "tag": "Observability Pipelines", + "undo": { + "type": "safe" + } + }, + "CreatePipeline": { + "tag": "Observability Pipelines", + "undo": { + "operationId": "DeletePipeline", + "parameters": [ + { + "name": "pipeline_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "ValidatePipeline": { + "tag": "Observability Pipelines", + "undo": { + "type": "safe" + } + }, "CreateOnCallEscalationPolicy": { "tag": "On-Call", "undo": { @@ -3443,31 +3468,6 @@ "type": "idempotent" } }, - "ListPipelines": { - "tag": "Observability Pipelines", - "undo": { - "type": "safe" - } - }, - "CreatePipeline": { - "tag": "Observability Pipelines", - "undo": { - "operationId": "DeletePipeline", - "parameters": [ - { - "name": "pipeline_id", - "source": "data.id" - } - ], - "type": "unsafe" - } - }, - "ValidatePipeline": { - "tag": "Observability Pipelines", - "undo": { - "type": "safe" - } - }, "DeletePipeline": { "tag": "Observability Pipelines", "undo": { diff --git a/tests/scenarios/function_mappings.rs b/tests/scenarios/function_mappings.rs index 312f0d588..119d6a35c 100644 --- a/tests/scenarios/function_mappings.rs +++ b/tests/scenarios/function_mappings.rs @@ -119,6 +119,8 @@ pub struct ApiInstances { Option, pub v2_api_cloud_network_monitoring: Option, + pub v2_api_observability_pipelines: + Option, pub v2_api_on_call: Option, pub v2_api_on_call_paging: Option, pub v2_api_organizations: Option, @@ -132,8 +134,6 @@ pub struct ApiInstances { pub v2_api_application_security: Option, pub v2_api_csm_threats: Option, - pub v2_api_observability_pipelines: - Option, pub v2_api_restriction_policies: Option, pub v2_api_rum: Option, @@ -800,6 +800,12 @@ pub fn initialize_api_instance(world: &mut DatadogWorld, api: String) { world.http_client.as_ref().unwrap().clone() )); } + "ObservabilityPipelines" => { + world.api_instances.v2_api_observability_pipelines = Some(datadogV2::api_observability_pipelines::ObservabilityPipelinesAPI::with_client_and_config( + world.config.clone(), + world.http_client.as_ref().unwrap().clone() + )); + } "OnCall" => { world.api_instances.v2_api_on_call = Some(datadogV2::api_on_call::OnCallAPI::with_client_and_config( @@ -876,12 +882,6 @@ pub fn initialize_api_instance(world: &mut DatadogWorld, api: String) { ), ); } - "ObservabilityPipelines" => { - world.api_instances.v2_api_observability_pipelines = Some(datadogV2::api_observability_pipelines::ObservabilityPipelinesAPI::with_client_and_config( - world.config.clone(), - world.http_client.as_ref().unwrap().clone() - )); - } "RestrictionPolicies" => { world.api_instances.v2_api_restriction_policies = Some( datadogV2::api_restriction_policies::RestrictionPoliciesAPI::with_client_and_config( @@ -3730,6 +3730,24 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { world .function_mappings .insert("v2.GetAggregatedDns".into(), test_v2_get_aggregated_dns); + world + .function_mappings + .insert("v2.ListPipelines".into(), test_v2_list_pipelines); + world + .function_mappings + .insert("v2.CreatePipeline".into(), test_v2_create_pipeline); + world + .function_mappings + .insert("v2.ValidatePipeline".into(), test_v2_validate_pipeline); + world + .function_mappings + .insert("v2.DeletePipeline".into(), test_v2_delete_pipeline); + world + .function_mappings + .insert("v2.GetPipeline".into(), test_v2_get_pipeline); + world + .function_mappings + .insert("v2.UpdatePipeline".into(), test_v2_update_pipeline); world.function_mappings.insert( "v2.CreateOnCallEscalationPolicy".into(), test_v2_create_on_call_escalation_policy, @@ -4096,24 +4114,6 @@ pub fn collect_function_calls(world: &mut DatadogWorld) { "v2.UpdateCloudWorkloadSecurityAgentRule".into(), test_v2_update_cloud_workload_security_agent_rule, ); - world - .function_mappings - .insert("v2.ListPipelines".into(), test_v2_list_pipelines); - world - .function_mappings - .insert("v2.CreatePipeline".into(), test_v2_create_pipeline); - world - .function_mappings - .insert("v2.ValidatePipeline".into(), test_v2_validate_pipeline); - world - .function_mappings - .insert("v2.DeletePipeline".into(), test_v2_delete_pipeline); - world - .function_mappings - .insert("v2.GetPipeline".into(), test_v2_get_pipeline); - world - .function_mappings - .insert("v2.UpdatePipeline".into(), test_v2_update_pipeline); world.function_mappings.insert( "v2.DeleteRestrictionPolicy".into(), test_v2_delete_restriction_policy, @@ -28347,6 +28347,168 @@ fn test_v2_get_aggregated_dns(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let page_size = _parameters + .get("page[size]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let page_number = _parameters + .get("page[number]") + .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); + let mut params = datadogV2::api_observability_pipelines::ListPipelinesOptionalParams::default(); + params.page_size = page_size; + params.page_number = page_number; + let response = match block_on(api.list_pipelines_with_http_info(params)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_create_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.create_pipeline_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_validate_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.validate_pipeline_with_http_info(body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_delete_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let pipeline_id = + serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); + let response = match block_on(api.delete_pipeline_with_http_info(pipeline_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_get_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let pipeline_id = + serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); + let response = match block_on(api.get_pipeline_with_http_info(pipeline_id)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + +fn test_v2_update_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { + let api = world + .api_instances + .v2_api_observability_pipelines + .as_ref() + .expect("api instance not found"); + let pipeline_id = + serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); + let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); + let response = match block_on(api.update_pipeline_with_http_info(pipeline_id, body)) { + Ok(response) => response, + Err(error) => { + return match error { + Error::ResponseError(e) => { + world.response.code = e.status.as_u16(); + if let Some(entity) = e.entity { + world.response.object = serde_json::to_value(entity).unwrap(); + } + } + _ => panic!("error parsing response: {error}"), + }; + } + }; + world.response.object = serde_json::to_value(response.entity).unwrap(); + world.response.code = response.status.as_u16(); +} + fn test_v2_create_on_call_escalation_policy( world: &mut DatadogWorld, _parameters: &HashMap, @@ -31370,168 +31532,6 @@ fn test_v2_update_cloud_workload_security_agent_rule( world.response.code = response.status.as_u16(); } -fn test_v2_list_pipelines(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let page_size = _parameters - .get("page[size]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let page_number = _parameters - .get("page[number]") - .and_then(|param| Some(serde_json::from_value(param.clone()).unwrap())); - let mut params = datadogV2::api_observability_pipelines::ListPipelinesOptionalParams::default(); - params.page_size = page_size; - params.page_number = page_number; - let response = match block_on(api.list_pipelines_with_http_info(params)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_create_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.create_pipeline_with_http_info(body)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_validate_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.validate_pipeline_with_http_info(body)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_delete_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let pipeline_id = - serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); - let response = match block_on(api.delete_pipeline_with_http_info(pipeline_id)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_get_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let pipeline_id = - serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); - let response = match block_on(api.get_pipeline_with_http_info(pipeline_id)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - -fn test_v2_update_pipeline(world: &mut DatadogWorld, _parameters: &HashMap) { - let api = world - .api_instances - .v2_api_observability_pipelines - .as_ref() - .expect("api instance not found"); - let pipeline_id = - serde_json::from_value(_parameters.get("pipeline_id").unwrap().clone()).unwrap(); - let body = serde_json::from_value(_parameters.get("body").unwrap().clone()).unwrap(); - let response = match block_on(api.update_pipeline_with_http_info(pipeline_id, body)) { - Ok(response) => response, - Err(error) => { - return match error { - Error::ResponseError(e) => { - world.response.code = e.status.as_u16(); - if let Some(entity) = e.entity { - world.response.object = serde_json::to_value(entity).unwrap(); - } - } - _ => panic!("error parsing response: {error}"), - }; - } - }; - world.response.object = serde_json::to_value(response.entity).unwrap(); - world.response.code = response.status.as_u16(); -} - fn test_v2_delete_restriction_policy( world: &mut DatadogWorld, _parameters: &HashMap,