Skip to content

Commit d8406a6

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Google PubSub destination to the Observability Pipelines API (#2809)
Co-authored-by: ci.datadog-api-spec <[email protected]>
1 parent cf1296a commit d8406a6

File tree

7 files changed

+205
-0
lines changed

7 files changed

+205
-0
lines changed

.generator/schemas/v2/openapi.yaml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30324,6 +30324,7 @@ components:
3032430324
- $ref: '#/components/schemas/ObservabilityPipelineSocketDestination'
3032530325
- $ref: '#/components/schemas/ObservabilityPipelineAmazonSecurityLakeDestination'
3032630326
- $ref: '#/components/schemas/ObservabilityPipelineCrowdStrikeNextGenSiemDestination'
30327+
- $ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestination'
3032730328
ObservabilityPipelineConfigProcessorItem:
3032830329
description: A processor for the pipeline.
3032930330
oneOf:
@@ -31385,6 +31386,65 @@ components:
3138531386
type: string
3138631387
x-enum-varnames:
3138731388
- GOOGLE_CLOUD_STORAGE
31389+
ObservabilityPipelineGooglePubSubDestination:
31390+
description: The `google_pubsub` destination publishes logs to a Google Cloud
31391+
Pub/Sub topic.
31392+
properties:
31393+
auth:
31394+
$ref: '#/components/schemas/ObservabilityPipelineGcpAuth'
31395+
encoding:
31396+
$ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestinationEncoding'
31397+
id:
31398+
description: The unique identifier for this component.
31399+
example: google-pubsub-destination
31400+
type: string
31401+
inputs:
31402+
description: A list of component IDs whose output is used as the `input`
31403+
for this component.
31404+
example:
31405+
- filter-processor
31406+
items:
31407+
type: string
31408+
type: array
31409+
project:
31410+
description: The GCP project ID that owns the Pub/Sub topic.
31411+
example: my-gcp-project
31412+
type: string
31413+
tls:
31414+
$ref: '#/components/schemas/ObservabilityPipelineTls'
31415+
topic:
31416+
description: The Pub/Sub topic name to publish logs to.
31417+
example: logs-subscription
31418+
type: string
31419+
type:
31420+
$ref: '#/components/schemas/ObservabilityPipelineGooglePubSubDestinationType'
31421+
required:
31422+
- id
31423+
- type
31424+
- inputs
31425+
- encoding
31426+
- project
31427+
- topic
31428+
type: object
31429+
ObservabilityPipelineGooglePubSubDestinationEncoding:
31430+
description: Encoding format for log events.
31431+
enum:
31432+
- json
31433+
- raw_message
31434+
example: json
31435+
type: string
31436+
x-enum-varnames:
31437+
- JSON
31438+
- RAW_MESSAGE
31439+
ObservabilityPipelineGooglePubSubDestinationType:
31440+
default: google_pubsub
31441+
description: The destination type. The value should always be `google_pubsub`.
31442+
enum:
31443+
- google_pubsub
31444+
example: google_pubsub
31445+
type: string
31446+
x-enum-varnames:
31447+
- GOOGLE_PUBSUB
3138831448
ObservabilityPipelineGooglePubSubSource:
3138931449
description: The `google_pubsub` source ingests logs from a Google Cloud Pub/Sub
3139031450
subscription.

services/observability_pipelines/src/v2/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ export { ObservabilityPipelineGoogleCloudStorageDestination } from "./models/Obs
9797
export { ObservabilityPipelineGoogleCloudStorageDestinationAcl } from "./models/ObservabilityPipelineGoogleCloudStorageDestinationAcl";
9898
export { ObservabilityPipelineGoogleCloudStorageDestinationStorageClass } from "./models/ObservabilityPipelineGoogleCloudStorageDestinationStorageClass";
9999
export { ObservabilityPipelineGoogleCloudStorageDestinationType } from "./models/ObservabilityPipelineGoogleCloudStorageDestinationType";
100+
export { ObservabilityPipelineGooglePubSubDestination } from "./models/ObservabilityPipelineGooglePubSubDestination";
101+
export { ObservabilityPipelineGooglePubSubDestinationEncoding } from "./models/ObservabilityPipelineGooglePubSubDestinationEncoding";
102+
export { ObservabilityPipelineGooglePubSubDestinationType } from "./models/ObservabilityPipelineGooglePubSubDestinationType";
100103
export { ObservabilityPipelineGooglePubSubSource } from "./models/ObservabilityPipelineGooglePubSubSource";
101104
export { ObservabilityPipelineGooglePubSubSourceType } from "./models/ObservabilityPipelineGooglePubSubSourceType";
102105
export { ObservabilityPipelineHttpClientSource } from "./models/ObservabilityPipelineHttpClientSource";

services/observability_pipelines/src/v2/models/ObservabilityPipelineConfigDestinationItem.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { ObservabilityPipelineDatadogLogsDestination } from "./ObservabilityPipe
1010
import { ObservabilityPipelineElasticsearchDestination } from "./ObservabilityPipelineElasticsearchDestination";
1111
import { ObservabilityPipelineGoogleChronicleDestination } from "./ObservabilityPipelineGoogleChronicleDestination";
1212
import { ObservabilityPipelineGoogleCloudStorageDestination } from "./ObservabilityPipelineGoogleCloudStorageDestination";
13+
import { ObservabilityPipelineGooglePubSubDestination } from "./ObservabilityPipelineGooglePubSubDestination";
1314
import { ObservabilityPipelineNewRelicDestination } from "./ObservabilityPipelineNewRelicDestination";
1415
import { ObservabilityPipelineOpenSearchDestination } from "./ObservabilityPipelineOpenSearchDestination";
1516
import { ObservabilityPipelineRsyslogDestination } from "./ObservabilityPipelineRsyslogDestination";
@@ -41,4 +42,5 @@ export type ObservabilityPipelineConfigDestinationItem =
4142
| ObservabilityPipelineSocketDestination
4243
| ObservabilityPipelineAmazonSecurityLakeDestination
4344
| ObservabilityPipelineCrowdStrikeNextGenSiemDestination
45+
| ObservabilityPipelineGooglePubSubDestination
4446
| UnparsedObject;
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
import { AttributeTypeMap } from "@datadog/datadog-api-client";
2+
3+
import { ObservabilityPipelineGcpAuth } from "./ObservabilityPipelineGcpAuth";
4+
import { ObservabilityPipelineGooglePubSubDestinationEncoding } from "./ObservabilityPipelineGooglePubSubDestinationEncoding";
5+
import { ObservabilityPipelineGooglePubSubDestinationType } from "./ObservabilityPipelineGooglePubSubDestinationType";
6+
import { ObservabilityPipelineTls } from "./ObservabilityPipelineTls";
7+
8+
/**
9+
* The `google_pubsub` destination publishes logs to a Google Cloud Pub/Sub topic.
10+
*/
11+
export class ObservabilityPipelineGooglePubSubDestination {
12+
/**
13+
* GCP credentials used to authenticate with Google Cloud Storage.
14+
*/
15+
"auth"?: ObservabilityPipelineGcpAuth;
16+
/**
17+
* Encoding format for log events.
18+
*/
19+
"encoding": ObservabilityPipelineGooglePubSubDestinationEncoding;
20+
/**
21+
* The unique identifier for this component.
22+
*/
23+
"id": string;
24+
/**
25+
* A list of component IDs whose output is used as the `input` for this component.
26+
*/
27+
"inputs": Array<string>;
28+
/**
29+
* The GCP project ID that owns the Pub/Sub topic.
30+
*/
31+
"project": string;
32+
/**
33+
* Configuration for enabling TLS encryption between the pipeline component and external services.
34+
*/
35+
"tls"?: ObservabilityPipelineTls;
36+
/**
37+
* The Pub/Sub topic name to publish logs to.
38+
*/
39+
"topic": string;
40+
/**
41+
* The destination type. The value should always be `google_pubsub`.
42+
*/
43+
"type": ObservabilityPipelineGooglePubSubDestinationType;
44+
/**
45+
* A container for additional, undeclared properties.
46+
* This is a holder for any undeclared properties as specified with
47+
* the 'additionalProperties' keyword in the OAS document.
48+
*/
49+
"additionalProperties"?: { [key: string]: any };
50+
/**
51+
* @ignore
52+
*/
53+
"_unparsed"?: boolean;
54+
55+
/**
56+
* @ignore
57+
*/
58+
static readonly attributeTypeMap: AttributeTypeMap = {
59+
auth: {
60+
baseName: "auth",
61+
type: "ObservabilityPipelineGcpAuth",
62+
},
63+
encoding: {
64+
baseName: "encoding",
65+
type: "ObservabilityPipelineGooglePubSubDestinationEncoding",
66+
required: true,
67+
},
68+
id: {
69+
baseName: "id",
70+
type: "string",
71+
required: true,
72+
},
73+
inputs: {
74+
baseName: "inputs",
75+
type: "Array<string>",
76+
required: true,
77+
},
78+
project: {
79+
baseName: "project",
80+
type: "string",
81+
required: true,
82+
},
83+
tls: {
84+
baseName: "tls",
85+
type: "ObservabilityPipelineTls",
86+
},
87+
topic: {
88+
baseName: "topic",
89+
type: "string",
90+
required: true,
91+
},
92+
type: {
93+
baseName: "type",
94+
type: "ObservabilityPipelineGooglePubSubDestinationType",
95+
required: true,
96+
},
97+
additionalProperties: {
98+
baseName: "additionalProperties",
99+
type: "{ [key: string]: any; }",
100+
},
101+
};
102+
103+
/**
104+
* @ignore
105+
*/
106+
static getAttributeTypeMap(): AttributeTypeMap {
107+
return ObservabilityPipelineGooglePubSubDestination.attributeTypeMap;
108+
}
109+
110+
public constructor() {}
111+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { UnparsedObject } from "@datadog/datadog-api-client";
2+
3+
/**
4+
* Encoding format for log events.
5+
*/
6+
export type ObservabilityPipelineGooglePubSubDestinationEncoding =
7+
| typeof JSON
8+
| typeof RAW_MESSAGE
9+
| UnparsedObject;
10+
export const JSON = "json";
11+
export const RAW_MESSAGE = "raw_message";
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { UnparsedObject } from "@datadog/datadog-api-client";
2+
3+
/**
4+
* The destination type. The value should always be `google_pubsub`.
5+
*/
6+
export type ObservabilityPipelineGooglePubSubDestinationType =
7+
| typeof GOOGLE_PUBSUB
8+
| UnparsedObject;
9+
export const GOOGLE_PUBSUB = "google_pubsub";

services/observability_pipelines/src/v2/models/TypingInfo.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import { ObservabilityPipelineGeneratedMetricIncrementByField } from "./Observab
4545
import { ObservabilityPipelineGeneratedMetricIncrementByOne } from "./ObservabilityPipelineGeneratedMetricIncrementByOne";
4646
import { ObservabilityPipelineGoogleChronicleDestination } from "./ObservabilityPipelineGoogleChronicleDestination";
4747
import { ObservabilityPipelineGoogleCloudStorageDestination } from "./ObservabilityPipelineGoogleCloudStorageDestination";
48+
import { ObservabilityPipelineGooglePubSubDestination } from "./ObservabilityPipelineGooglePubSubDestination";
4849
import { ObservabilityPipelineGooglePubSubSource } from "./ObservabilityPipelineGooglePubSubSource";
4950
import { ObservabilityPipelineHttpClientSource } from "./ObservabilityPipelineHttpClientSource";
5051
import { ObservabilityPipelineHttpServerSource } from "./ObservabilityPipelineHttpServerSource";
@@ -219,6 +220,11 @@ export const TypingInfo: ModelTypingInfo = {
219220
ObservabilityPipelineGoogleCloudStorageDestinationType: [
220221
"google_cloud_storage",
221222
],
223+
ObservabilityPipelineGooglePubSubDestinationEncoding: [
224+
"json",
225+
"raw_message",
226+
],
227+
ObservabilityPipelineGooglePubSubDestinationType: ["google_pubsub"],
222228
ObservabilityPipelineGooglePubSubSourceType: ["google_pubsub"],
223229
ObservabilityPipelineHttpClientSourceAuthStrategy: ["basic", "bearer"],
224230
ObservabilityPipelineHttpClientSourceType: ["http_client"],
@@ -369,6 +375,7 @@ export const TypingInfo: ModelTypingInfo = {
369375
"ObservabilityPipelineSocketDestination",
370376
"ObservabilityPipelineAmazonSecurityLakeDestination",
371377
"ObservabilityPipelineCrowdStrikeNextGenSiemDestination",
378+
"ObservabilityPipelineGooglePubSubDestination",
372379
],
373380
ObservabilityPipelineConfigProcessorItem: [
374381
"ObservabilityPipelineFilterProcessor",
@@ -514,6 +521,8 @@ export const TypingInfo: ModelTypingInfo = {
514521
ObservabilityPipelineGoogleChronicleDestination,
515522
ObservabilityPipelineGoogleCloudStorageDestination:
516523
ObservabilityPipelineGoogleCloudStorageDestination,
524+
ObservabilityPipelineGooglePubSubDestination:
525+
ObservabilityPipelineGooglePubSubDestination,
517526
ObservabilityPipelineGooglePubSubSource:
518527
ObservabilityPipelineGooglePubSubSource,
519528
ObservabilityPipelineHttpClientSource:

0 commit comments

Comments
 (0)