diff --git a/.generated-info b/.generated-info index 181c1f17f0..cc45675667 100644 --- a/.generated-info +++ b/.generated-info @@ -1,4 +1,4 @@ { - "spec_repo_commit": "bb240c6", - "generated": "2025-07-14 18:16:21.671" + "spec_repo_commit": "1837f43", + "generated": "2025-07-15 14:36:11.672" } diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 4351d94c19..dcc031e172 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -25145,6 +25145,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestination' - $ref: '#/components/schemas/ObservabilityPipelineOpenSearchDestination' - $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestination' + - $ref: '#/components/schemas/ObservabilityPipelineSocketDestination' ObservabilityPipelineConfigProcessorItem: description: A processor for the pipeline. oneOf: @@ -25164,6 +25165,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineEnrichmentTableProcessor' - $ref: '#/components/schemas/ObservabilityPipelineReduceProcessor' - $ref: '#/components/schemas/ObservabilityPipelineThrottleProcessor' + - $ref: '#/components/schemas/ObservabilityPipelineRemapVrlProcessor' ObservabilityPipelineConfigSourceItem: description: A data source for the pipeline. oneOf: @@ -25182,6 +25184,7 @@ components: - $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubSource' - $ref: '#/components/schemas/ObservabilityPipelineHttpClientSource' - $ref: '#/components/schemas/ObservabilityPipelineLogstashSource' + - $ref: '#/components/schemas/ObservabilityPipelineSocketSource' ObservabilityPipelineData: description: "Contains the pipeline\u2019s ID, type, and configuration attributes." properties: @@ -26827,6 +26830,87 @@ components: type: string x-enum-varnames: - REDUCE + ObservabilityPipelineRemapVrlProcessor: + description: The `remap_vrl` processor (also called "Custom processor") transforms + events using [Vector Remap Language (VRL)](https://vector.dev/docs/reference/vrl/) + scripts with advanced filtering capabilities. + properties: + id: + description: The unique identifier for this processor. + example: remap-vrl-processor + type: string + include: + description: A Datadog search query used to determine which logs this processor + targets. This field should always be set to `*` for the remap_vrl processor. + example: '*' + type: string + inputs: + description: A list of component IDs whose output is used as the input for + this processor. + example: + - datadog-agent-source + items: + type: string + type: array + remaps: + description: Array of VRL remap rules. + items: + $ref: '#/components/schemas/ObservabilityPipelineRemapVrlProcessorRemap' + maxItems: 15 + minItems: 1 + type: array + type: + $ref: '#/components/schemas/ObservabilityPipelineRemapVrlProcessorType' + required: + - id + - type + - include + - remaps + - inputs + type: object + ObservabilityPipelineRemapVrlProcessorRemap: + description: Defines a single VRL remap rule with its own filtering and transformation + logic. + properties: + drop_on_error: + default: false + description: Whether to drop events that caused errors during processing. + example: false + type: boolean + enabled: + default: true + description: Whether this remap rule is enabled. + example: true + type: boolean + include: + description: A Datadog search query used to filter events for this specific + remap rule. + example: service:web + type: string + name: + description: A descriptive name for this remap rule. + example: Parse JSON from message field + type: string + source: + description: The VRL script source code that defines the processing logic. + Must not exceed 10 000 characters. + example: . = parse_json!(.message) + maxLength: 10000 + type: string + required: + - include + - name + - source + type: object + ObservabilityPipelineRemapVrlProcessorType: + default: remap_vrl + description: The processor type. The value should always be `remap_vrl`. + enum: + - remap_vrl + example: remap_vrl + type: string + x-enum-varnames: + - REMAP_VRL ObservabilityPipelineRemoveFieldsProcessor: description: The `remove_fields` processor deletes specified fields from logs. properties: @@ -27465,6 +27549,278 @@ components: type: string x-enum-varnames: - SENTINEL_ONE + ObservabilityPipelineSocketDestination: + description: 'The `socket` destination sends logs over TCP or UDP to a remote + server. + + ' + properties: + encoding: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationEncoding' + framing: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFraming' + id: + description: The unique identifier for this component. + example: socket-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 + mode: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationMode' + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + description: TLS configuration. Relevant only when `mode` is `tcp`. + type: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationType' + required: + - id + - type + - inputs + - encoding + - framing + - mode + type: object + ObservabilityPipelineSocketDestinationEncoding: + description: Encoding format for log events. + enum: + - json + - raw_message + example: json + type: string + x-enum-varnames: + - JSON + - RAW_MESSAGE + ObservabilityPipelineSocketDestinationFraming: + description: Framing method configuration. + oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimited' + - $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytes' + - $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimited' + ObservabilityPipelineSocketDestinationFramingBytes: + description: Event data is not delimited at all. + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingBytesMethod' + required: + - method + type: object + ObservabilityPipelineSocketDestinationFramingBytesMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingBytesMethod` + object. + enum: + - bytes + example: bytes + type: string + x-enum-varnames: + - BYTES + ObservabilityPipelineSocketDestinationFramingCharacterDelimited: + description: Each log event is separated using the specified delimiter character. + properties: + delimiter: + description: A single ASCII character used as a delimiter. + example: '|' + maxLength: 1 + minLength: 1 + type: string + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod' + required: + - method + - delimiter + type: object + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod` + object. + enum: + - character_delimited + example: character_delimited + type: string + x-enum-varnames: + - CHARACTER_DELIMITED + ObservabilityPipelineSocketDestinationFramingNewlineDelimited: + description: Each log event is delimited by a newline character. + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod' + required: + - method + type: object + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod: + description: The definition of `ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod` + object. + enum: + - newline_delimited + example: newline_delimited + type: string + x-enum-varnames: + - NEWLINE_DELIMITED + ObservabilityPipelineSocketDestinationMode: + description: Protocol used to send logs. + enum: + - tcp + - udp + example: tcp + type: string + x-enum-varnames: + - TCP + - UDP + ObservabilityPipelineSocketDestinationType: + default: socket + description: The destination type. The value should always be `socket`. + enum: + - socket + example: socket + type: string + x-enum-varnames: + - SOCKET + ObservabilityPipelineSocketSource: + description: 'The `socket` source ingests logs over TCP or UDP. + + ' + properties: + framing: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFraming' + 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: socket-source + type: string + mode: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceMode' + tls: + $ref: '#/components/schemas/ObservabilityPipelineTls' + description: TLS configuration. Relevant only when `mode` is `tcp`. + type: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceType' + required: + - id + - type + - mode + - framing + type: object + ObservabilityPipelineSocketSourceFraming: + description: Framing method configuration for the socket source. + oneOf: + - $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimited' + - $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingBytes' + - $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimited' + - $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCounting' + - $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelf' + ObservabilityPipelineSocketSourceFramingBytes: + description: Byte frames are passed through as-is according to the underlying + I/O boundaries (for example, split between messages or stream segments). + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingBytesMethod' + required: + - method + type: object + ObservabilityPipelineSocketSourceFramingBytesMethod: + description: Byte frames are passed through as-is according to the underlying + I/O boundaries (for example, split between messages or stream segments). + enum: + - bytes + example: bytes + type: string + x-enum-varnames: + - BYTES + ObservabilityPipelineSocketSourceFramingCharacterDelimited: + description: Byte frames which are delimited by a chosen character. + properties: + delimiter: + description: A single ASCII character used to delimit events. + example: '|' + maxLength: 1 + minLength: 1 + type: string + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod' + required: + - method + - delimiter + type: object + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod: + description: Byte frames which are delimited by a chosen character. + enum: + - character_delimited + example: character_delimited + type: string + x-enum-varnames: + - CHARACTER_DELIMITED + ObservabilityPipelineSocketSourceFramingChunkedGelf: + description: Byte frames which are chunked GELF messages. + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingChunkedGelfMethod' + required: + - method + type: object + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod: + description: Byte frames which are chunked GELF messages. + enum: + - chunked_gelf + example: chunked_gelf + type: string + x-enum-varnames: + - CHUNKED_GELF + ObservabilityPipelineSocketSourceFramingNewlineDelimited: + description: Byte frames which are delimited by a newline character. + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod' + required: + - method + type: object + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod: + description: Byte frames which are delimited by a newline character. + enum: + - newline_delimited + example: newline_delimited + type: string + x-enum-varnames: + - NEWLINE_DELIMITED + ObservabilityPipelineSocketSourceFramingOctetCounting: + description: Byte frames according to the octet counting format as per RFC6587. + properties: + method: + $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFramingOctetCountingMethod' + required: + - method + type: object + ObservabilityPipelineSocketSourceFramingOctetCountingMethod: + description: Byte frames according to the octet counting format as per RFC6587. + enum: + - octet_counting + example: octet_counting + type: string + x-enum-varnames: + - OCTET_COUNTING + ObservabilityPipelineSocketSourceMode: + description: Protocol used to receive logs. + enum: + - tcp + - udp + example: tcp + type: string + x-enum-varnames: + - TCP + - UDP + ObservabilityPipelineSocketSourceType: + default: socket + description: The source type. The value should always be `socket`. + enum: + - socket + example: socket + type: string + x-enum-varnames: + - SOCKET ObservabilityPipelineSpec: description: Input schema representing an observability pipeline configuration. Used in create and validate requests. diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index bb00f446e8..0ca4b1e5f1 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -11400,6 +11400,27 @@ datadog\_api\_client.v2.model.observability\_pipeline\_reduce\_processor\_type m :members: :show-inheritance: +datadog\_api\_client.v2.model.observability\_pipeline\_remap\_vrl\_processor module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_remap\_vrl\_processor\_remap module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_remap + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_remap\_vrl\_processor\_type module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.observability\_pipeline\_remove\_fields\_processor module --------------------------------------------------------------------------------------- @@ -11701,6 +11722,181 @@ datadog\_api\_client.v2.model.observability\_pipeline\_sentinel\_one\_destinatio :members: :show-inheritance: +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_encoding module +------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_encoding + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_bytes module +------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_bytes\_method module +--------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_character\_delimited module +---------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_character\_delimited\_method module +------------------------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_newline\_delimited module +-------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_framing\_newline\_delimited\_method module +---------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_mode module +--------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_mode + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_destination\_type module +--------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_destination_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source module +---------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing module +------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_bytes module +-------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_bytes\_method module +---------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_character\_delimited module +----------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_character\_delimited\_method module +------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_chunked\_gelf module +---------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_chunked\_gelf\_method module +------------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_newline\_delimited module +--------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_newline\_delimited\_method module +----------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_octet\_counting module +------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_framing\_octet\_counting\_method module +-------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting_method + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_mode module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_mode + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.observability\_pipeline\_socket\_source\_type module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.observability_pipeline_socket_source_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.observability\_pipeline\_spec module ------------------------------------------------------------------ diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config.py b/src/datadog_api_client/v2/model/observability_pipeline_config.py index 31d48480c4..94522c97e9 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config.py @@ -64,6 +64,9 @@ from datadog_api_client.v2.model.observability_pipeline_amazon_open_search_destination import ( ObservabilityPipelineAmazonOpenSearchDestination, ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination import ( + ObservabilityPipelineSocketDestination, + ) from datadog_api_client.v2.model.observability_pipeline_filter_processor import ObservabilityPipelineFilterProcessor from datadog_api_client.v2.model.observability_pipeline_parse_json_processor import ( ObservabilityPipelineParseJSONProcessor, @@ -102,6 +105,9 @@ from datadog_api_client.v2.model.observability_pipeline_throttle_processor import ( ObservabilityPipelineThrottleProcessor, ) + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor import ( + ObservabilityPipelineRemapVrlProcessor, + ) from datadog_api_client.v2.model.observability_pipeline_kafka_source import ObservabilityPipelineKafkaSource from datadog_api_client.v2.model.observability_pipeline_datadog_agent_source import ( ObservabilityPipelineDatadogAgentSource, @@ -135,6 +141,7 @@ ObservabilityPipelineHttpClientSource, ) from datadog_api_client.v2.model.observability_pipeline_logstash_source import ObservabilityPipelineLogstashSource + from datadog_api_client.v2.model.observability_pipeline_socket_source import ObservabilityPipelineSocketSource class ObservabilityPipelineConfig(ModelNormal): @@ -182,6 +189,7 @@ def __init__( ObservabilityPipelineSentinelOneDestination, ObservabilityPipelineOpenSearchDestination, ObservabilityPipelineAmazonOpenSearchDestination, + ObservabilityPipelineSocketDestination, ] ], sources: List[ @@ -202,6 +210,7 @@ def __init__( ObservabilityPipelineGooglePubSubSource, ObservabilityPipelineHttpClientSource, ObservabilityPipelineLogstashSource, + ObservabilityPipelineSocketSource, ] ], processors: Union[ @@ -224,6 +233,7 @@ def __init__( ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor, + ObservabilityPipelineRemapVrlProcessor, ] ], UnsetType, diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py b/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py index 553e9fdc6c..f03f9b6eae 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config_destination_item.py @@ -108,6 +108,12 @@ def __init__(self, **kwargs): :param log_type: The log type metadata associated with the Chronicle destination. :type log_type: str, optional + + :param framing: Framing method configuration. + :type framing: ObservabilityPipelineSocketDestinationFraming + + :param mode: Protocol used to send logs. + :type mode: ObservabilityPipelineSocketDestinationMode """ super().__init__(kwargs) @@ -161,6 +167,9 @@ def _composed_schemas(_): from datadog_api_client.v2.model.observability_pipeline_amazon_open_search_destination import ( ObservabilityPipelineAmazonOpenSearchDestination, ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination import ( + ObservabilityPipelineSocketDestination, + ) return { "oneOf": [ @@ -179,5 +188,6 @@ def _composed_schemas(_): ObservabilityPipelineSentinelOneDestination, ObservabilityPipelineOpenSearchDestination, ObservabilityPipelineAmazonOpenSearchDestination, + ObservabilityPipelineSocketDestination, ], } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config_processor_item.py b/src/datadog_api_client/v2/model/observability_pipeline_config_processor_item.py index a761a8beb8..ab3350da3c 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config_processor_item.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config_processor_item.py @@ -102,6 +102,9 @@ def __init__(self, **kwargs): :param window: The time window in seconds over which the threshold applies. :type window: float + + :param remaps: Array of VRL remap rules. + :type remaps: [ObservabilityPipelineRemapVrlProcessorRemap] """ super().__init__(kwargs) @@ -162,6 +165,9 @@ def _composed_schemas(_): from datadog_api_client.v2.model.observability_pipeline_throttle_processor import ( ObservabilityPipelineThrottleProcessor, ) + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor import ( + ObservabilityPipelineRemapVrlProcessor, + ) return { "oneOf": [ @@ -181,5 +187,6 @@ def _composed_schemas(_): ObservabilityPipelineEnrichmentTableProcessor, ObservabilityPipelineReduceProcessor, ObservabilityPipelineThrottleProcessor, + ObservabilityPipelineRemapVrlProcessor, ], } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_config_source_item.py b/src/datadog_api_client/v2/model/observability_pipeline_config_source_item.py index 396b6f6a4d..b7192c22e7 100644 --- a/src/datadog_api_client/v2/model/observability_pipeline_config_source_item.py +++ b/src/datadog_api_client/v2/model/observability_pipeline_config_source_item.py @@ -64,6 +64,9 @@ def __init__(self, **kwargs): :param scrape_timeout_secs: The timeout (in seconds) for each scrape request. :type scrape_timeout_secs: int, optional + + :param framing: Framing method configuration for the socket source. + :type framing: ObservabilityPipelineSocketSourceFraming """ super().__init__(kwargs) @@ -115,6 +118,7 @@ def _composed_schemas(_): from datadog_api_client.v2.model.observability_pipeline_logstash_source import ( ObservabilityPipelineLogstashSource, ) + from datadog_api_client.v2.model.observability_pipeline_socket_source import ObservabilityPipelineSocketSource return { "oneOf": [ @@ -133,5 +137,6 @@ def _composed_schemas(_): ObservabilityPipelineGooglePubSubSource, ObservabilityPipelineHttpClientSource, ObservabilityPipelineLogstashSource, + ObservabilityPipelineSocketSource, ], } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor.py b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor.py new file mode 100644 index 0000000000..8336d57463 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor.py @@ -0,0 +1,89 @@ +# 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. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_remap import ( + ObservabilityPipelineRemapVrlProcessorRemap, + ) + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_type import ( + ObservabilityPipelineRemapVrlProcessorType, + ) + + +class ObservabilityPipelineRemapVrlProcessor(ModelNormal): + validations = { + "remaps": { + "max_items": 15, + "min_items": 1, + }, + } + + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_remap import ( + ObservabilityPipelineRemapVrlProcessorRemap, + ) + from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_type import ( + ObservabilityPipelineRemapVrlProcessorType, + ) + + return { + "id": (str,), + "include": (str,), + "inputs": ([str],), + "remaps": ([ObservabilityPipelineRemapVrlProcessorRemap],), + "type": (ObservabilityPipelineRemapVrlProcessorType,), + } + + attribute_map = { + "id": "id", + "include": "include", + "inputs": "inputs", + "remaps": "remaps", + "type": "type", + } + + def __init__( + self_, + id: str, + include: str, + inputs: List[str], + remaps: List[ObservabilityPipelineRemapVrlProcessorRemap], + type: ObservabilityPipelineRemapVrlProcessorType, + **kwargs, + ): + """ + The ``remap_vrl`` processor (also called "Custom processor") transforms events using `Vector Remap Language (VRL) `_ scripts with advanced filtering capabilities. + + :param id: The unique identifier for this processor. + :type id: str + + :param include: A Datadog search query used to determine which logs this processor targets. This field should always be set to ``*`` for the remap_vrl processor. + :type include: str + + :param inputs: A list of component IDs whose output is used as the input for this processor. + :type inputs: [str] + + :param remaps: Array of VRL remap rules. + :type remaps: [ObservabilityPipelineRemapVrlProcessorRemap] + + :param type: The processor type. The value should always be ``remap_vrl``. + :type type: ObservabilityPipelineRemapVrlProcessorType + """ + super().__init__(kwargs) + + self_.id = id + self_.include = include + self_.inputs = inputs + self_.remaps = remaps + self_.type = type diff --git a/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_remap.py b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_remap.py new file mode 100644 index 0000000000..cebaa69ddc --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_remap.py @@ -0,0 +1,76 @@ +# 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. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class ObservabilityPipelineRemapVrlProcessorRemap(ModelNormal): + validations = { + "source": { + "max_length": 10000, + }, + } + + @cached_property + def openapi_types(_): + return { + "drop_on_error": (bool,), + "enabled": (bool,), + "include": (str,), + "name": (str,), + "source": (str,), + } + + attribute_map = { + "drop_on_error": "drop_on_error", + "enabled": "enabled", + "include": "include", + "name": "name", + "source": "source", + } + + def __init__( + self_, + include: str, + name: str, + source: str, + drop_on_error: Union[bool, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + **kwargs, + ): + """ + Defines a single VRL remap rule with its own filtering and transformation logic. + + :param drop_on_error: Whether to drop events that caused errors during processing. + :type drop_on_error: bool, optional + + :param enabled: Whether this remap rule is enabled. + :type enabled: bool, optional + + :param include: A Datadog search query used to filter events for this specific remap rule. + :type include: str + + :param name: A descriptive name for this remap rule. + :type name: str + + :param source: The VRL script source code that defines the processing logic. Must not exceed 10 000 characters. + :type source: str + """ + if drop_on_error is not unset: + kwargs["drop_on_error"] = drop_on_error + if enabled is not unset: + kwargs["enabled"] = enabled + super().__init__(kwargs) + + self_.include = include + self_.name = name + self_.source = source diff --git a/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_type.py b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_type.py new file mode 100644 index 0000000000..0cad07538d --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_remap_vrl_processor_type.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineRemapVrlProcessorType(ModelSimple): + """ + The processor type. The value should always be `remap_vrl`. + + :param value: If omitted defaults to "remap_vrl". Must be one of ["remap_vrl"]. + :type value: str + """ + + allowed_values = { + "remap_vrl", + } + REMAP_VRL: ClassVar["ObservabilityPipelineRemapVrlProcessorType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineRemapVrlProcessorType.REMAP_VRL = ObservabilityPipelineRemapVrlProcessorType("remap_vrl") diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination.py new file mode 100644 index 0000000000..8ff0d447f2 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination.py @@ -0,0 +1,127 @@ +# 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. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_destination_encoding import ( + ObservabilityPipelineSocketDestinationEncoding, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing import ( + ObservabilityPipelineSocketDestinationFraming, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_mode import ( + ObservabilityPipelineSocketDestinationMode, + ) + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_socket_destination_type import ( + ObservabilityPipelineSocketDestinationType, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes import ( + ObservabilityPipelineSocketDestinationFramingBytes, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimited, + ) + + +class ObservabilityPipelineSocketDestination(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_destination_encoding import ( + ObservabilityPipelineSocketDestinationEncoding, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing import ( + ObservabilityPipelineSocketDestinationFraming, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_mode import ( + ObservabilityPipelineSocketDestinationMode, + ) + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_socket_destination_type import ( + ObservabilityPipelineSocketDestinationType, + ) + + return { + "encoding": (ObservabilityPipelineSocketDestinationEncoding,), + "framing": (ObservabilityPipelineSocketDestinationFraming,), + "id": (str,), + "inputs": ([str],), + "mode": (ObservabilityPipelineSocketDestinationMode,), + "tls": (ObservabilityPipelineTls,), + "type": (ObservabilityPipelineSocketDestinationType,), + } + + attribute_map = { + "encoding": "encoding", + "framing": "framing", + "id": "id", + "inputs": "inputs", + "mode": "mode", + "tls": "tls", + "type": "type", + } + + def __init__( + self_, + encoding: ObservabilityPipelineSocketDestinationEncoding, + framing: Union[ + ObservabilityPipelineSocketDestinationFraming, + ObservabilityPipelineSocketDestinationFramingNewlineDelimited, + ObservabilityPipelineSocketDestinationFramingBytes, + ObservabilityPipelineSocketDestinationFramingCharacterDelimited, + ], + id: str, + inputs: List[str], + mode: ObservabilityPipelineSocketDestinationMode, + type: ObservabilityPipelineSocketDestinationType, + tls: Union[ObservabilityPipelineTls, UnsetType] = unset, + **kwargs, + ): + """ + The ``socket`` destination sends logs over TCP or UDP to a remote server. + + :param encoding: Encoding format for log events. + :type encoding: ObservabilityPipelineSocketDestinationEncoding + + :param framing: Framing method configuration. + :type framing: ObservabilityPipelineSocketDestinationFraming + + :param id: The unique identifier for this component. + :type id: str + + :param inputs: A list of component IDs whose output is used as the ``input`` for this component. + :type inputs: [str] + + :param mode: Protocol used to send logs. + :type mode: ObservabilityPipelineSocketDestinationMode + + :param tls: Configuration for enabling TLS encryption between the pipeline component and external services. + :type tls: ObservabilityPipelineTls, optional + + :param type: The destination type. The value should always be ``socket``. + :type type: ObservabilityPipelineSocketDestinationType + """ + if tls is not unset: + kwargs["tls"] = tls + super().__init__(kwargs) + + self_.encoding = encoding + self_.framing = framing + self_.id = id + self_.inputs = inputs + self_.mode = mode + self_.type = type diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_encoding.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_encoding.py new file mode 100644 index 0000000000..e4b5be5a0a --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_encoding.py @@ -0,0 +1,40 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationEncoding(ModelSimple): + """ + Encoding format for log events. + + :param value: Must be one of ["json", "raw_message"]. + :type value: str + """ + + allowed_values = { + "json", + "raw_message", + } + JSON: ClassVar["ObservabilityPipelineSocketDestinationEncoding"] + RAW_MESSAGE: ClassVar["ObservabilityPipelineSocketDestinationEncoding"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationEncoding.JSON = ObservabilityPipelineSocketDestinationEncoding("json") +ObservabilityPipelineSocketDestinationEncoding.RAW_MESSAGE = ObservabilityPipelineSocketDestinationEncoding( + "raw_message" +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing.py new file mode 100644 index 0000000000..858e087908 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing.py @@ -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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class ObservabilityPipelineSocketDestinationFraming(ModelComposed): + def __init__(self, **kwargs): + """ + Framing method configuration. + + :param method: The definition of `ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod` object. + :type method: ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod + + :param delimiter: A single ASCII character used as a delimiter. + :type delimiter: str + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes import ( + ObservabilityPipelineSocketDestinationFramingBytes, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimited, + ) + + return { + "oneOf": [ + ObservabilityPipelineSocketDestinationFramingNewlineDelimited, + ObservabilityPipelineSocketDestinationFramingBytes, + ObservabilityPipelineSocketDestinationFramingCharacterDelimited, + ], + } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes.py new file mode 100644 index 0000000000..4770570d3e --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes_method import ( + ObservabilityPipelineSocketDestinationFramingBytesMethod, + ) + + +class ObservabilityPipelineSocketDestinationFramingBytes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes_method import ( + ObservabilityPipelineSocketDestinationFramingBytesMethod, + ) + + return { + "method": (ObservabilityPipelineSocketDestinationFramingBytesMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketDestinationFramingBytesMethod, **kwargs): + """ + Event data is not delimited at all. + + :param method: The definition of ``ObservabilityPipelineSocketDestinationFramingBytesMethod`` object. + :type method: ObservabilityPipelineSocketDestinationFramingBytesMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes_method.py new file mode 100644 index 0000000000..d090c1b07e --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_bytes_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationFramingBytesMethod(ModelSimple): + """ + The definition of `ObservabilityPipelineSocketDestinationFramingBytesMethod` object. + + :param value: If omitted defaults to "bytes". Must be one of ["bytes"]. + :type value: str + """ + + allowed_values = { + "bytes", + } + BYTES: ClassVar["ObservabilityPipelineSocketDestinationFramingBytesMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationFramingBytesMethod.BYTES = ( + ObservabilityPipelineSocketDestinationFramingBytesMethod("bytes") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited.py new file mode 100644 index 0000000000..f5da5a91e5 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited.py @@ -0,0 +1,59 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod, + ) + + +class ObservabilityPipelineSocketDestinationFramingCharacterDelimited(ModelNormal): + validations = { + "delimiter": { + "max_length": 1, + "min_length": 1, + }, + } + + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod, + ) + + return { + "delimiter": (str,), + "method": (ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod,), + } + + attribute_map = { + "delimiter": "delimiter", + "method": "method", + } + + def __init__( + self_, delimiter: str, method: ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod, **kwargs + ): + """ + Each log event is separated using the specified delimiter character. + + :param delimiter: A single ASCII character used as a delimiter. + :type delimiter: str + + :param method: The definition of ``ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod`` object. + :type method: ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod + """ + super().__init__(kwargs) + + self_.delimiter = delimiter + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited_method.py new file mode 100644 index 0000000000..1621a9a152 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_character_delimited_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod(ModelSimple): + """ + The definition of `ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod` object. + + :param value: If omitted defaults to "character_delimited". Must be one of ["character_delimited"]. + :type value: str + """ + + allowed_values = { + "character_delimited", + } + CHARACTER_DELIMITED: ClassVar["ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod.CHARACTER_DELIMITED = ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod("character_delimited") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited.py new file mode 100644 index 0000000000..a4c304dc50 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod, + ) + + +class ObservabilityPipelineSocketDestinationFramingNewlineDelimited(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod, + ) + + return { + "method": (ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod, **kwargs): + """ + Each log event is delimited by a newline character. + + :param method: The definition of ``ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod`` object. + :type method: ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited_method.py new file mode 100644 index 0000000000..a5e4f0695e --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_framing_newline_delimited_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod(ModelSimple): + """ + The definition of `ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod` object. + + :param value: If omitted defaults to "newline_delimited". Must be one of ["newline_delimited"]. + :type value: str + """ + + allowed_values = { + "newline_delimited", + } + NEWLINE_DELIMITED: ClassVar["ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod.NEWLINE_DELIMITED = ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod("newline_delimited") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_mode.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_mode.py new file mode 100644 index 0000000000..ce8b74cb0f --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_mode.py @@ -0,0 +1,38 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationMode(ModelSimple): + """ + Protocol used to send logs. + + :param value: Must be one of ["tcp", "udp"]. + :type value: str + """ + + allowed_values = { + "tcp", + "udp", + } + TCP: ClassVar["ObservabilityPipelineSocketDestinationMode"] + UDP: ClassVar["ObservabilityPipelineSocketDestinationMode"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationMode.TCP = ObservabilityPipelineSocketDestinationMode("tcp") +ObservabilityPipelineSocketDestinationMode.UDP = ObservabilityPipelineSocketDestinationMode("udp") diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_type.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_type.py new file mode 100644 index 0000000000..2465957e69 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_destination_type.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketDestinationType(ModelSimple): + """ + The destination type. The value should always be `socket`. + + :param value: If omitted defaults to "socket". Must be one of ["socket"]. + :type value: str + """ + + allowed_values = { + "socket", + } + SOCKET: ClassVar["ObservabilityPipelineSocketDestinationType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketDestinationType.SOCKET = ObservabilityPipelineSocketDestinationType("socket") diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source.py new file mode 100644 index 0000000000..23d1794735 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source.py @@ -0,0 +1,115 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing import ( + ObservabilityPipelineSocketSourceFraming, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_mode import ( + ObservabilityPipelineSocketSourceMode, + ) + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_socket_source_type import ( + ObservabilityPipelineSocketSourceType, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes import ( + ObservabilityPipelineSocketSourceFramingBytes, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting import ( + ObservabilityPipelineSocketSourceFramingOctetCounting, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf import ( + ObservabilityPipelineSocketSourceFramingChunkedGelf, + ) + + +class ObservabilityPipelineSocketSource(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing import ( + ObservabilityPipelineSocketSourceFraming, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_mode import ( + ObservabilityPipelineSocketSourceMode, + ) + from datadog_api_client.v2.model.observability_pipeline_tls import ObservabilityPipelineTls + from datadog_api_client.v2.model.observability_pipeline_socket_source_type import ( + ObservabilityPipelineSocketSourceType, + ) + + return { + "framing": (ObservabilityPipelineSocketSourceFraming,), + "id": (str,), + "mode": (ObservabilityPipelineSocketSourceMode,), + "tls": (ObservabilityPipelineTls,), + "type": (ObservabilityPipelineSocketSourceType,), + } + + attribute_map = { + "framing": "framing", + "id": "id", + "mode": "mode", + "tls": "tls", + "type": "type", + } + + def __init__( + self_, + framing: Union[ + ObservabilityPipelineSocketSourceFraming, + ObservabilityPipelineSocketSourceFramingNewlineDelimited, + ObservabilityPipelineSocketSourceFramingBytes, + ObservabilityPipelineSocketSourceFramingCharacterDelimited, + ObservabilityPipelineSocketSourceFramingOctetCounting, + ObservabilityPipelineSocketSourceFramingChunkedGelf, + ], + id: str, + mode: ObservabilityPipelineSocketSourceMode, + type: ObservabilityPipelineSocketSourceType, + tls: Union[ObservabilityPipelineTls, UnsetType] = unset, + **kwargs, + ): + """ + The ``socket`` source ingests logs over TCP or UDP. + + :param framing: Framing method configuration for the socket source. + :type framing: ObservabilityPipelineSocketSourceFraming + + :param id: The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components). + :type id: str + + :param mode: Protocol used to receive logs. + :type mode: ObservabilityPipelineSocketSourceMode + + :param tls: Configuration for enabling TLS encryption between the pipeline component and external services. + :type tls: ObservabilityPipelineTls, optional + + :param type: The source type. The value should always be ``socket``. + :type type: ObservabilityPipelineSocketSourceType + """ + if tls is not unset: + kwargs["tls"] = tls + super().__init__(kwargs) + + self_.framing = framing + self_.id = id + self_.mode = mode + self_.type = type diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing.py new file mode 100644 index 0000000000..59be49ed9b --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing.py @@ -0,0 +1,59 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelComposed, + cached_property, +) + + +class ObservabilityPipelineSocketSourceFraming(ModelComposed): + def __init__(self, **kwargs): + """ + Framing method configuration for the socket source. + + :param method: Byte frames which are delimited by a newline character. + :type method: ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod + + :param delimiter: A single ASCII character used to delimit events. + :type delimiter: str + """ + super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes import ( + ObservabilityPipelineSocketSourceFramingBytes, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimited, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting import ( + ObservabilityPipelineSocketSourceFramingOctetCounting, + ) + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf import ( + ObservabilityPipelineSocketSourceFramingChunkedGelf, + ) + + return { + "oneOf": [ + ObservabilityPipelineSocketSourceFramingNewlineDelimited, + ObservabilityPipelineSocketSourceFramingBytes, + ObservabilityPipelineSocketSourceFramingCharacterDelimited, + ObservabilityPipelineSocketSourceFramingOctetCounting, + ObservabilityPipelineSocketSourceFramingChunkedGelf, + ], + } diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes.py new file mode 100644 index 0000000000..51ad895035 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes_method import ( + ObservabilityPipelineSocketSourceFramingBytesMethod, + ) + + +class ObservabilityPipelineSocketSourceFramingBytes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes_method import ( + ObservabilityPipelineSocketSourceFramingBytesMethod, + ) + + return { + "method": (ObservabilityPipelineSocketSourceFramingBytesMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketSourceFramingBytesMethod, **kwargs): + """ + Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). + + :param method: Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). + :type method: ObservabilityPipelineSocketSourceFramingBytesMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes_method.py new file mode 100644 index 0000000000..8dc2b09207 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_bytes_method.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceFramingBytesMethod(ModelSimple): + """ + Byte frames are passed through as-is according to the underlying I/O boundaries (for example, split between messages or stream segments). + + :param value: If omitted defaults to "bytes". Must be one of ["bytes"]. + :type value: str + """ + + allowed_values = { + "bytes", + } + BYTES: ClassVar["ObservabilityPipelineSocketSourceFramingBytesMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceFramingBytesMethod.BYTES = ObservabilityPipelineSocketSourceFramingBytesMethod("bytes") diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited.py new file mode 100644 index 0000000000..eca14de5d5 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited.py @@ -0,0 +1,59 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited_method import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod, + ) + + +class ObservabilityPipelineSocketSourceFramingCharacterDelimited(ModelNormal): + validations = { + "delimiter": { + "max_length": 1, + "min_length": 1, + }, + } + + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited_method import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod, + ) + + return { + "delimiter": (str,), + "method": (ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod,), + } + + attribute_map = { + "delimiter": "delimiter", + "method": "method", + } + + def __init__( + self_, delimiter: str, method: ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod, **kwargs + ): + """ + Byte frames which are delimited by a chosen character. + + :param delimiter: A single ASCII character used to delimit events. + :type delimiter: str + + :param method: Byte frames which are delimited by a chosen character. + :type method: ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod + """ + super().__init__(kwargs) + + self_.delimiter = delimiter + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited_method.py new file mode 100644 index 0000000000..b2d421e9e1 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_character_delimited_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod(ModelSimple): + """ + Byte frames which are delimited by a chosen character. + + :param value: If omitted defaults to "character_delimited". Must be one of ["character_delimited"]. + :type value: str + """ + + allowed_values = { + "character_delimited", + } + CHARACTER_DELIMITED: ClassVar["ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod.CHARACTER_DELIMITED = ( + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod("character_delimited") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf.py new file mode 100644 index 0000000000..c48ce7955f --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf_method import ( + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod, + ) + + +class ObservabilityPipelineSocketSourceFramingChunkedGelf(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf_method import ( + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod, + ) + + return { + "method": (ObservabilityPipelineSocketSourceFramingChunkedGelfMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketSourceFramingChunkedGelfMethod, **kwargs): + """ + Byte frames which are chunked GELF messages. + + :param method: Byte frames which are chunked GELF messages. + :type method: ObservabilityPipelineSocketSourceFramingChunkedGelfMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf_method.py new file mode 100644 index 0000000000..7900ae5f96 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_chunked_gelf_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceFramingChunkedGelfMethod(ModelSimple): + """ + Byte frames which are chunked GELF messages. + + :param value: If omitted defaults to "chunked_gelf". Must be one of ["chunked_gelf"]. + :type value: str + """ + + allowed_values = { + "chunked_gelf", + } + CHUNKED_GELF: ClassVar["ObservabilityPipelineSocketSourceFramingChunkedGelfMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceFramingChunkedGelfMethod.CHUNKED_GELF = ( + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod("chunked_gelf") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited.py new file mode 100644 index 0000000000..99cb978d89 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited_method import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod, + ) + + +class ObservabilityPipelineSocketSourceFramingNewlineDelimited(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited_method import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod, + ) + + return { + "method": (ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod, **kwargs): + """ + Byte frames which are delimited by a newline character. + + :param method: Byte frames which are delimited by a newline character. + :type method: ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited_method.py new file mode 100644 index 0000000000..9da6d27412 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_newline_delimited_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod(ModelSimple): + """ + Byte frames which are delimited by a newline character. + + :param value: If omitted defaults to "newline_delimited". Must be one of ["newline_delimited"]. + :type value: str + """ + + allowed_values = { + "newline_delimited", + } + NEWLINE_DELIMITED: ClassVar["ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod.NEWLINE_DELIMITED = ( + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod("newline_delimited") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting.py new file mode 100644 index 0000000000..d99c48fe36 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting.py @@ -0,0 +1,44 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting_method import ( + ObservabilityPipelineSocketSourceFramingOctetCountingMethod, + ) + + +class ObservabilityPipelineSocketSourceFramingOctetCounting(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting_method import ( + ObservabilityPipelineSocketSourceFramingOctetCountingMethod, + ) + + return { + "method": (ObservabilityPipelineSocketSourceFramingOctetCountingMethod,), + } + + attribute_map = { + "method": "method", + } + + def __init__(self_, method: ObservabilityPipelineSocketSourceFramingOctetCountingMethod, **kwargs): + """ + Byte frames according to the octet counting format as per RFC6587. + + :param method: Byte frames according to the octet counting format as per RFC6587. + :type method: ObservabilityPipelineSocketSourceFramingOctetCountingMethod + """ + super().__init__(kwargs) + + self_.method = method diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting_method.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting_method.py new file mode 100644 index 0000000000..bded11633d --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_framing_octet_counting_method.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceFramingOctetCountingMethod(ModelSimple): + """ + Byte frames according to the octet counting format as per RFC6587. + + :param value: If omitted defaults to "octet_counting". Must be one of ["octet_counting"]. + :type value: str + """ + + allowed_values = { + "octet_counting", + } + OCTET_COUNTING: ClassVar["ObservabilityPipelineSocketSourceFramingOctetCountingMethod"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceFramingOctetCountingMethod.OCTET_COUNTING = ( + ObservabilityPipelineSocketSourceFramingOctetCountingMethod("octet_counting") +) diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_mode.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_mode.py new file mode 100644 index 0000000000..1fa75b798f --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_mode.py @@ -0,0 +1,38 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceMode(ModelSimple): + """ + Protocol used to receive logs. + + :param value: Must be one of ["tcp", "udp"]. + :type value: str + """ + + allowed_values = { + "tcp", + "udp", + } + TCP: ClassVar["ObservabilityPipelineSocketSourceMode"] + UDP: ClassVar["ObservabilityPipelineSocketSourceMode"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceMode.TCP = ObservabilityPipelineSocketSourceMode("tcp") +ObservabilityPipelineSocketSourceMode.UDP = ObservabilityPipelineSocketSourceMode("udp") diff --git a/src/datadog_api_client/v2/model/observability_pipeline_socket_source_type.py b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_type.py new file mode 100644 index 0000000000..6046f3d1e6 --- /dev/null +++ b/src/datadog_api_client/v2/model/observability_pipeline_socket_source_type.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class ObservabilityPipelineSocketSourceType(ModelSimple): + """ + The source type. The value should always be `socket`. + + :param value: If omitted defaults to "socket". Must be one of ["socket"]. + :type value: str + """ + + allowed_values = { + "socket", + } + SOCKET: ClassVar["ObservabilityPipelineSocketSourceType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +ObservabilityPipelineSocketSourceType.SOCKET = ObservabilityPipelineSocketSourceType("socket") diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 4393a7caee..abaafa5f0e 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -2248,6 +2248,15 @@ from datadog_api_client.v2.model.observability_pipeline_reduce_processor_type import ( ObservabilityPipelineReduceProcessorType, ) +from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor import ( + ObservabilityPipelineRemapVrlProcessor, +) +from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_remap import ( + ObservabilityPipelineRemapVrlProcessorRemap, +) +from datadog_api_client.v2.model.observability_pipeline_remap_vrl_processor_type import ( + ObservabilityPipelineRemapVrlProcessorType, +) from datadog_api_client.v2.model.observability_pipeline_remove_fields_processor import ( ObservabilityPipelineRemoveFieldsProcessor, ) @@ -2373,6 +2382,73 @@ from datadog_api_client.v2.model.observability_pipeline_sentinel_one_destination_type import ( ObservabilityPipelineSentinelOneDestinationType, ) +from datadog_api_client.v2.model.observability_pipeline_socket_destination import ObservabilityPipelineSocketDestination +from datadog_api_client.v2.model.observability_pipeline_socket_destination_encoding import ( + ObservabilityPipelineSocketDestinationEncoding, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing import ( + ObservabilityPipelineSocketDestinationFraming, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes import ( + ObservabilityPipelineSocketDestinationFramingBytes, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_bytes_method import ( + ObservabilityPipelineSocketDestinationFramingBytesMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimited, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_character_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimited, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_framing_newline_delimited_method import ( + ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_mode import ( + ObservabilityPipelineSocketDestinationMode, +) +from datadog_api_client.v2.model.observability_pipeline_socket_destination_type import ( + ObservabilityPipelineSocketDestinationType, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source import ObservabilityPipelineSocketSource +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing import ( + ObservabilityPipelineSocketSourceFraming, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes import ( + ObservabilityPipelineSocketSourceFramingBytes, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_bytes_method import ( + ObservabilityPipelineSocketSourceFramingBytesMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimited, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_character_delimited_method import ( + ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf import ( + ObservabilityPipelineSocketSourceFramingChunkedGelf, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_chunked_gelf_method import ( + ObservabilityPipelineSocketSourceFramingChunkedGelfMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimited, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_newline_delimited_method import ( + ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting import ( + ObservabilityPipelineSocketSourceFramingOctetCounting, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_framing_octet_counting_method import ( + ObservabilityPipelineSocketSourceFramingOctetCountingMethod, +) +from datadog_api_client.v2.model.observability_pipeline_socket_source_mode import ObservabilityPipelineSocketSourceMode +from datadog_api_client.v2.model.observability_pipeline_socket_source_type import ObservabilityPipelineSocketSourceType from datadog_api_client.v2.model.observability_pipeline_spec import ObservabilityPipelineSpec from datadog_api_client.v2.model.observability_pipeline_spec_data import ObservabilityPipelineSpecData from datadog_api_client.v2.model.observability_pipeline_splunk_hec_destination import ( @@ -5215,6 +5291,9 @@ "ObservabilityPipelineReduceProcessorMergeStrategy", "ObservabilityPipelineReduceProcessorMergeStrategyStrategy", "ObservabilityPipelineReduceProcessorType", + "ObservabilityPipelineRemapVrlProcessor", + "ObservabilityPipelineRemapVrlProcessorRemap", + "ObservabilityPipelineRemapVrlProcessorType", "ObservabilityPipelineRemoveFieldsProcessor", "ObservabilityPipelineRemoveFieldsProcessorType", "ObservabilityPipelineRenameFieldsProcessor", @@ -5258,6 +5337,31 @@ "ObservabilityPipelineSentinelOneDestination", "ObservabilityPipelineSentinelOneDestinationRegion", "ObservabilityPipelineSentinelOneDestinationType", + "ObservabilityPipelineSocketDestination", + "ObservabilityPipelineSocketDestinationEncoding", + "ObservabilityPipelineSocketDestinationFraming", + "ObservabilityPipelineSocketDestinationFramingBytes", + "ObservabilityPipelineSocketDestinationFramingBytesMethod", + "ObservabilityPipelineSocketDestinationFramingCharacterDelimited", + "ObservabilityPipelineSocketDestinationFramingCharacterDelimitedMethod", + "ObservabilityPipelineSocketDestinationFramingNewlineDelimited", + "ObservabilityPipelineSocketDestinationFramingNewlineDelimitedMethod", + "ObservabilityPipelineSocketDestinationMode", + "ObservabilityPipelineSocketDestinationType", + "ObservabilityPipelineSocketSource", + "ObservabilityPipelineSocketSourceFraming", + "ObservabilityPipelineSocketSourceFramingBytes", + "ObservabilityPipelineSocketSourceFramingBytesMethod", + "ObservabilityPipelineSocketSourceFramingCharacterDelimited", + "ObservabilityPipelineSocketSourceFramingCharacterDelimitedMethod", + "ObservabilityPipelineSocketSourceFramingChunkedGelf", + "ObservabilityPipelineSocketSourceFramingChunkedGelfMethod", + "ObservabilityPipelineSocketSourceFramingNewlineDelimited", + "ObservabilityPipelineSocketSourceFramingNewlineDelimitedMethod", + "ObservabilityPipelineSocketSourceFramingOctetCounting", + "ObservabilityPipelineSocketSourceFramingOctetCountingMethod", + "ObservabilityPipelineSocketSourceMode", + "ObservabilityPipelineSocketSourceType", "ObservabilityPipelineSpec", "ObservabilityPipelineSpecData", "ObservabilityPipelineSplunkHecDestination",