diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 5da2e75e8057..1c4147ddb7e2 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -6932,6 +6932,11 @@ components: type: string buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' + connection_string_key: + description: Name of the environment variable or secret that holds the Azure + Storage connection string. + example: AZURE_STORAGE_CONNECTION_STRING + type: string container_name: description: The name of the Azure Blob Storage container to store logs in. @@ -37731,6 +37736,16 @@ components: description: Azure AD client ID used for authentication. example: a1b2c3d4-5678-90ab-cdef-1234567890ab type: string + client_secret_key: + description: Name of the environment variable or secret that holds the Azure + AD client secret. + example: AZURE_CLIENT_SECRET + type: string + dce_uri_key: + description: Name of the environment variable or secret that holds the Data + Collection Endpoint (DCE) URI. + example: DCE_URI + type: string dcr_immutable_id: description: The immutable ID of the Data Collection Rule (DCR). example: dcr-uuid-1234 @@ -39662,6 +39677,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the Firehose + delivery stream address. + example: FIREHOSE_ADDRESS + type: string auth: $ref: '#/components/schemas/ObservabilityPipelineAwsAuth' id: @@ -39874,6 +39894,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineTls' type: $ref: '#/components/schemas/ObservabilityPipelineAmazonS3SourceType' + url_key: + description: Name of the environment variable or secret that holds the S3 + bucket URL. + example: S3_BUCKET_URL + type: string required: - id - type @@ -40003,6 +40028,11 @@ components: **Supported pipeline types:** logs' properties: + endpoint_url_key: + description: Name of the environment variable or secret that holds the CloudPrem + endpoint URL. + example: CLOUDPREM_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: cloud-prem-destination @@ -40273,6 +40303,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression' encoding: $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the CrowdStrike + endpoint URL. + example: CROWDSTRIKE_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: crowdstrike-ngsiem-destination @@ -40287,6 +40322,11 @@ components: type: array tls: $ref: '#/components/schemas/ObservabilityPipelineTls' + token_key: + description: Name of the environment variable or secret that holds the CrowdStrike + API token. + example: CROWDSTRIKE_TOKEN + type: string type: $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType' required: @@ -40789,6 +40829,8 @@ components: properties: api_version: $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationApiVersion' + auth: + $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth' buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' bulk_index: @@ -40797,6 +40839,11 @@ components: type: string data_stream: $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationDataStream' + endpoint_url_key: + description: Name of the environment variable or secret that holds the Elasticsearch + endpoint URL. + example: ELASTICSEARCH_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: elasticsearch-destination @@ -40832,6 +40879,27 @@ components: - V6 - V7 - V8 + ObservabilityPipelineElasticsearchDestinationAuth: + description: 'Authentication settings for the Elasticsearch destination. + + When `strategy` is `basic`, use `username_key` and `password_key` to reference + credentials stored in environment variables or secrets.' + properties: + password_key: + description: Name of the environment variable or secret that holds the Elasticsearch + password (used when `strategy` is `basic`). + example: ELASTICSEARCH_PASSWORD + type: string + strategy: + $ref: '#/components/schemas/ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy' + username_key: + description: Name of the environment variable or secret that holds the Elasticsearch + username (used when `strategy` is `basic`). + example: ELASTICSEARCH_USERNAME + type: string + required: + - strategy + type: object ObservabilityPipelineElasticsearchDestinationDataStream: description: Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. @@ -41043,6 +41111,11 @@ components: ObservabilityPipelineEnrichmentTableReferenceTable: description: Uses a Datadog reference table to enrich logs. properties: + app_key_key: + description: Name of the environment variable or secret that holds the Datadog + application key used to access the reference table. + example: DD_APP_KEY + type: string columns: description: List of column names to include from the reference table. If not provided, all columns are included. @@ -41129,6 +41202,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the Fluent Bit receiver. + example: FLUENT_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -41160,6 +41238,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the Fluent receiver. + example: FLUENT_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -41186,10 +41269,11 @@ components: x-enum-varnames: - FLUENTD ObservabilityPipelineGcpAuth: - description: GCP credentials used to authenticate with Google Cloud Storage. + description: Google Cloud credentials used to authenticate with Google Cloud + Storage. properties: credentials_file: - description: Path to the GCP service account key file. + description: Path to the Google Cloud service account key file. example: /var/secrets/gcp-credentials.json type: string required: @@ -41344,6 +41428,11 @@ components: type: string encoding: $ref: '#/components/schemas/ObservabilityPipelineGoogleChronicleDestinationEncoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the Google + Chronicle endpoint URL. + example: CHRONICLE_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: google-chronicle-destination @@ -41393,7 +41482,7 @@ components: description: 'The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. - It requires a bucket name, GCP authentication, and metadata fields. + It requires a bucket name, Google Cloud authentication, and metadata fields. **Supported pipeline types:** logs' @@ -41496,6 +41585,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' encoding: $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestinationEncoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the Google + Cloud Pub/Sub endpoint URL. + example: GCP_PUBSUB_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: google-pubsub-destination @@ -41509,7 +41603,7 @@ components: type: string type: array project: - description: The GCP project ID that owns the Pub/Sub topic. + description: The Google Cloud project ID that owns the Pub/Sub topic. example: my-gcp-project type: string tls: @@ -41567,7 +41661,7 @@ components: example: google-pubsub-source type: string project: - description: The GCP project ID that owns the Pub/Sub subscription. + description: The Google Cloud project ID that owns the Pub/Sub subscription. example: my-gcp-project type: string subscription: @@ -41606,6 +41700,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationAuthStrategy' compression: $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationCompression' + custom_key: + description: Name of the environment variable or secret that holds a custom + header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER + type: string encoding: $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationEncoding' id: @@ -41620,10 +41719,30 @@ components: items: type: string type: array + password_key: + description: Name of the environment variable or secret that holds the password + (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_PASSWORD + type: string tls: $ref: '#/components/schemas/ObservabilityPipelineTls' + token_key: + description: Name of the environment variable or secret that holds the bearer + token (used when `auth_strategy` is `bearer`). + example: HTTP_AUTH_TOKEN + type: string type: $ref: '#/components/schemas/ObservabilityPipelineHttpClientDestinationType' + uri_key: + description: Name of the environment variable or secret that holds the HTTP + endpoint URI. + example: HTTP_DESTINATION_URI + type: string + username_key: + description: Name of the environment variable or secret that holds the username + (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_USERNAME + type: string required: - id - type @@ -41687,14 +41806,29 @@ components: properties: auth_strategy: $ref: '#/components/schemas/ObservabilityPipelineHttpClientSourceAuthStrategy' + custom_key: + description: Name of the environment variable or secret that holds a custom + header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER + type: string decoding: $ref: '#/components/schemas/ObservabilityPipelineDecoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the HTTP + endpoint URL to scrape. + example: HTTP_ENDPOINT_URL + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). example: http-client-source type: string + password_key: + description: Name of the environment variable or secret that holds the password + (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_PASSWORD + type: string scrape_interval_secs: description: The interval (in seconds) between HTTP scrape requests. example: 60 @@ -41707,8 +41841,18 @@ components: type: integer tls: $ref: '#/components/schemas/ObservabilityPipelineTls' + token_key: + description: Name of the environment variable or secret that holds the bearer + token (used when `auth_strategy` is `bearer`). + example: HTTP_AUTH_TOKEN + type: string type: $ref: '#/components/schemas/ObservabilityPipelineHttpClientSourceType' + username_key: + description: Name of the environment variable or secret that holds the username + (used when `auth_strategy` is `basic`). + example: HTTP_AUTH_USERNAME + type: string required: - id - type @@ -41746,18 +41890,38 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the HTTP server. + example: HTTP_SERVER_ADDRESS + type: string auth_strategy: $ref: '#/components/schemas/ObservabilityPipelineHttpServerSourceAuthStrategy' + custom_key: + description: Name of the environment variable or secret that holds a custom + header value (used with custom auth strategies). + example: HTTP_AUTH_CUSTOM_HEADER + type: string decoding: $ref: '#/components/schemas/ObservabilityPipelineDecoding' id: description: Unique ID for the HTTP server source. example: http-server-source type: string + password_key: + description: Name of the environment variable or secret that holds the password + (used when `auth_strategy` is `plain`). + example: HTTP_AUTH_PASSWORD + type: string tls: $ref: '#/components/schemas/ObservabilityPipelineTls' type: $ref: '#/components/schemas/ObservabilityPipelineHttpServerSourceType' + username_key: + description: Name of the environment variable or secret that holds the username + (used when `auth_strategy` is `plain`). + example: HTTP_AUTH_USERNAME + type: string required: - id - type @@ -41791,6 +41955,11 @@ components: **Supported pipeline types:** logs' properties: + bootstrap_servers_key: + description: Name of the environment variable or secret that holds the Kafka + bootstrap servers list. + example: KAFKA_BOOTSTRAP_SERVERS + type: string compression: $ref: '#/components/schemas/ObservabilityPipelineKafkaDestinationCompression' encoding: @@ -41923,6 +42092,16 @@ components: properties: mechanism: $ref: '#/components/schemas/ObservabilityPipelineKafkaSaslMechanism' + password_key: + description: Name of the environment variable or secret that holds the SASL + password. + example: KAFKA_SASL_PASSWORD + type: string + username_key: + description: Name of the environment variable or secret that holds the SASL + username. + example: KAFKA_SASL_USERNAME + type: string type: object ObservabilityPipelineKafkaSaslMechanism: description: SASL mechanism used for Kafka authentication. @@ -41941,6 +42120,11 @@ components: **Supported pipeline types:** logs' properties: + bootstrap_servers_key: + description: Name of the environment variable or secret that holds the Kafka + bootstrap servers list. + example: KAFKA_BOOTSTRAP_SERVERS + type: string group_id: description: Consumer group ID used by the Kafka client. example: consumer-group-0 @@ -41995,6 +42179,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the Logstash receiver. + example: LOGSTASH_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -42172,6 +42361,11 @@ components: **Supported pipeline types:** logs' properties: + account_id_key: + description: Name of the environment variable or secret that holds the New + Relic account ID. + example: NEW_RELIC_ACCOUNT_ID + type: string buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' id: @@ -42186,6 +42380,11 @@ components: items: type: string type: array + license_key_key: + description: Name of the environment variable or secret that holds the New + Relic license key. + example: NEW_RELIC_LICENSE_KEY + type: string region: $ref: '#/components/schemas/ObservabilityPipelineNewRelicDestinationRegion' type: @@ -42431,6 +42630,8 @@ components: **Supported pipeline types:** logs' properties: + auth: + $ref: '#/components/schemas/ObservabilityPipelineElasticsearchDestinationAuth' buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' bulk_index: @@ -42439,6 +42640,11 @@ components: type: string data_stream: $ref: '#/components/schemas/ObservabilityPipelineOpenSearchDestinationDataStream' + endpoint_url_key: + description: Name of the environment variable or secret that holds the OpenSearch + endpoint URL. + example: OPENSEARCH_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: opensearch-destination @@ -43148,6 +43354,11 @@ components: properties: buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' + endpoint_url_key: + description: Name of the environment variable or secret that holds the syslog + server endpoint URL. + example: SYSLOG_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: rsyslog-destination @@ -43193,6 +43404,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the syslog receiver. + example: SYSLOG_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -43669,6 +43885,11 @@ components: type: array region: $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestinationRegion' + token_key: + description: Name of the environment variable or secret that holds the SentinelOne + API token. + example: SENTINELONE_TOKEN + type: string type: $ref: '#/components/schemas/ObservabilityPipelineSentinelOneDestinationType' required: @@ -43709,6 +43930,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the socket + address (host:port). + example: SOCKET_ADDRESS + type: string buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' encoding: @@ -43843,6 +44069,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the socket. + example: SOCKET_ADDRESS + type: string framing: $ref: '#/components/schemas/ObservabilityPipelineSocketSourceFraming' id: @@ -44091,6 +44322,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' encoding: $ref: '#/components/schemas/ObservabilityPipelineSplunkHecDestinationEncoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the Splunk + HEC endpoint URL. + example: SPLUNK_HEC_ENDPOINT_URL + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -44113,6 +44349,11 @@ components: description: The Splunk sourcetype to assign to log events. example: custom_sourcetype type: string + token_key: + description: Name of the environment variable or secret that holds the Splunk + HEC token. + example: SPLUNK_HEC_TOKEN + type: string type: $ref: '#/components/schemas/ObservabilityPipelineSplunkHecDestinationType' required: @@ -44148,6 +44389,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the HEC API. + example: SPLUNK_HEC_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -44182,6 +44428,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the Splunk TCP receiver. + example: SPLUNK_TCP_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -44217,6 +44468,11 @@ components: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' encoding: $ref: '#/components/schemas/ObservabilityPipelineSumoLogicDestinationEncoding' + endpoint_url_key: + description: Name of the environment variable or secret that holds the Sumo + Logic HTTP endpoint URL. + example: SUMO_LOGIC_ENDPOINT_URL + type: string header_custom_fields: description: A list of custom headers to include in the request to Sumo Logic. @@ -44298,6 +44554,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the Sumo Logic receiver. + example: SUMO_LOGIC_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -44330,6 +44591,11 @@ components: properties: buffer: $ref: '#/components/schemas/ObservabilityPipelineBufferOptions' + endpoint_url_key: + description: Name of the environment variable or secret that holds the syslog-ng + server endpoint URL. + example: SYSLOG_ENDPOINT_URL + type: string id: description: The unique identifier for this component. example: syslog-ng-destination @@ -44375,6 +44641,11 @@ components: **Supported pipeline types:** logs' properties: + address_key: + description: Name of the environment variable or secret that holds the listen + address for the syslog-ng receiver. + example: SYSLOG_ADDRESS + type: string id: description: The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` @@ -44492,6 +44763,11 @@ components: description: Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. type: string + key_pass_key: + description: Name of the environment variable or secret that holds the passphrase + for the private key file. + example: TLS_KEY_PASSPHRASE + type: string required: - crt_file type: object diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.frozen new file mode 100644 index 000000000000..ef9137f979ca --- /dev/null +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-02-20T14:42:05.988Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.yml new file mode 100644 index 000000000000..b45579798ca1 --- /dev/null +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-destination-secret-key-returns-OK-response.yml @@ -0,0 +1,27 @@ +http_interactions: +- recorded_at: Fri, 20 Feb 2026 14:42:05 GMT + request: + body: + encoding: UTF-8 + string: '{"data":{"attributes":{"config":{"destinations":[{"endpoint_url_key":"SUMO_LOGIC_ENDPOINT_URL","id":"sumo-logic-destination","inputs":["my-processor-group"],"type":"sumo_logic"}],"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":"Pipeline + with Secret Key"},"type":"pipelines"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/obs-pipelines/pipelines/validate + response: + body: + encoding: UTF-8 + string: '{"errors":[]} + + ' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.frozen b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.frozen new file mode 100644 index 000000000000..5e68c128ac42 --- /dev/null +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-02-20T14:42:32.372Z \ No newline at end of file diff --git a/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.yml b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.yml new file mode 100644 index 000000000000..1d83b4d8ef53 --- /dev/null +++ b/cassettes/features/v2/observability_pipelines/Validate-an-observability-pipeline-with-source-secret-key-returns-OK-response.yml @@ -0,0 +1,27 @@ +http_interactions: +- recorded_at: Fri, 20 Feb 2026 14:42:32 GMT + request: + body: + encoding: UTF-8 + string: '{"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":["http-client-source"],"processors":[{"enabled":true,"id":"filter-processor","include":"status:error","type":"filter"}]}],"sources":[{"auth_strategy":"bearer","decoding":"bytes","id":"http-client-source","scrape_interval_secs":15,"scrape_timeout_secs":5,"token_key":"HTTP_CLIENT_TOKEN","type":"http_client"}]},"name":"Pipeline + with Source Secret"},"type":"pipelines"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/obs-pipelines/pipelines/validate + response: + body: + encoding: UTF-8 + string: '{"errors":[]} + + ' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/examples/v2/observability-pipelines/ValidatePipeline_1330454428.rb b/examples/v2/observability-pipelines/ValidatePipeline_1330454428.rb new file mode 100644 index 000000000000..a6bb2d3e49df --- /dev/null +++ b/examples/v2/observability-pipelines/ValidatePipeline_1330454428.rb @@ -0,0 +1,50 @@ +# Validate an observability pipeline with destination secret key returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::ObservabilityPipelinesAPI.new + +body = DatadogAPIClient::V2::ObservabilityPipelineSpec.new({ + data: DatadogAPIClient::V2::ObservabilityPipelineSpecData.new({ + attributes: DatadogAPIClient::V2::ObservabilityPipelineDataAttributes.new({ + config: DatadogAPIClient::V2::ObservabilityPipelineConfig.new({ + destinations: [ + DatadogAPIClient::V2::ObservabilityPipelineSumoLogicDestination.new({ + id: "sumo-logic-destination", + inputs: [ + "my-processor-group", + ], + type: DatadogAPIClient::V2::ObservabilityPipelineSumoLogicDestinationType::SUMO_LOGIC, + endpoint_url_key: "SUMO_LOGIC_ENDPOINT_URL", + }), + ], + processor_groups: [ + DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({ + enabled: true, + id: "my-processor-group", + include: "service:my-service", + inputs: [ + "datadog-agent-source", + ], + processors: [ + DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ + enabled: true, + id: "filter-processor", + include: "status:error", + type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + }), + ], + }), + ], + sources: [ + DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSource.new({ + id: "datadog-agent-source", + type: DatadogAPIClient::V2::ObservabilityPipelineDatadogAgentSourceType::DATADOG_AGENT, + }), + ], + }), + name: "Pipeline with Secret Key", + }), + type: "pipelines", + }), +}) +p api_instance.validate_pipeline(body) diff --git a/examples/v2/observability-pipelines/ValidatePipeline_2899320203.rb b/examples/v2/observability-pipelines/ValidatePipeline_2899320203.rb new file mode 100644 index 000000000000..696237cbaa25 --- /dev/null +++ b/examples/v2/observability-pipelines/ValidatePipeline_2899320203.rb @@ -0,0 +1,54 @@ +# Validate an observability pipeline with source secret key returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::ObservabilityPipelinesAPI.new + +body = DatadogAPIClient::V2::ObservabilityPipelineSpec.new({ + data: DatadogAPIClient::V2::ObservabilityPipelineSpecData.new({ + attributes: DatadogAPIClient::V2::ObservabilityPipelineDataAttributes.new({ + config: DatadogAPIClient::V2::ObservabilityPipelineConfig.new({ + destinations: [ + DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestination.new({ + id: "datadog-logs-destination", + inputs: [ + "my-processor-group", + ], + type: DatadogAPIClient::V2::ObservabilityPipelineDatadogLogsDestinationType::DATADOG_LOGS, + }), + ], + processor_groups: [ + DatadogAPIClient::V2::ObservabilityPipelineConfigProcessorGroup.new({ + enabled: true, + id: "my-processor-group", + include: "service:my-service", + inputs: [ + "http-client-source", + ], + processors: [ + DatadogAPIClient::V2::ObservabilityPipelineFilterProcessor.new({ + enabled: true, + id: "filter-processor", + include: "status:error", + type: DatadogAPIClient::V2::ObservabilityPipelineFilterProcessorType::FILTER, + }), + ], + }), + ], + sources: [ + DatadogAPIClient::V2::ObservabilityPipelineHttpClientSource.new({ + id: "http-client-source", + type: DatadogAPIClient::V2::ObservabilityPipelineHttpClientSourceType::HTTP_CLIENT, + decoding: DatadogAPIClient::V2::ObservabilityPipelineDecoding::DECODE_BYTES, + scrape_interval_secs: 15, + scrape_timeout_secs: 5, + auth_strategy: DatadogAPIClient::V2::ObservabilityPipelineHttpClientSourceAuthStrategy::BEARER, + token_key: "HTTP_CLIENT_TOKEN", + }), + ], + }), + name: "Pipeline with Source Secret", + }), + type: "pipelines", + }), +}) +p api_instance.validate_pipeline(body) diff --git a/features/v2/observability_pipelines.feature b/features/v2/observability_pipelines.feature index b5c685768059..bf90c06c1399 100644 --- a/features/v2/observability_pipelines.feature +++ b/features/v2/observability_pipelines.feature @@ -190,3 +190,19 @@ Feature: Observability Pipelines When the request is sent Then the response status is 200 OK And the response "errors" has length 0 + + @team:DataDog/observability-pipelines + Scenario: Validate an observability pipeline with destination secret key returns "OK" response + Given new "ValidatePipeline" request + And body with value {"data": {"attributes": {"config": {"destinations": [{"id": "sumo-logic-destination", "inputs": ["my-processor-group"], "type": "sumo_logic", "endpoint_url_key": "SUMO_LOGIC_ENDPOINT_URL"}], "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": "Pipeline with Secret Key"}, "type": "pipelines"}} + When the request is sent + Then the response status is 200 OK + And the response "errors" has length 0 + + @team:DataDog/observability-pipelines + Scenario: Validate an observability pipeline with source secret key returns "OK" response + Given new "ValidatePipeline" request + 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": ["http-client-source"], "processors": [{"enabled": true, "id": "filter-processor", "include": "status:error", "type": "filter"}]}], "sources": [{"id": "http-client-source", "type": "http_client", "decoding": "bytes", "scrape_interval_secs": 15, "scrape_timeout_secs": 5, "auth_strategy": "bearer", "token_key": "HTTP_CLIENT_TOKEN"}]}, "name": "Pipeline with Source Secret"}, "type": "pipelines"}} + When the request is sent + Then the response status is 200 OK + And the response "errors" has length 0 diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 042500238b29..0405cff68ce1 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -3497,6 +3497,7 @@ def overrides "v2.observability_pipeline_disk_buffer_options" => "ObservabilityPipelineDiskBufferOptions", "v2.observability_pipeline_elasticsearch_destination" => "ObservabilityPipelineElasticsearchDestination", "v2.observability_pipeline_elasticsearch_destination_api_version" => "ObservabilityPipelineElasticsearchDestinationApiVersion", + "v2.observability_pipeline_elasticsearch_destination_auth" => "ObservabilityPipelineElasticsearchDestinationAuth", "v2.observability_pipeline_elasticsearch_destination_data_stream" => "ObservabilityPipelineElasticsearchDestinationDataStream", "v2.observability_pipeline_elasticsearch_destination_type" => "ObservabilityPipelineElasticsearchDestinationType", "v2.observability_pipeline_enrichment_table_file" => "ObservabilityPipelineEnrichmentTableFile", diff --git a/lib/datadog_api_client/v2/models/azure_storage_destination.rb b/lib/datadog_api_client/v2/models/azure_storage_destination.rb index 7d5d83703f2f..10c15612ecca 100644 --- a/lib/datadog_api_client/v2/models/azure_storage_destination.rb +++ b/lib/datadog_api_client/v2/models/azure_storage_destination.rb @@ -29,6 +29,9 @@ class AzureStorageDestination # Configuration for buffer settings on destination components. attr_accessor :buffer + # Name of the environment variable or secret that holds the Azure Storage connection string. + attr_accessor :connection_string_key + # The name of the Azure Blob Storage container to store logs in. attr_reader :container_name @@ -49,6 +52,7 @@ def self.attribute_map { :'blob_prefix' => :'blob_prefix', :'buffer' => :'buffer', + :'connection_string_key' => :'connection_string_key', :'container_name' => :'container_name', :'id' => :'id', :'inputs' => :'inputs', @@ -62,6 +66,7 @@ def self.openapi_types { :'blob_prefix' => :'String', :'buffer' => :'ObservabilityPipelineBufferOptions', + :'connection_string_key' => :'String', :'container_name' => :'String', :'id' => :'String', :'inputs' => :'Array', @@ -95,6 +100,10 @@ def initialize(attributes = {}) self.buffer = attributes[:'buffer'] end + if attributes.key?(:'connection_string_key') + self.connection_string_key = attributes[:'connection_string_key'] + end + if attributes.key?(:'container_name') self.container_name = attributes[:'container_name'] end @@ -193,6 +202,7 @@ def ==(o) self.class == o.class && blob_prefix == o.blob_prefix && buffer == o.buffer && + connection_string_key == o.connection_string_key && container_name == o.container_name && id == o.id && inputs == o.inputs && @@ -204,7 +214,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [blob_prefix, buffer, container_name, id, inputs, type, additional_properties].hash + [blob_prefix, buffer, connection_string_key, container_name, id, inputs, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/microsoft_sentinel_destination.rb b/lib/datadog_api_client/v2/models/microsoft_sentinel_destination.rb index e3a352437e31..25a8d62a0407 100644 --- a/lib/datadog_api_client/v2/models/microsoft_sentinel_destination.rb +++ b/lib/datadog_api_client/v2/models/microsoft_sentinel_destination.rb @@ -29,6 +29,12 @@ class MicrosoftSentinelDestination # Azure AD client ID used for authentication. attr_reader :client_id + # Name of the environment variable or secret that holds the Azure AD client secret. + attr_accessor :client_secret_key + + # Name of the environment variable or secret that holds the Data Collection Endpoint (DCE) URI. + attr_accessor :dce_uri_key + # The immutable ID of the Data Collection Rule (DCR). attr_reader :dcr_immutable_id @@ -55,6 +61,8 @@ def self.attribute_map { :'buffer' => :'buffer', :'client_id' => :'client_id', + :'client_secret_key' => :'client_secret_key', + :'dce_uri_key' => :'dce_uri_key', :'dcr_immutable_id' => :'dcr_immutable_id', :'id' => :'id', :'inputs' => :'inputs', @@ -70,6 +78,8 @@ def self.openapi_types { :'buffer' => :'ObservabilityPipelineBufferOptions', :'client_id' => :'String', + :'client_secret_key' => :'String', + :'dce_uri_key' => :'String', :'dcr_immutable_id' => :'String', :'id' => :'String', :'inputs' => :'Array', @@ -105,6 +115,14 @@ def initialize(attributes = {}) self.client_id = attributes[:'client_id'] end + if attributes.key?(:'client_secret_key') + self.client_secret_key = attributes[:'client_secret_key'] + end + + if attributes.key?(:'dce_uri_key') + self.dce_uri_key = attributes[:'dce_uri_key'] + end + if attributes.key?(:'dcr_immutable_id') self.dcr_immutable_id = attributes[:'dcr_immutable_id'] end @@ -244,6 +262,8 @@ def ==(o) self.class == o.class && buffer == o.buffer && client_id == o.client_id && + client_secret_key == o.client_secret_key && + dce_uri_key == o.dce_uri_key && dcr_immutable_id == o.dcr_immutable_id && id == o.id && inputs == o.inputs && @@ -257,7 +277,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, client_id, dcr_immutable_id, id, inputs, table, tenant_id, type, additional_properties].hash + [buffer, client_id, client_secret_key, dce_uri_key, dcr_immutable_id, id, inputs, table, tenant_id, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_amazon_data_firehose_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_amazon_data_firehose_source.rb index 51b01b03197c..4c09900d6bc3 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_amazon_data_firehose_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_amazon_data_firehose_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineAmazonDataFirehoseSource include BaseGenericModel + # Name of the environment variable or secret that holds the Firehose delivery stream address. + attr_accessor :address_key + # AWS authentication credentials used for accessing AWS services such as S3. # If omitted, the system’s default credentials are used (for example, the IAM role and environment variables). attr_accessor :auth @@ -42,6 +45,7 @@ class ObservabilityPipelineAmazonDataFirehoseSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'auth' => :'auth', :'id' => :'id', :'tls' => :'tls', @@ -53,6 +57,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'auth' => :'ObservabilityPipelineAwsAuth', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', @@ -78,6 +83,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'auth') self.auth = attributes[:'auth'] end @@ -150,6 +159,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && auth == o.auth && id == o.id && tls == o.tls && @@ -161,7 +171,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth, id, tls, type, additional_properties].hash + [address_key, auth, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_source.rb index 679d1d09a0e6..ab203d7204b3 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_amazon_s3_source.rb @@ -40,6 +40,9 @@ class ObservabilityPipelineAmazonS3Source # The source type. Always `amazon_s3`. attr_reader :type + # Name of the environment variable or secret that holds the S3 bucket URL. + attr_accessor :url_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. @@ -50,7 +53,8 @@ def self.attribute_map :'id' => :'id', :'region' => :'region', :'tls' => :'tls', - :'type' => :'type' + :'type' => :'type', + :'url_key' => :'url_key' } end @@ -62,7 +66,8 @@ def self.openapi_types :'id' => :'String', :'region' => :'String', :'tls' => :'ObservabilityPipelineTls', - :'type' => :'ObservabilityPipelineAmazonS3SourceType' + :'type' => :'ObservabilityPipelineAmazonS3SourceType', + :'url_key' => :'String' } end @@ -103,6 +108,10 @@ def initialize(attributes = {}) if attributes.key?(:'type') self.type = attributes[:'type'] end + + if attributes.key?(:'url_key') + self.url_key = attributes[:'url_key'] + end end # Check to see if the all the properties in the model are valid @@ -176,6 +185,7 @@ def ==(o) region == o.region && tls == o.tls && type == o.type && + url_key == o.url_key && additional_properties == o.additional_properties end @@ -183,7 +193,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth, id, region, tls, type, additional_properties].hash + [auth, id, region, tls, type, url_key, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_cloud_prem_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_cloud_prem_destination.rb index fcc35829a771..64cce5487482 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_cloud_prem_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_cloud_prem_destination.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineCloudPremDestination include BaseGenericModel + # Name of the environment variable or secret that holds the CloudPrem endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -38,6 +41,7 @@ class ObservabilityPipelineCloudPremDestination # @!visibility private def self.attribute_map { + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'type' => :'type' @@ -48,6 +52,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'type' => :'ObservabilityPipelineCloudPremDestinationType' @@ -72,6 +77,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -153,6 +162,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && type == o.type && @@ -163,7 +173,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, inputs, type, additional_properties].hash + [endpoint_url_key, id, inputs, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_crowd_strike_next_gen_siem_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_crowd_strike_next_gen_siem_destination.rb index 04bba5d3a095..d28d3f67b134 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_crowd_strike_next_gen_siem_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_crowd_strike_next_gen_siem_destination.rb @@ -32,6 +32,9 @@ class ObservabilityPipelineCrowdStrikeNextGenSiemDestination # Encoding format for log events. attr_reader :encoding + # Name of the environment variable or secret that holds the CrowdStrike endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -41,6 +44,9 @@ class ObservabilityPipelineCrowdStrikeNextGenSiemDestination # Configuration for enabling TLS encryption between the pipeline component and external services. attr_accessor :tls + # Name of the environment variable or secret that holds the CrowdStrike API token. + attr_accessor :token_key + # The destination type. The value should always be `crowdstrike_next_gen_siem`. attr_reader :type @@ -53,9 +59,11 @@ def self.attribute_map :'buffer' => :'buffer', :'compression' => :'compression', :'encoding' => :'encoding', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'tls' => :'tls', + :'token_key' => :'token_key', :'type' => :'type' } end @@ -67,9 +75,11 @@ def self.openapi_types :'buffer' => :'ObservabilityPipelineBufferOptions', :'compression' => :'ObservabilityPipelineCrowdStrikeNextGenSiemDestinationCompression', :'encoding' => :'ObservabilityPipelineCrowdStrikeNextGenSiemDestinationEncoding', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'tls' => :'ObservabilityPipelineTls', + :'token_key' => :'String', :'type' => :'ObservabilityPipelineCrowdStrikeNextGenSiemDestinationType' } end @@ -104,6 +114,10 @@ def initialize(attributes = {}) self.encoding = attributes[:'encoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -118,6 +132,10 @@ def initialize(attributes = {}) self.tls = attributes[:'tls'] end + if attributes.key?(:'token_key') + self.token_key = attributes[:'token_key'] + end + if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -203,9 +221,11 @@ def ==(o) buffer == o.buffer && compression == o.compression && encoding == o.encoding && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && tls == o.tls && + token_key == o.token_key && type == o.type && additional_properties == o.additional_properties end @@ -214,7 +234,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, compression, encoding, id, inputs, tls, type, additional_properties].hash + [buffer, compression, encoding, endpoint_url_key, id, inputs, tls, token_key, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination.rb index c60d54c56234..612b0ff1eeab 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination.rb @@ -26,6 +26,10 @@ class ObservabilityPipelineElasticsearchDestination # The Elasticsearch API version to use. Set to `auto` to auto-detect. attr_accessor :api_version + # Authentication settings for the Elasticsearch destination. + # When `strategy` is `basic`, use `username_key` and `password_key` to reference credentials stored in environment variables or secrets. + attr_accessor :auth + # Configuration for buffer settings on destination components. attr_accessor :buffer @@ -35,6 +39,9 @@ class ObservabilityPipelineElasticsearchDestination # Configuration options for writing to Elasticsearch Data Streams instead of a fixed index. attr_accessor :data_stream + # Name of the environment variable or secret that holds the Elasticsearch endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -51,9 +58,11 @@ class ObservabilityPipelineElasticsearchDestination def self.attribute_map { :'api_version' => :'api_version', + :'auth' => :'auth', :'buffer' => :'buffer', :'bulk_index' => :'bulk_index', :'data_stream' => :'data_stream', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'type' => :'type' @@ -65,9 +74,11 @@ def self.attribute_map def self.openapi_types { :'api_version' => :'ObservabilityPipelineElasticsearchDestinationApiVersion', + :'auth' => :'ObservabilityPipelineElasticsearchDestinationAuth', :'buffer' => :'ObservabilityPipelineBufferOptions', :'bulk_index' => :'String', :'data_stream' => :'ObservabilityPipelineElasticsearchDestinationDataStream', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'type' => :'ObservabilityPipelineElasticsearchDestinationType' @@ -96,6 +107,10 @@ def initialize(attributes = {}) self.api_version = attributes[:'api_version'] end + if attributes.key?(:'auth') + self.auth = attributes[:'auth'] + end + if attributes.key?(:'buffer') self.buffer = attributes[:'buffer'] end @@ -108,6 +123,10 @@ def initialize(attributes = {}) self.data_stream = attributes[:'data_stream'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -190,9 +209,11 @@ def ==(o) return true if self.equal?(o) self.class == o.class && api_version == o.api_version && + auth == o.auth && buffer == o.buffer && bulk_index == o.bulk_index && data_stream == o.data_stream && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && type == o.type && @@ -203,7 +224,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [api_version, buffer, bulk_index, data_stream, id, inputs, type, additional_properties].hash + [api_version, auth, buffer, bulk_index, data_stream, endpoint_url_key, id, inputs, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination_auth.rb b/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination_auth.rb new file mode 100644 index 000000000000..4da6c8123998 --- /dev/null +++ b/lib/datadog_api_client/v2/models/observability_pipeline_elasticsearch_destination_auth.rb @@ -0,0 +1,144 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Authentication settings for the Elasticsearch destination. + # When `strategy` is `basic`, use `username_key` and `password_key` to reference credentials stored in environment variables or secrets. + class ObservabilityPipelineElasticsearchDestinationAuth + include BaseGenericModel + + # Name of the environment variable or secret that holds the Elasticsearch password (used when `strategy` is `basic`). + attr_accessor :password_key + + # The authentication strategy to use. + attr_reader :strategy + + # Name of the environment variable or secret that holds the Elasticsearch username (used when `strategy` is `basic`). + attr_accessor :username_key + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'password_key' => :'password_key', + :'strategy' => :'strategy', + :'username_key' => :'username_key' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'password_key' => :'String', + :'strategy' => :'ObservabilityPipelineAmazonOpenSearchDestinationAuthStrategy', + :'username_key' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ObservabilityPipelineElasticsearchDestinationAuth` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'password_key') + self.password_key = attributes[:'password_key'] + end + + if attributes.key?(:'strategy') + self.strategy = attributes[:'strategy'] + end + + if attributes.key?(:'username_key') + self.username_key = attributes[:'username_key'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @strategy.nil? + true + end + + # Custom attribute writer method with validation + # @param strategy [Object] Object to be assigned + # @!visibility private + def strategy=(strategy) + if strategy.nil? + fail ArgumentError, 'invalid value for "strategy", strategy cannot be nil.' + end + @strategy = strategy + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + password_key == o.password_key && + strategy == o.strategy && + username_key == o.username_key && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [password_key, strategy, username_key, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_reference_table.rb b/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_reference_table.rb index 2248ad6775d1..21c86341e35d 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_reference_table.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_enrichment_table_reference_table.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineEnrichmentTableReferenceTable include BaseGenericModel + # Name of the environment variable or secret that holds the Datadog application key used to access the reference table. + attr_accessor :app_key_key + # List of column names to include from the reference table. If not provided, all columns are included. attr_accessor :columns @@ -36,6 +39,7 @@ class ObservabilityPipelineEnrichmentTableReferenceTable # @!visibility private def self.attribute_map { + :'app_key_key' => :'app_key_key', :'columns' => :'columns', :'key_field' => :'key_field', :'table_id' => :'table_id' @@ -46,6 +50,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'app_key_key' => :'String', :'columns' => :'Array', :'key_field' => :'String', :'table_id' => :'String' @@ -70,6 +75,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'app_key_key') + self.app_key_key = attributes[:'app_key_key'] + end + if attributes.key?(:'columns') if (value = attributes[:'columns']).is_a?(Array) self.columns = value @@ -140,6 +149,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + app_key_key == o.app_key_key && columns == o.columns && key_field == o.key_field && table_id == o.table_id && @@ -150,7 +160,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [columns, key_field, table_id, additional_properties].hash + [app_key_key, columns, key_field, table_id, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_fluent_bit_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_fluent_bit_source.rb index 5026870295d5..470d60060058 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_fluent_bit_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_fluent_bit_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineFluentBitSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the Fluent Bit receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -38,6 +41,7 @@ class ObservabilityPipelineFluentBitSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'tls' => :'tls', :'type' => :'type' @@ -48,6 +52,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', :'type' => :'ObservabilityPipelineFluentBitSourceType' @@ -72,6 +77,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -140,6 +149,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && tls == o.tls && type == o.type && @@ -150,7 +160,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, tls, type, additional_properties].hash + [address_key, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_fluentd_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_fluentd_source.rb index dd38ba8d0ab9..ec71db1a9469 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_fluentd_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_fluentd_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineFluentdSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the Fluent receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -38,6 +41,7 @@ class ObservabilityPipelineFluentdSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'tls' => :'tls', :'type' => :'type' @@ -48,6 +52,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', :'type' => :'ObservabilityPipelineFluentdSourceType' @@ -72,6 +77,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -140,6 +149,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && tls == o.tls && type == o.type && @@ -150,7 +160,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, tls, type, additional_properties].hash + [address_key, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_gcp_auth.rb b/lib/datadog_api_client/v2/models/observability_pipeline_gcp_auth.rb index 69f6282dd038..0a3c68e87477 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_gcp_auth.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_gcp_auth.rb @@ -17,11 +17,11 @@ require 'time' module DatadogAPIClient::V2 - # GCP credentials used to authenticate with Google Cloud Storage. + # Google Cloud credentials used to authenticate with Google Cloud Storage. class ObservabilityPipelineGcpAuth include BaseGenericModel - # Path to the GCP service account key file. + # Path to the Google Cloud service account key file. attr_reader :credentials_file attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_google_chronicle_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_google_chronicle_destination.rb index 6535b32ee31b..50bbfadd1f6d 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_google_chronicle_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_google_chronicle_destination.rb @@ -23,7 +23,7 @@ module DatadogAPIClient::V2 class ObservabilityPipelineGoogleChronicleDestination include BaseGenericModel - # GCP credentials used to authenticate with Google Cloud Storage. + # Google Cloud credentials used to authenticate with Google Cloud Storage. attr_accessor :auth # Configuration for buffer settings on destination components. @@ -35,6 +35,9 @@ class ObservabilityPipelineGoogleChronicleDestination # The encoding format for the logs sent to Chronicle. attr_accessor :encoding + # Name of the environment variable or secret that holds the Google Chronicle endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -57,6 +60,7 @@ def self.attribute_map :'buffer' => :'buffer', :'customer_id' => :'customer_id', :'encoding' => :'encoding', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'log_type' => :'log_type', @@ -72,6 +76,7 @@ def self.openapi_types :'buffer' => :'ObservabilityPipelineBufferOptions', :'customer_id' => :'String', :'encoding' => :'ObservabilityPipelineGoogleChronicleDestinationEncoding', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'log_type' => :'String', @@ -113,6 +118,10 @@ def initialize(attributes = {}) self.encoding = attributes[:'encoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -213,6 +222,7 @@ def ==(o) buffer == o.buffer && customer_id == o.customer_id && encoding == o.encoding && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && log_type == o.log_type && @@ -224,7 +234,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth, buffer, customer_id, encoding, id, inputs, log_type, type, additional_properties].hash + [auth, buffer, customer_id, encoding, endpoint_url_key, id, inputs, log_type, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_google_cloud_storage_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_google_cloud_storage_destination.rb index 9379bc1ecb39..fa01150eb40a 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_google_cloud_storage_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_google_cloud_storage_destination.rb @@ -18,7 +18,7 @@ module DatadogAPIClient::V2 # The `google_cloud_storage` destination stores logs in a Google Cloud Storage (GCS) bucket. - # It requires a bucket name, GCP authentication, and metadata fields. + # It requires a bucket name, Google Cloud authentication, and metadata fields. # # **Supported pipeline types:** logs class ObservabilityPipelineGoogleCloudStorageDestination @@ -27,7 +27,7 @@ class ObservabilityPipelineGoogleCloudStorageDestination # Access control list setting for objects written to the bucket. attr_accessor :acl - # GCP credentials used to authenticate with Google Cloud Storage. + # Google Cloud credentials used to authenticate with Google Cloud Storage. attr_accessor :auth # Name of the GCS bucket. diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb index 329b0c19b4b2..e8a29e5d44f7 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_destination.rb @@ -23,7 +23,7 @@ module DatadogAPIClient::V2 class ObservabilityPipelineGooglePubSubDestination include BaseGenericModel - # GCP credentials used to authenticate with Google Cloud Storage. + # Google Cloud credentials used to authenticate with Google Cloud Storage. attr_accessor :auth # Configuration for buffer settings on destination components. @@ -32,13 +32,16 @@ class ObservabilityPipelineGooglePubSubDestination # Encoding format for log events. attr_reader :encoding + # Name of the environment variable or secret that holds the Google Cloud Pub/Sub endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id # A list of component IDs whose output is used as the `input` for this component. attr_reader :inputs - # The GCP project ID that owns the Pub/Sub topic. + # The Google Cloud project ID that owns the Pub/Sub topic. attr_reader :project # Configuration for enabling TLS encryption between the pipeline component and external services. @@ -59,6 +62,7 @@ def self.attribute_map :'auth' => :'auth', :'buffer' => :'buffer', :'encoding' => :'encoding', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'project' => :'project', @@ -75,6 +79,7 @@ def self.openapi_types :'auth' => :'ObservabilityPipelineGcpAuth', :'buffer' => :'ObservabilityPipelineBufferOptions', :'encoding' => :'ObservabilityPipelineGooglePubSubDestinationEncoding', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'project' => :'String', @@ -114,6 +119,10 @@ def initialize(attributes = {}) self.encoding = attributes[:'encoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -243,6 +252,7 @@ def ==(o) auth == o.auth && buffer == o.buffer && encoding == o.encoding && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && project == o.project && @@ -256,7 +266,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth, buffer, encoding, id, inputs, project, tls, topic, type, additional_properties].hash + [auth, buffer, encoding, endpoint_url_key, id, inputs, project, tls, topic, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_source.rb index 313d862c9833..eb7d263c783e 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_google_pub_sub_source.rb @@ -23,7 +23,7 @@ module DatadogAPIClient::V2 class ObservabilityPipelineGooglePubSubSource include BaseGenericModel - # GCP credentials used to authenticate with Google Cloud Storage. + # Google Cloud credentials used to authenticate with Google Cloud Storage. attr_accessor :auth # The decoding format used to interpret incoming logs. @@ -32,7 +32,7 @@ class ObservabilityPipelineGooglePubSubSource # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id - # The GCP project ID that owns the Pub/Sub subscription. + # The Google Cloud project ID that owns the Pub/Sub subscription. attr_reader :project # The Pub/Sub subscription name from which messages are consumed. diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_http_client_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_http_client_destination.rb index b113b66cef97..d9a2d0d3b198 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_http_client_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_http_client_destination.rb @@ -29,6 +29,9 @@ class ObservabilityPipelineHttpClientDestination # Compression configuration for HTTP requests. attr_accessor :compression + # Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + attr_accessor :custom_key + # Encoding format for log events. attr_reader :encoding @@ -38,12 +41,24 @@ class ObservabilityPipelineHttpClientDestination # A list of component IDs whose output is used as the input for this component. attr_reader :inputs + # Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + attr_accessor :password_key + # Configuration for enabling TLS encryption between the pipeline component and external services. attr_accessor :tls + # Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + attr_accessor :token_key + # The destination type. The value should always be `http_client`. attr_reader :type + # Name of the environment variable or secret that holds the HTTP endpoint URI. + attr_accessor :uri_key + + # Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + attr_accessor :username_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. @@ -52,11 +67,16 @@ def self.attribute_map { :'auth_strategy' => :'auth_strategy', :'compression' => :'compression', + :'custom_key' => :'custom_key', :'encoding' => :'encoding', :'id' => :'id', :'inputs' => :'inputs', + :'password_key' => :'password_key', :'tls' => :'tls', - :'type' => :'type' + :'token_key' => :'token_key', + :'type' => :'type', + :'uri_key' => :'uri_key', + :'username_key' => :'username_key' } end @@ -66,11 +86,16 @@ def self.openapi_types { :'auth_strategy' => :'ObservabilityPipelineHttpClientDestinationAuthStrategy', :'compression' => :'ObservabilityPipelineHttpClientDestinationCompression', + :'custom_key' => :'String', :'encoding' => :'ObservabilityPipelineHttpClientDestinationEncoding', :'id' => :'String', :'inputs' => :'Array', + :'password_key' => :'String', :'tls' => :'ObservabilityPipelineTls', - :'type' => :'ObservabilityPipelineHttpClientDestinationType' + :'token_key' => :'String', + :'type' => :'ObservabilityPipelineHttpClientDestinationType', + :'uri_key' => :'String', + :'username_key' => :'String' } end @@ -100,6 +125,10 @@ def initialize(attributes = {}) self.compression = attributes[:'compression'] end + if attributes.key?(:'custom_key') + self.custom_key = attributes[:'custom_key'] + end + if attributes.key?(:'encoding') self.encoding = attributes[:'encoding'] end @@ -114,13 +143,29 @@ def initialize(attributes = {}) end end + if attributes.key?(:'password_key') + self.password_key = attributes[:'password_key'] + end + if attributes.key?(:'tls') self.tls = attributes[:'tls'] end + if attributes.key?(:'token_key') + self.token_key = attributes[:'token_key'] + end + if attributes.key?(:'type') self.type = attributes[:'type'] end + + if attributes.key?(:'uri_key') + self.uri_key = attributes[:'uri_key'] + end + + if attributes.key?(:'username_key') + self.username_key = attributes[:'username_key'] + end end # Check to see if the all the properties in the model are valid @@ -202,11 +247,16 @@ def ==(o) self.class == o.class && auth_strategy == o.auth_strategy && compression == o.compression && + custom_key == o.custom_key && encoding == o.encoding && id == o.id && inputs == o.inputs && + password_key == o.password_key && tls == o.tls && + token_key == o.token_key && type == o.type && + uri_key == o.uri_key && + username_key == o.username_key && additional_properties == o.additional_properties end @@ -214,7 +264,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth_strategy, compression, encoding, id, inputs, tls, type, additional_properties].hash + [auth_strategy, compression, custom_key, encoding, id, inputs, password_key, tls, token_key, type, uri_key, username_key, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_http_client_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_http_client_source.rb index 2d9d526579a2..fcf41763ff39 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_http_client_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_http_client_source.rb @@ -26,12 +26,21 @@ class ObservabilityPipelineHttpClientSource # Optional authentication strategy for HTTP requests. attr_accessor :auth_strategy + # Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + attr_accessor :custom_key + # The decoding format used to interpret incoming logs. attr_reader :decoding + # Name of the environment variable or secret that holds the HTTP endpoint URL to scrape. + attr_accessor :endpoint_url_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id + # Name of the environment variable or secret that holds the password (used when `auth_strategy` is `basic`). + attr_accessor :password_key + # The interval (in seconds) between HTTP scrape requests. attr_accessor :scrape_interval_secs @@ -41,9 +50,15 @@ class ObservabilityPipelineHttpClientSource # Configuration for enabling TLS encryption between the pipeline component and external services. attr_accessor :tls + # Name of the environment variable or secret that holds the bearer token (used when `auth_strategy` is `bearer`). + attr_accessor :token_key + # The source type. The value should always be `http_client`. attr_reader :type + # Name of the environment variable or secret that holds the username (used when `auth_strategy` is `basic`). + attr_accessor :username_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. @@ -51,12 +66,17 @@ class ObservabilityPipelineHttpClientSource def self.attribute_map { :'auth_strategy' => :'auth_strategy', + :'custom_key' => :'custom_key', :'decoding' => :'decoding', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', + :'password_key' => :'password_key', :'scrape_interval_secs' => :'scrape_interval_secs', :'scrape_timeout_secs' => :'scrape_timeout_secs', :'tls' => :'tls', - :'type' => :'type' + :'token_key' => :'token_key', + :'type' => :'type', + :'username_key' => :'username_key' } end @@ -65,12 +85,17 @@ def self.attribute_map def self.openapi_types { :'auth_strategy' => :'ObservabilityPipelineHttpClientSourceAuthStrategy', + :'custom_key' => :'String', :'decoding' => :'ObservabilityPipelineDecoding', + :'endpoint_url_key' => :'String', :'id' => :'String', + :'password_key' => :'String', :'scrape_interval_secs' => :'Integer', :'scrape_timeout_secs' => :'Integer', :'tls' => :'ObservabilityPipelineTls', - :'type' => :'ObservabilityPipelineHttpClientSourceType' + :'token_key' => :'String', + :'type' => :'ObservabilityPipelineHttpClientSourceType', + :'username_key' => :'String' } end @@ -96,14 +121,26 @@ def initialize(attributes = {}) self.auth_strategy = attributes[:'auth_strategy'] end + if attributes.key?(:'custom_key') + self.custom_key = attributes[:'custom_key'] + end + if attributes.key?(:'decoding') self.decoding = attributes[:'decoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end + if attributes.key?(:'password_key') + self.password_key = attributes[:'password_key'] + end + if attributes.key?(:'scrape_interval_secs') self.scrape_interval_secs = attributes[:'scrape_interval_secs'] end @@ -116,9 +153,17 @@ def initialize(attributes = {}) self.tls = attributes[:'tls'] end + if attributes.key?(:'token_key') + self.token_key = attributes[:'token_key'] + end + if attributes.key?(:'type') self.type = attributes[:'type'] end + + if attributes.key?(:'username_key') + self.username_key = attributes[:'username_key'] + end end # Check to see if the all the properties in the model are valid @@ -188,12 +233,17 @@ def ==(o) return true if self.equal?(o) self.class == o.class && auth_strategy == o.auth_strategy && + custom_key == o.custom_key && decoding == o.decoding && + endpoint_url_key == o.endpoint_url_key && id == o.id && + password_key == o.password_key && scrape_interval_secs == o.scrape_interval_secs && scrape_timeout_secs == o.scrape_timeout_secs && tls == o.tls && + token_key == o.token_key && type == o.type && + username_key == o.username_key && additional_properties == o.additional_properties end @@ -201,7 +251,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth_strategy, decoding, id, scrape_interval_secs, scrape_timeout_secs, tls, type, additional_properties].hash + [auth_strategy, custom_key, decoding, endpoint_url_key, id, password_key, scrape_interval_secs, scrape_timeout_secs, tls, token_key, type, username_key, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_http_server_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_http_server_source.rb index 271315644f12..2416c612d24d 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_http_server_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_http_server_source.rb @@ -23,32 +23,48 @@ module DatadogAPIClient::V2 class ObservabilityPipelineHttpServerSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the HTTP server. + attr_accessor :address_key + # HTTP authentication method. attr_reader :auth_strategy + # Name of the environment variable or secret that holds a custom header value (used with custom auth strategies). + attr_accessor :custom_key + # The decoding format used to interpret incoming logs. attr_reader :decoding # Unique ID for the HTTP server source. attr_reader :id + # Name of the environment variable or secret that holds the password (used when `auth_strategy` is `plain`). + attr_accessor :password_key + # Configuration for enabling TLS encryption between the pipeline component and external services. attr_accessor :tls # The source type. The value should always be `http_server`. attr_reader :type + # Name of the environment variable or secret that holds the username (used when `auth_strategy` is `plain`). + attr_accessor :username_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'auth_strategy' => :'auth_strategy', + :'custom_key' => :'custom_key', :'decoding' => :'decoding', :'id' => :'id', + :'password_key' => :'password_key', :'tls' => :'tls', - :'type' => :'type' + :'type' => :'type', + :'username_key' => :'username_key' } end @@ -56,11 +72,15 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'auth_strategy' => :'ObservabilityPipelineHttpServerSourceAuthStrategy', + :'custom_key' => :'String', :'decoding' => :'ObservabilityPipelineDecoding', :'id' => :'String', + :'password_key' => :'String', :'tls' => :'ObservabilityPipelineTls', - :'type' => :'ObservabilityPipelineHttpServerSourceType' + :'type' => :'ObservabilityPipelineHttpServerSourceType', + :'username_key' => :'String' } end @@ -82,10 +102,18 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'auth_strategy') self.auth_strategy = attributes[:'auth_strategy'] end + if attributes.key?(:'custom_key') + self.custom_key = attributes[:'custom_key'] + end + if attributes.key?(:'decoding') self.decoding = attributes[:'decoding'] end @@ -94,6 +122,10 @@ def initialize(attributes = {}) self.id = attributes[:'id'] end + if attributes.key?(:'password_key') + self.password_key = attributes[:'password_key'] + end + if attributes.key?(:'tls') self.tls = attributes[:'tls'] end @@ -101,6 +133,10 @@ def initialize(attributes = {}) if attributes.key?(:'type') self.type = attributes[:'type'] end + + if attributes.key?(:'username_key') + self.username_key = attributes[:'username_key'] + end end # Check to see if the all the properties in the model are valid @@ -180,11 +216,15 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && auth_strategy == o.auth_strategy && + custom_key == o.custom_key && decoding == o.decoding && id == o.id && + password_key == o.password_key && tls == o.tls && type == o.type && + username_key == o.username_key && additional_properties == o.additional_properties end @@ -192,7 +232,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auth_strategy, decoding, id, tls, type, additional_properties].hash + [address_key, auth_strategy, custom_key, decoding, id, password_key, tls, type, username_key, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_destination.rb index 5ed8aea58afb..7c4be31ea82d 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_destination.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineKafkaDestination include BaseGenericModel + # Name of the environment variable or secret that holds the Kafka bootstrap servers list. + attr_accessor :bootstrap_servers_key + # Compression codec for Kafka messages. attr_accessor :compression @@ -74,6 +77,7 @@ class ObservabilityPipelineKafkaDestination # @!visibility private def self.attribute_map { + :'bootstrap_servers_key' => :'bootstrap_servers_key', :'compression' => :'compression', :'encoding' => :'encoding', :'headers_key' => :'headers_key', @@ -96,6 +100,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'bootstrap_servers_key' => :'String', :'compression' => :'ObservabilityPipelineKafkaDestinationCompression', :'encoding' => :'ObservabilityPipelineKafkaDestinationEncoding', :'headers_key' => :'String', @@ -132,6 +137,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'bootstrap_servers_key') + self.bootstrap_servers_key = attributes[:'bootstrap_servers_key'] + end + if attributes.key?(:'compression') self.compression = attributes[:'compression'] end @@ -333,6 +342,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + bootstrap_servers_key == o.bootstrap_servers_key && compression == o.compression && encoding == o.encoding && headers_key == o.headers_key && @@ -355,7 +365,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [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].hash + [bootstrap_servers_key, 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].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_sasl.rb b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_sasl.rb index 88fb7915b9da..26b2640f07f0 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_sasl.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_sasl.rb @@ -24,13 +24,21 @@ class ObservabilityPipelineKafkaSasl # SASL mechanism used for Kafka authentication. attr_accessor :mechanism + # Name of the environment variable or secret that holds the SASL password. + attr_accessor :password_key + + # Name of the environment variable or secret that holds the SASL username. + attr_accessor :username_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. # @!visibility private def self.attribute_map { - :'mechanism' => :'mechanism' + :'mechanism' => :'mechanism', + :'password_key' => :'password_key', + :'username_key' => :'username_key' } end @@ -38,7 +46,9 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'mechanism' => :'ObservabilityPipelineKafkaSaslMechanism' + :'mechanism' => :'ObservabilityPipelineKafkaSaslMechanism', + :'password_key' => :'String', + :'username_key' => :'String' } end @@ -63,6 +73,14 @@ def initialize(attributes = {}) if attributes.key?(:'mechanism') self.mechanism = attributes[:'mechanism'] end + + if attributes.key?(:'password_key') + self.password_key = attributes[:'password_key'] + end + + if attributes.key?(:'username_key') + self.username_key = attributes[:'username_key'] + end end # Returns the object in the form of hash, with additionalProperties support. @@ -92,6 +110,8 @@ def ==(o) return true if self.equal?(o) self.class == o.class && mechanism == o.mechanism && + password_key == o.password_key && + username_key == o.username_key && additional_properties == o.additional_properties end @@ -99,7 +119,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [mechanism, additional_properties].hash + [mechanism, password_key, username_key, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_source.rb index ccba9f42446f..b9081456b0d7 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_kafka_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_kafka_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineKafkaSource include BaseGenericModel + # Name of the environment variable or secret that holds the Kafka bootstrap servers list. + attr_accessor :bootstrap_servers_key + # Consumer group ID used by the Kafka client. attr_reader :group_id @@ -50,6 +53,7 @@ class ObservabilityPipelineKafkaSource # @!visibility private def self.attribute_map { + :'bootstrap_servers_key' => :'bootstrap_servers_key', :'group_id' => :'group_id', :'id' => :'id', :'librdkafka_options' => :'librdkafka_options', @@ -64,6 +68,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'bootstrap_servers_key' => :'String', :'group_id' => :'String', :'id' => :'String', :'librdkafka_options' => :'Array', @@ -92,6 +97,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'bootstrap_servers_key') + self.bootstrap_servers_key = attributes[:'bootstrap_servers_key'] + end + if attributes.key?(:'group_id') self.group_id = attributes[:'group_id'] end @@ -202,6 +211,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + bootstrap_servers_key == o.bootstrap_servers_key && group_id == o.group_id && id == o.id && librdkafka_options == o.librdkafka_options && @@ -216,7 +226,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [group_id, id, librdkafka_options, sasl, tls, topics, type, additional_properties].hash + [bootstrap_servers_key, group_id, id, librdkafka_options, sasl, tls, topics, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_logstash_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_logstash_source.rb index 4d20f0e57ea2..15b52f5eaaae 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_logstash_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_logstash_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineLogstashSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the Logstash receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -38,6 +41,7 @@ class ObservabilityPipelineLogstashSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'tls' => :'tls', :'type' => :'type' @@ -48,6 +52,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', :'type' => :'ObservabilityPipelineLogstashSourceType' @@ -72,6 +77,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -140,6 +149,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && tls == o.tls && type == o.type && @@ -150,7 +160,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, tls, type, additional_properties].hash + [address_key, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_new_relic_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_new_relic_destination.rb index 3bbcfb490b42..234f7ed440a9 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_new_relic_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_new_relic_destination.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineNewRelicDestination include BaseGenericModel + # Name of the environment variable or secret that holds the New Relic account ID. + attr_accessor :account_id_key + # Configuration for buffer settings on destination components. attr_accessor :buffer @@ -32,6 +35,9 @@ class ObservabilityPipelineNewRelicDestination # A list of component IDs whose output is used as the `input` for this component. attr_reader :inputs + # Name of the environment variable or secret that holds the New Relic license key. + attr_accessor :license_key_key + # The New Relic region. attr_reader :region @@ -44,9 +50,11 @@ class ObservabilityPipelineNewRelicDestination # @!visibility private def self.attribute_map { + :'account_id_key' => :'account_id_key', :'buffer' => :'buffer', :'id' => :'id', :'inputs' => :'inputs', + :'license_key_key' => :'license_key_key', :'region' => :'region', :'type' => :'type' } @@ -56,9 +64,11 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'account_id_key' => :'String', :'buffer' => :'ObservabilityPipelineBufferOptions', :'id' => :'String', :'inputs' => :'Array', + :'license_key_key' => :'String', :'region' => :'ObservabilityPipelineNewRelicDestinationRegion', :'type' => :'ObservabilityPipelineNewRelicDestinationType' } @@ -82,6 +92,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'account_id_key') + self.account_id_key = attributes[:'account_id_key'] + end + if attributes.key?(:'buffer') self.buffer = attributes[:'buffer'] end @@ -96,6 +110,10 @@ def initialize(attributes = {}) end end + if attributes.key?(:'license_key_key') + self.license_key_key = attributes[:'license_key_key'] + end + if attributes.key?(:'region') self.region = attributes[:'region'] end @@ -182,9 +200,11 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + account_id_key == o.account_id_key && buffer == o.buffer && id == o.id && inputs == o.inputs && + license_key_key == o.license_key_key && region == o.region && type == o.type && additional_properties == o.additional_properties @@ -194,7 +214,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, id, inputs, region, type, additional_properties].hash + [account_id_key, buffer, id, inputs, license_key_key, region, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_open_search_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_open_search_destination.rb index 72e2798c1cb8..cc19737720b4 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_open_search_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_open_search_destination.rb @@ -23,6 +23,10 @@ module DatadogAPIClient::V2 class ObservabilityPipelineOpenSearchDestination include BaseGenericModel + # Authentication settings for the Elasticsearch destination. + # When `strategy` is `basic`, use `username_key` and `password_key` to reference credentials stored in environment variables or secrets. + attr_accessor :auth + # Configuration for buffer settings on destination components. attr_accessor :buffer @@ -32,6 +36,9 @@ class ObservabilityPipelineOpenSearchDestination # Configuration options for writing to OpenSearch Data Streams instead of a fixed index. attr_accessor :data_stream + # Name of the environment variable or secret that holds the OpenSearch endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -47,9 +54,11 @@ class ObservabilityPipelineOpenSearchDestination # @!visibility private def self.attribute_map { + :'auth' => :'auth', :'buffer' => :'buffer', :'bulk_index' => :'bulk_index', :'data_stream' => :'data_stream', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'type' => :'type' @@ -60,9 +69,11 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'auth' => :'ObservabilityPipelineElasticsearchDestinationAuth', :'buffer' => :'ObservabilityPipelineBufferOptions', :'bulk_index' => :'String', :'data_stream' => :'ObservabilityPipelineOpenSearchDestinationDataStream', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'type' => :'ObservabilityPipelineOpenSearchDestinationType' @@ -87,6 +98,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'auth') + self.auth = attributes[:'auth'] + end + if attributes.key?(:'buffer') self.buffer = attributes[:'buffer'] end @@ -99,6 +114,10 @@ def initialize(attributes = {}) self.data_stream = attributes[:'data_stream'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -180,9 +199,11 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + auth == o.auth && buffer == o.buffer && bulk_index == o.bulk_index && data_stream == o.data_stream && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && type == o.type && @@ -193,7 +214,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, bulk_index, data_stream, id, inputs, type, additional_properties].hash + [auth, buffer, bulk_index, data_stream, endpoint_url_key, id, inputs, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_destination.rb index 5a1c16dc7974..574d0a6bb890 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_destination.rb @@ -26,6 +26,9 @@ class ObservabilityPipelineRsyslogDestination # Configuration for buffer settings on destination components. attr_accessor :buffer + # Name of the environment variable or secret that holds the syslog server endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -48,6 +51,7 @@ class ObservabilityPipelineRsyslogDestination def self.attribute_map { :'buffer' => :'buffer', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'keepalive' => :'keepalive', @@ -61,6 +65,7 @@ def self.attribute_map def self.openapi_types { :'buffer' => :'ObservabilityPipelineBufferOptions', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'keepalive' => :'Integer', @@ -91,6 +96,10 @@ def initialize(attributes = {}) self.buffer = attributes[:'buffer'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -192,6 +201,7 @@ def ==(o) return true if self.equal?(o) self.class == o.class && buffer == o.buffer && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && keepalive == o.keepalive && @@ -204,7 +214,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, id, inputs, keepalive, tls, type, additional_properties].hash + [buffer, endpoint_url_key, id, inputs, keepalive, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_source.rb index c7a88f0e7715..bbda5491fb04 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_rsyslog_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineRsyslogSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the syslog receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -41,6 +44,7 @@ class ObservabilityPipelineRsyslogSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'mode' => :'mode', :'tls' => :'tls', @@ -52,6 +56,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'mode' => :'ObservabilityPipelineSyslogSourceMode', :'tls' => :'ObservabilityPipelineTls', @@ -77,6 +82,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -160,6 +169,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && mode == o.mode && tls == o.tls && @@ -171,7 +181,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, mode, tls, type, additional_properties].hash + [address_key, id, mode, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_sentinel_one_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_sentinel_one_destination.rb index afd36fa79c29..dce20dc5dd36 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_sentinel_one_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_sentinel_one_destination.rb @@ -35,6 +35,9 @@ class ObservabilityPipelineSentinelOneDestination # The SentinelOne region to send logs to. attr_reader :region + # Name of the environment variable or secret that holds the SentinelOne API token. + attr_accessor :token_key + # The destination type. The value should always be `sentinel_one`. attr_reader :type @@ -48,6 +51,7 @@ def self.attribute_map :'id' => :'id', :'inputs' => :'inputs', :'region' => :'region', + :'token_key' => :'token_key', :'type' => :'type' } end @@ -60,6 +64,7 @@ def self.openapi_types :'id' => :'String', :'inputs' => :'Array', :'region' => :'ObservabilityPipelineSentinelOneDestinationRegion', + :'token_key' => :'String', :'type' => :'ObservabilityPipelineSentinelOneDestinationType' } end @@ -100,6 +105,10 @@ def initialize(attributes = {}) self.region = attributes[:'region'] end + if attributes.key?(:'token_key') + self.token_key = attributes[:'token_key'] + end + if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -186,6 +195,7 @@ def ==(o) id == o.id && inputs == o.inputs && region == o.region && + token_key == o.token_key && type == o.type && additional_properties == o.additional_properties end @@ -194,7 +204,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, id, inputs, region, type, additional_properties].hash + [buffer, id, inputs, region, token_key, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_socket_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_socket_destination.rb index 44861a7907a1..64e137246fa9 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_socket_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_socket_destination.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSocketDestination include BaseGenericModel + # Name of the environment variable or secret that holds the socket address (host:port). + attr_accessor :address_key + # Configuration for buffer settings on destination components. attr_accessor :buffer @@ -53,6 +56,7 @@ class ObservabilityPipelineSocketDestination # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'buffer' => :'buffer', :'encoding' => :'encoding', :'framing' => :'framing', @@ -68,6 +72,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'buffer' => :'ObservabilityPipelineBufferOptions', :'encoding' => :'ObservabilityPipelineSocketDestinationEncoding', :'framing' => :'ObservabilityPipelineSocketDestinationFraming', @@ -97,6 +102,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'buffer') self.buffer = attributes[:'buffer'] end @@ -231,6 +240,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && buffer == o.buffer && encoding == o.encoding && framing == o.framing && @@ -246,7 +256,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, encoding, framing, id, inputs, mode, tls, type, additional_properties].hash + [address_key, buffer, encoding, framing, id, inputs, mode, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_socket_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_socket_source.rb index 802310ffad1e..49b0b874d3fa 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_socket_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_socket_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSocketSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the socket. + attr_accessor :address_key + # Framing method configuration for the socket source. attr_reader :framing @@ -44,6 +47,7 @@ class ObservabilityPipelineSocketSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'framing' => :'framing', :'id' => :'id', :'mode' => :'mode', @@ -56,6 +60,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'framing' => :'ObservabilityPipelineSocketSourceFraming', :'id' => :'String', :'mode' => :'ObservabilityPipelineSocketSourceMode', @@ -82,6 +87,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'framing') self.framing = attributes[:'framing'] end @@ -180,6 +189,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && framing == o.framing && id == o.id && mode == o.mode && @@ -192,7 +202,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [framing, id, mode, tls, type, additional_properties].hash + [address_key, framing, id, mode, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_destination.rb index 7c504d81e51b..6f535df14c7e 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_destination.rb @@ -33,6 +33,9 @@ class ObservabilityPipelineSplunkHecDestination # Encoding format for log events. attr_accessor :encoding + # Name of the environment variable or secret that holds the Splunk HEC endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -45,6 +48,9 @@ class ObservabilityPipelineSplunkHecDestination # The Splunk sourcetype to assign to log events. attr_accessor :sourcetype + # Name of the environment variable or secret that holds the Splunk HEC token. + attr_accessor :token_key + # The destination type. Always `splunk_hec`. attr_reader :type @@ -57,10 +63,12 @@ def self.attribute_map :'auto_extract_timestamp' => :'auto_extract_timestamp', :'buffer' => :'buffer', :'encoding' => :'encoding', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'index' => :'index', :'inputs' => :'inputs', :'sourcetype' => :'sourcetype', + :'token_key' => :'token_key', :'type' => :'type' } end @@ -72,10 +80,12 @@ def self.openapi_types :'auto_extract_timestamp' => :'Boolean', :'buffer' => :'ObservabilityPipelineBufferOptions', :'encoding' => :'ObservabilityPipelineSplunkHecDestinationEncoding', + :'endpoint_url_key' => :'String', :'id' => :'String', :'index' => :'String', :'inputs' => :'Array', :'sourcetype' => :'String', + :'token_key' => :'String', :'type' => :'ObservabilityPipelineSplunkHecDestinationType' } end @@ -110,6 +120,10 @@ def initialize(attributes = {}) self.encoding = attributes[:'encoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -128,6 +142,10 @@ def initialize(attributes = {}) self.sourcetype = attributes[:'sourcetype'] end + if attributes.key?(:'token_key') + self.token_key = attributes[:'token_key'] + end + if attributes.key?(:'type') self.type = attributes[:'type'] end @@ -202,10 +220,12 @@ def ==(o) auto_extract_timestamp == o.auto_extract_timestamp && buffer == o.buffer && encoding == o.encoding && + endpoint_url_key == o.endpoint_url_key && id == o.id && index == o.index && inputs == o.inputs && sourcetype == o.sourcetype && + token_key == o.token_key && type == o.type && additional_properties == o.additional_properties end @@ -214,7 +234,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [auto_extract_timestamp, buffer, encoding, id, index, inputs, sourcetype, type, additional_properties].hash + [auto_extract_timestamp, buffer, encoding, endpoint_url_key, id, index, inputs, sourcetype, token_key, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_source.rb index 0845f1540745..7856341b6508 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_hec_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSplunkHecSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the HEC API. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -38,6 +41,7 @@ class ObservabilityPipelineSplunkHecSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'tls' => :'tls', :'type' => :'type' @@ -48,6 +52,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', :'type' => :'ObservabilityPipelineSplunkHecSourceType' @@ -72,6 +77,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -140,6 +149,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && tls == o.tls && type == o.type && @@ -150,7 +160,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, tls, type, additional_properties].hash + [address_key, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_tcp_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_tcp_source.rb index a78d633227c2..d0ef4902c685 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_splunk_tcp_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_splunk_tcp_source.rb @@ -24,6 +24,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSplunkTcpSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the Splunk TCP receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -39,6 +42,7 @@ class ObservabilityPipelineSplunkTcpSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'tls' => :'tls', :'type' => :'type' @@ -49,6 +53,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'tls' => :'ObservabilityPipelineTls', :'type' => :'ObservabilityPipelineSplunkTcpSourceType' @@ -73,6 +78,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -141,6 +150,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && tls == o.tls && type == o.type && @@ -151,7 +161,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, tls, type, additional_properties].hash + [address_key, id, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_destination.rb index f6346f092959..4509ae179069 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_destination.rb @@ -29,6 +29,9 @@ class ObservabilityPipelineSumoLogicDestination # The output encoding format. attr_accessor :encoding + # Name of the environment variable or secret that holds the Sumo Logic HTTP endpoint URL. + attr_accessor :endpoint_url_key + # A list of custom headers to include in the request to Sumo Logic. attr_accessor :header_custom_fields @@ -58,6 +61,7 @@ def self.attribute_map { :'buffer' => :'buffer', :'encoding' => :'encoding', + :'endpoint_url_key' => :'endpoint_url_key', :'header_custom_fields' => :'header_custom_fields', :'header_host_name' => :'header_host_name', :'header_source_category' => :'header_source_category', @@ -74,6 +78,7 @@ def self.openapi_types { :'buffer' => :'ObservabilityPipelineBufferOptions', :'encoding' => :'ObservabilityPipelineSumoLogicDestinationEncoding', + :'endpoint_url_key' => :'String', :'header_custom_fields' => :'Array', :'header_host_name' => :'String', :'header_source_category' => :'String', @@ -110,6 +115,10 @@ def initialize(attributes = {}) self.encoding = attributes[:'encoding'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'header_custom_fields') if (value = attributes[:'header_custom_fields']).is_a?(Array) self.header_custom_fields = value @@ -211,6 +220,7 @@ def ==(o) self.class == o.class && buffer == o.buffer && encoding == o.encoding && + endpoint_url_key == o.endpoint_url_key && header_custom_fields == o.header_custom_fields && header_host_name == o.header_host_name && header_source_category == o.header_source_category && @@ -225,7 +235,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, encoding, header_custom_fields, header_host_name, header_source_category, header_source_name, id, inputs, type, additional_properties].hash + [buffer, encoding, endpoint_url_key, header_custom_fields, header_host_name, header_source_category, header_source_name, id, inputs, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_source.rb index f43d9b510beb..8108a1622855 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_sumo_logic_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSumoLogicSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the Sumo Logic receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -35,6 +38,7 @@ class ObservabilityPipelineSumoLogicSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'type' => :'type' } @@ -44,6 +48,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'type' => :'ObservabilityPipelineSumoLogicSourceType' } @@ -67,6 +72,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -131,6 +140,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && type == o.type && additional_properties == o.additional_properties @@ -140,7 +150,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, type, additional_properties].hash + [address_key, id, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_destination.rb b/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_destination.rb index a816fbcbca7c..b9c8202e0d5d 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_destination.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_destination.rb @@ -26,6 +26,9 @@ class ObservabilityPipelineSyslogNgDestination # Configuration for buffer settings on destination components. attr_accessor :buffer + # Name of the environment variable or secret that holds the syslog-ng server endpoint URL. + attr_accessor :endpoint_url_key + # The unique identifier for this component. attr_reader :id @@ -48,6 +51,7 @@ class ObservabilityPipelineSyslogNgDestination def self.attribute_map { :'buffer' => :'buffer', + :'endpoint_url_key' => :'endpoint_url_key', :'id' => :'id', :'inputs' => :'inputs', :'keepalive' => :'keepalive', @@ -61,6 +65,7 @@ def self.attribute_map def self.openapi_types { :'buffer' => :'ObservabilityPipelineBufferOptions', + :'endpoint_url_key' => :'String', :'id' => :'String', :'inputs' => :'Array', :'keepalive' => :'Integer', @@ -91,6 +96,10 @@ def initialize(attributes = {}) self.buffer = attributes[:'buffer'] end + if attributes.key?(:'endpoint_url_key') + self.endpoint_url_key = attributes[:'endpoint_url_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -192,6 +201,7 @@ def ==(o) return true if self.equal?(o) self.class == o.class && buffer == o.buffer && + endpoint_url_key == o.endpoint_url_key && id == o.id && inputs == o.inputs && keepalive == o.keepalive && @@ -204,7 +214,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [buffer, id, inputs, keepalive, tls, type, additional_properties].hash + [buffer, endpoint_url_key, id, inputs, keepalive, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_source.rb b/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_source.rb index 5f59f534b879..5bc1429127f6 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_source.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_syslog_ng_source.rb @@ -23,6 +23,9 @@ module DatadogAPIClient::V2 class ObservabilityPipelineSyslogNgSource include BaseGenericModel + # Name of the environment variable or secret that holds the listen address for the syslog-ng receiver. + attr_accessor :address_key + # The unique identifier for this component. Used in other parts of the pipeline to reference this component (for example, as the `input` to downstream components). attr_reader :id @@ -41,6 +44,7 @@ class ObservabilityPipelineSyslogNgSource # @!visibility private def self.attribute_map { + :'address_key' => :'address_key', :'id' => :'id', :'mode' => :'mode', :'tls' => :'tls', @@ -52,6 +56,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'address_key' => :'String', :'id' => :'String', :'mode' => :'ObservabilityPipelineSyslogSourceMode', :'tls' => :'ObservabilityPipelineTls', @@ -77,6 +82,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'address_key') + self.address_key = attributes[:'address_key'] + end + if attributes.key?(:'id') self.id = attributes[:'id'] end @@ -160,6 +169,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + address_key == o.address_key && id == o.id && mode == o.mode && tls == o.tls && @@ -171,7 +181,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [id, mode, tls, type, additional_properties].hash + [address_key, id, mode, tls, type, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/observability_pipeline_tls.rb b/lib/datadog_api_client/v2/models/observability_pipeline_tls.rb index 7d6fdfd22a33..f43320db10ef 100644 --- a/lib/datadog_api_client/v2/models/observability_pipeline_tls.rb +++ b/lib/datadog_api_client/v2/models/observability_pipeline_tls.rb @@ -30,6 +30,9 @@ class ObservabilityPipelineTls # Path to the private key file associated with the TLS client certificate. Used for mutual TLS authentication. attr_accessor :key_file + # Name of the environment variable or secret that holds the passphrase for the private key file. + attr_accessor :key_pass_key + attr_accessor :additional_properties # Attribute mapping from ruby-style variable name to JSON key. @@ -38,7 +41,8 @@ def self.attribute_map { :'ca_file' => :'ca_file', :'crt_file' => :'crt_file', - :'key_file' => :'key_file' + :'key_file' => :'key_file', + :'key_pass_key' => :'key_pass_key' } end @@ -48,7 +52,8 @@ def self.openapi_types { :'ca_file' => :'String', :'crt_file' => :'String', - :'key_file' => :'String' + :'key_file' => :'String', + :'key_pass_key' => :'String' } end @@ -81,6 +86,10 @@ def initialize(attributes = {}) if attributes.key?(:'key_file') self.key_file = attributes[:'key_file'] end + + if attributes.key?(:'key_pass_key') + self.key_pass_key = attributes[:'key_pass_key'] + end end # Check to see if the all the properties in the model are valid @@ -130,6 +139,7 @@ def ==(o) ca_file == o.ca_file && crt_file == o.crt_file && key_file == o.key_file && + key_pass_key == o.key_pass_key && additional_properties == o.additional_properties end @@ -137,7 +147,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [ca_file, crt_file, key_file, additional_properties].hash + [ca_file, crt_file, key_file, key_pass_key, additional_properties].hash end end end