Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29098,6 +29098,7 @@ components:
- $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubSource'
- $ref: '#/components/schemas/ObservabilityPipelineHttpClientSource'
- $ref: '#/components/schemas/ObservabilityPipelineLogstashSource'
- $ref: '#/components/schemas/ObservabilityPipelineOpentelemetrySource'
- $ref: '#/components/schemas/ObservabilityPipelineSocketSource'
ObservabilityPipelineCrowdStrikeNextGenSiemDestination:
description: The `crowdstrike_next_gen_siem` destination forwards logs to CrowdStrike
Expand Down Expand Up @@ -30547,6 +30548,33 @@ components:
type: string
x-enum-varnames:
- OPENSEARCH
ObservabilityPipelineOpentelemetrySource:
description: The `opentelemetry` source receives OpenTelemetry data through
gRPC or HTTP.
properties:
id:
description: The unique identifier for this component. Used to reference
this component in other parts of the pipeline (e.g., as input to downstream
components).
example: opentelemetry-source
type: string
tls:
$ref: '#/components/schemas/ObservabilityPipelineTls'
type:
$ref: '#/components/schemas/ObservabilityPipelineOpentelemetrySourceType'
required:
- id
- type
type: object
ObservabilityPipelineOpentelemetrySourceType:
default: opentelemetry
description: The source type. The value should always be `opentelemetry`.
enum:
- opentelemetry
example: opentelemetry
type: string
x-enum-varnames:
- OPENTELEMETRY
ObservabilityPipelineParseGrokProcessor:
description: The `parse_grok` processor extracts structured fields from unstructured
log messages using Grok patterns.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ type ObservabilityPipelineConfigSourceItem struct {
ObservabilityPipelineGooglePubSubSource *ObservabilityPipelineGooglePubSubSource
ObservabilityPipelineHttpClientSource *ObservabilityPipelineHttpClientSource
ObservabilityPipelineLogstashSource *ObservabilityPipelineLogstashSource
ObservabilityPipelineOpentelemetrySource *ObservabilityPipelineOpentelemetrySource
ObservabilityPipelineSocketSource *ObservabilityPipelineSocketSource

// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
Expand Down Expand Up @@ -106,6 +107,11 @@ func ObservabilityPipelineLogstashSourceAsObservabilityPipelineConfigSourceItem(
return ObservabilityPipelineConfigSourceItem{ObservabilityPipelineLogstashSource: v}
}

// ObservabilityPipelineOpentelemetrySourceAsObservabilityPipelineConfigSourceItem is a convenience function that returns ObservabilityPipelineOpentelemetrySource wrapped in ObservabilityPipelineConfigSourceItem.
func ObservabilityPipelineOpentelemetrySourceAsObservabilityPipelineConfigSourceItem(v *ObservabilityPipelineOpentelemetrySource) ObservabilityPipelineConfigSourceItem {
return ObservabilityPipelineConfigSourceItem{ObservabilityPipelineOpentelemetrySource: v}
}

// ObservabilityPipelineSocketSourceAsObservabilityPipelineConfigSourceItem is a convenience function that returns ObservabilityPipelineSocketSource wrapped in ObservabilityPipelineConfigSourceItem.
func ObservabilityPipelineSocketSourceAsObservabilityPipelineConfigSourceItem(v *ObservabilityPipelineSocketSource) ObservabilityPipelineConfigSourceItem {
return ObservabilityPipelineConfigSourceItem{ObservabilityPipelineSocketSource: v}
Expand Down Expand Up @@ -370,6 +376,23 @@ func (obj *ObservabilityPipelineConfigSourceItem) UnmarshalJSON(data []byte) err
obj.ObservabilityPipelineLogstashSource = nil
}

// try to unmarshal data into ObservabilityPipelineOpentelemetrySource
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineOpentelemetrySource)
if err == nil {
if obj.ObservabilityPipelineOpentelemetrySource != nil && obj.ObservabilityPipelineOpentelemetrySource.UnparsedObject == nil {
jsonObservabilityPipelineOpentelemetrySource, _ := datadog.Marshal(obj.ObservabilityPipelineOpentelemetrySource)
if string(jsonObservabilityPipelineOpentelemetrySource) == "{}" { // empty struct
obj.ObservabilityPipelineOpentelemetrySource = nil
} else {
match++
}
} else {
obj.ObservabilityPipelineOpentelemetrySource = nil
}
} else {
obj.ObservabilityPipelineOpentelemetrySource = nil
}

// try to unmarshal data into ObservabilityPipelineSocketSource
err = datadog.Unmarshal(data, &obj.ObservabilityPipelineSocketSource)
if err == nil {
Expand Down Expand Up @@ -404,6 +427,7 @@ func (obj *ObservabilityPipelineConfigSourceItem) UnmarshalJSON(data []byte) err
obj.ObservabilityPipelineGooglePubSubSource = nil
obj.ObservabilityPipelineHttpClientSource = nil
obj.ObservabilityPipelineLogstashSource = nil
obj.ObservabilityPipelineOpentelemetrySource = nil
obj.ObservabilityPipelineSocketSource = nil
return datadog.Unmarshal(data, &obj.UnparsedObject)
}
Expand Down Expand Up @@ -472,6 +496,10 @@ func (obj ObservabilityPipelineConfigSourceItem) MarshalJSON() ([]byte, error) {
return datadog.Marshal(&obj.ObservabilityPipelineLogstashSource)
}

if obj.ObservabilityPipelineOpentelemetrySource != nil {
return datadog.Marshal(&obj.ObservabilityPipelineOpentelemetrySource)
}

if obj.ObservabilityPipelineSocketSource != nil {
return datadog.Marshal(&obj.ObservabilityPipelineSocketSource)
}
Expand Down Expand Up @@ -544,6 +572,10 @@ func (obj *ObservabilityPipelineConfigSourceItem) GetActualInstance() interface{
return obj.ObservabilityPipelineLogstashSource
}

if obj.ObservabilityPipelineOpentelemetrySource != nil {
return obj.ObservabilityPipelineOpentelemetrySource
}

if obj.ObservabilityPipelineSocketSource != nil {
return obj.ObservabilityPipelineSocketSource
}
Expand Down
183 changes: 183 additions & 0 deletions api/datadogV2/model_observability_pipeline_opentelemetry_source.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.

package datadogV2

import (
"fmt"

"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
)

// ObservabilityPipelineOpentelemetrySource The `opentelemetry` source receives OpenTelemetry data through gRPC or HTTP.
type ObservabilityPipelineOpentelemetrySource struct {
// The unique identifier for this component. Used to reference this component in other parts of the pipeline (e.g., as input to downstream components).
Id string `json:"id"`
// Configuration for enabling TLS encryption between the pipeline component and external services.
Tls *ObservabilityPipelineTls `json:"tls,omitempty"`
// The source type. The value should always be `opentelemetry`.
Type ObservabilityPipelineOpentelemetrySourceType `json:"type"`
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
UnparsedObject map[string]interface{} `json:"-"`
AdditionalProperties map[string]interface{} `json:"-"`
}

// NewObservabilityPipelineOpentelemetrySource instantiates a new ObservabilityPipelineOpentelemetrySource object.
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed.
func NewObservabilityPipelineOpentelemetrySource(id string, typeVar ObservabilityPipelineOpentelemetrySourceType) *ObservabilityPipelineOpentelemetrySource {
this := ObservabilityPipelineOpentelemetrySource{}
this.Id = id
this.Type = typeVar
return &this
}

// NewObservabilityPipelineOpentelemetrySourceWithDefaults instantiates a new ObservabilityPipelineOpentelemetrySource object.
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set.
func NewObservabilityPipelineOpentelemetrySourceWithDefaults() *ObservabilityPipelineOpentelemetrySource {
this := ObservabilityPipelineOpentelemetrySource{}
var typeVar ObservabilityPipelineOpentelemetrySourceType = OBSERVABILITYPIPELINEOPENTELEMETRYSOURCETYPE_OPENTELEMETRY
this.Type = typeVar
return &this
}

// GetId returns the Id field value.
func (o *ObservabilityPipelineOpentelemetrySource) GetId() string {
if o == nil {
var ret string
return ret
}
return o.Id
}

// GetIdOk returns a tuple with the Id field value
// and a boolean to check if the value has been set.
func (o *ObservabilityPipelineOpentelemetrySource) GetIdOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.Id, true
}

// SetId sets field value.
func (o *ObservabilityPipelineOpentelemetrySource) SetId(v string) {
o.Id = v
}

// GetTls returns the Tls field value if set, zero value otherwise.
func (o *ObservabilityPipelineOpentelemetrySource) GetTls() ObservabilityPipelineTls {
if o == nil || o.Tls == nil {
var ret ObservabilityPipelineTls
return ret
}
return *o.Tls
}

// GetTlsOk returns a tuple with the Tls field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *ObservabilityPipelineOpentelemetrySource) GetTlsOk() (*ObservabilityPipelineTls, bool) {
if o == nil || o.Tls == nil {
return nil, false
}
return o.Tls, true
}

// HasTls returns a boolean if a field has been set.
func (o *ObservabilityPipelineOpentelemetrySource) HasTls() bool {
return o != nil && o.Tls != nil
}

// SetTls gets a reference to the given ObservabilityPipelineTls and assigns it to the Tls field.
func (o *ObservabilityPipelineOpentelemetrySource) SetTls(v ObservabilityPipelineTls) {
o.Tls = &v
}

// GetType returns the Type field value.
func (o *ObservabilityPipelineOpentelemetrySource) GetType() ObservabilityPipelineOpentelemetrySourceType {
if o == nil {
var ret ObservabilityPipelineOpentelemetrySourceType
return ret
}
return o.Type
}

// GetTypeOk returns a tuple with the Type field value
// and a boolean to check if the value has been set.
func (o *ObservabilityPipelineOpentelemetrySource) GetTypeOk() (*ObservabilityPipelineOpentelemetrySourceType, bool) {
if o == nil {
return nil, false
}
return &o.Type, true
}

// SetType sets field value.
func (o *ObservabilityPipelineOpentelemetrySource) SetType(v ObservabilityPipelineOpentelemetrySourceType) {
o.Type = v
}

// MarshalJSON serializes the struct using spec logic.
func (o ObservabilityPipelineOpentelemetrySource) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.UnparsedObject != nil {
return datadog.Marshal(o.UnparsedObject)
}
toSerialize["id"] = o.Id
if o.Tls != nil {
toSerialize["tls"] = o.Tls
}
toSerialize["type"] = o.Type

for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return datadog.Marshal(toSerialize)
}

// UnmarshalJSON deserializes the given payload.
func (o *ObservabilityPipelineOpentelemetrySource) UnmarshalJSON(bytes []byte) (err error) {
all := struct {
Id *string `json:"id"`
Tls *ObservabilityPipelineTls `json:"tls,omitempty"`
Type *ObservabilityPipelineOpentelemetrySourceType `json:"type"`
}{}
if err = datadog.Unmarshal(bytes, &all); err != nil {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}
if all.Id == nil {
return fmt.Errorf("required field id missing")
}
if all.Type == nil {
return fmt.Errorf("required field type missing")
}
additionalProperties := make(map[string]interface{})
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
datadog.DeleteKeys(additionalProperties, &[]string{"id", "tls", "type"})
} else {
return err
}

hasInvalidField := false
o.Id = *all.Id
if all.Tls != nil && all.Tls.UnparsedObject != nil && o.UnparsedObject == nil {
hasInvalidField = true
}
o.Tls = all.Tls
if !all.Type.IsValid() {
hasInvalidField = true
} else {
o.Type = *all.Type
}

if len(additionalProperties) > 0 {
o.AdditionalProperties = additionalProperties
}

if hasInvalidField {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}

return nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.

package datadogV2

import (
"fmt"

"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
)

// ObservabilityPipelineOpentelemetrySourceType The source type. The value should always be `opentelemetry`.
type ObservabilityPipelineOpentelemetrySourceType string

// List of ObservabilityPipelineOpentelemetrySourceType.
const (
OBSERVABILITYPIPELINEOPENTELEMETRYSOURCETYPE_OPENTELEMETRY ObservabilityPipelineOpentelemetrySourceType = "opentelemetry"
)

var allowedObservabilityPipelineOpentelemetrySourceTypeEnumValues = []ObservabilityPipelineOpentelemetrySourceType{
OBSERVABILITYPIPELINEOPENTELEMETRYSOURCETYPE_OPENTELEMETRY,
}

// GetAllowedValues reeturns the list of possible values.
func (v *ObservabilityPipelineOpentelemetrySourceType) GetAllowedValues() []ObservabilityPipelineOpentelemetrySourceType {
return allowedObservabilityPipelineOpentelemetrySourceTypeEnumValues
}

// UnmarshalJSON deserializes the given payload.
func (v *ObservabilityPipelineOpentelemetrySourceType) UnmarshalJSON(src []byte) error {
var value string
err := datadog.Unmarshal(src, &value)
if err != nil {
return err
}
*v = ObservabilityPipelineOpentelemetrySourceType(value)
return nil
}

// NewObservabilityPipelineOpentelemetrySourceTypeFromValue returns a pointer to a valid ObservabilityPipelineOpentelemetrySourceType
// for the value passed as argument, or an error if the value passed is not allowed by the enum.
func NewObservabilityPipelineOpentelemetrySourceTypeFromValue(v string) (*ObservabilityPipelineOpentelemetrySourceType, error) {
ev := ObservabilityPipelineOpentelemetrySourceType(v)
if ev.IsValid() {
return &ev, nil
}
return nil, fmt.Errorf("invalid value '%v' for ObservabilityPipelineOpentelemetrySourceType: valid values are %v", v, allowedObservabilityPipelineOpentelemetrySourceTypeEnumValues)
}

// IsValid return true if the value is valid for the enum, false otherwise.
func (v ObservabilityPipelineOpentelemetrySourceType) IsValid() bool {
for _, existing := range allowedObservabilityPipelineOpentelemetrySourceTypeEnumValues {
if existing == v {
return true
}
}
return false
}

// Ptr returns reference to ObservabilityPipelineOpentelemetrySourceType value.
func (v ObservabilityPipelineOpentelemetrySourceType) Ptr() *ObservabilityPipelineOpentelemetrySourceType {
return &v
}