autotel-aws 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +540 -0
- package/dist/attributes.cjs +49 -0
- package/dist/attributes.cjs.map +1 -0
- package/dist/attributes.d.cts +117 -0
- package/dist/attributes.d.ts +117 -0
- package/dist/attributes.js +4 -0
- package/dist/attributes.js.map +1 -0
- package/dist/chunk-35F3UBOO.cjs +48 -0
- package/dist/chunk-35F3UBOO.cjs.map +1 -0
- package/dist/chunk-4TGVGEUN.cjs +84 -0
- package/dist/chunk-4TGVGEUN.cjs.map +1 -0
- package/dist/chunk-CIGXV6HA.js +192 -0
- package/dist/chunk-CIGXV6HA.js.map +1 -0
- package/dist/chunk-D5INYMRP.cjs +350 -0
- package/dist/chunk-D5INYMRP.cjs.map +1 -0
- package/dist/chunk-DF5PT3JK.js +387 -0
- package/dist/chunk-DF5PT3JK.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +10 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-DHHLKZHI.cjs +23 -0
- package/dist/chunk-DHHLKZHI.cjs.map +1 -0
- package/dist/chunk-FKZOELBT.js +78 -0
- package/dist/chunk-FKZOELBT.js.map +1 -0
- package/dist/chunk-HMTKKKKP.cjs +390 -0
- package/dist/chunk-HMTKKKKP.cjs.map +1 -0
- package/dist/chunk-I4CKQ4RD.js +153 -0
- package/dist/chunk-I4CKQ4RD.js.map +1 -0
- package/dist/chunk-JEQ2X3Z6.cjs +12 -0
- package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
- package/dist/chunk-JMSFE6FJ.js +24 -0
- package/dist/chunk-JMSFE6FJ.js.map +1 -0
- package/dist/chunk-KUIOI74B.cjs +394 -0
- package/dist/chunk-KUIOI74B.cjs.map +1 -0
- package/dist/chunk-NQ65Y5AI.cjs +195 -0
- package/dist/chunk-NQ65Y5AI.cjs.map +1 -0
- package/dist/chunk-OB4XTAVK.cjs +345 -0
- package/dist/chunk-OB4XTAVK.cjs.map +1 -0
- package/dist/chunk-OHFR7WX5.js +341 -0
- package/dist/chunk-OHFR7WX5.js.map +1 -0
- package/dist/chunk-PZGYL7XZ.js +40 -0
- package/dist/chunk-PZGYL7XZ.js.map +1 -0
- package/dist/chunk-Q3DMMQ7K.cjs +164 -0
- package/dist/chunk-Q3DMMQ7K.cjs.map +1 -0
- package/dist/chunk-UZEJV2YD.cjs +139 -0
- package/dist/chunk-UZEJV2YD.cjs.map +1 -0
- package/dist/chunk-V4IQWFYN.js +341 -0
- package/dist/chunk-V4IQWFYN.js.map +1 -0
- package/dist/chunk-VZHQH75L.cjs +26 -0
- package/dist/chunk-VZHQH75L.cjs.map +1 -0
- package/dist/chunk-X6BY6PCK.js +386 -0
- package/dist/chunk-X6BY6PCK.js.map +1 -0
- package/dist/chunk-YG56NRIO.js +131 -0
- package/dist/chunk-YG56NRIO.js.map +1 -0
- package/dist/chunk-ZPDRKCAR.js +21 -0
- package/dist/chunk-ZPDRKCAR.js.map +1 -0
- package/dist/config-C7zV8Zm6.d.cts +125 -0
- package/dist/config-DxjTT8jd.d.ts +125 -0
- package/dist/dynamodb.cjs +14 -0
- package/dist/dynamodb.cjs.map +1 -0
- package/dist/dynamodb.d.cts +93 -0
- package/dist/dynamodb.d.ts +93 -0
- package/dist/dynamodb.js +5 -0
- package/dist/dynamodb.js.map +1 -0
- package/dist/eventbridge.cjs +279 -0
- package/dist/eventbridge.cjs.map +1 -0
- package/dist/eventbridge.d.cts +360 -0
- package/dist/eventbridge.d.ts +360 -0
- package/dist/eventbridge.js +273 -0
- package/dist/eventbridge.js.map +1 -0
- package/dist/index.cjs +251 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +126 -0
- package/dist/index.d.ts +126 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/kinesis.cjs +23 -0
- package/dist/kinesis.cjs.map +1 -0
- package/dist/kinesis.d.cts +360 -0
- package/dist/kinesis.d.ts +360 -0
- package/dist/kinesis.js +6 -0
- package/dist/kinesis.js.map +1 -0
- package/dist/lambda-auto.cjs +19 -0
- package/dist/lambda-auto.cjs.map +1 -0
- package/dist/lambda-auto.d.cts +2 -0
- package/dist/lambda-auto.d.ts +2 -0
- package/dist/lambda-auto.js +17 -0
- package/dist/lambda-auto.js.map +1 -0
- package/dist/lambda.cjs +42 -0
- package/dist/lambda.cjs.map +1 -0
- package/dist/lambda.d.cts +231 -0
- package/dist/lambda.d.ts +231 -0
- package/dist/lambda.js +5 -0
- package/dist/lambda.js.map +1 -0
- package/dist/s3.cjs +14 -0
- package/dist/s3.cjs.map +1 -0
- package/dist/s3.d.cts +77 -0
- package/dist/s3.d.ts +77 -0
- package/dist/s3.js +5 -0
- package/dist/s3.js.map +1 -0
- package/dist/sdk.cjs +31 -0
- package/dist/sdk.cjs.map +1 -0
- package/dist/sdk.d.cts +155 -0
- package/dist/sdk.d.ts +155 -0
- package/dist/sdk.js +6 -0
- package/dist/sdk.js.map +1 -0
- package/dist/sns.cjs +19 -0
- package/dist/sns.cjs.map +1 -0
- package/dist/sns.d.cts +256 -0
- package/dist/sns.d.ts +256 -0
- package/dist/sns.js +6 -0
- package/dist/sns.js.map +1 -0
- package/dist/sqs.cjs +23 -0
- package/dist/sqs.cjs.map +1 -0
- package/dist/sqs.d.cts +384 -0
- package/dist/sqs.d.ts +384 -0
- package/dist/sqs.js +6 -0
- package/dist/sqs.js.map +1 -0
- package/dist/step-functions.cjs +35 -0
- package/dist/step-functions.cjs.map +1 -0
- package/dist/step-functions.d.cts +423 -0
- package/dist/step-functions.d.ts +423 -0
- package/dist/step-functions.js +6 -0
- package/dist/step-functions.js.map +1 -0
- package/dist/testing.cjs +61 -0
- package/dist/testing.cjs.map +1 -0
- package/dist/testing.d.cts +39 -0
- package/dist/testing.d.ts +39 -0
- package/dist/testing.js +58 -0
- package/dist/testing.js.map +1 -0
- package/dist/types-3_ak5jhy.d.cts +76 -0
- package/dist/types-3_ak5jhy.d.ts +76 -0
- package/dist/types-UiBv_I_M.d.ts +16 -0
- package/dist/types-kTFVdSqO.d.cts +16 -0
- package/dist/xray.cjs +26 -0
- package/dist/xray.cjs.map +1 -0
- package/dist/xray.d.cts +23 -0
- package/dist/xray.d.ts +23 -0
- package/dist/xray.js +5 -0
- package/dist/xray.js.map +1 -0
- package/package.json +184 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import { TraceContext } from 'autotel';
|
|
2
|
+
import { SpanContext } from '@opentelemetry/api';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* EventBridge instrumentation
|
|
6
|
+
*
|
|
7
|
+
* Provides helpers for tracing Amazon EventBridge operations with
|
|
8
|
+
* automatic W3C Trace Context propagation for distributed tracing.
|
|
9
|
+
*
|
|
10
|
+
* @example Publish events with trace context
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { EventBridgePublisher } from 'autotel-aws/eventbridge';
|
|
13
|
+
* import { EventBridgeClient } from '@aws-sdk/client-eventbridge';
|
|
14
|
+
*
|
|
15
|
+
* const client = new EventBridgeClient({ region: 'us-east-1' });
|
|
16
|
+
* const publisher = new EventBridgePublisher(client, {
|
|
17
|
+
* eventBusName: 'my-event-bus',
|
|
18
|
+
* source: 'com.myapp.orders'
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Publish with automatic trace context injection
|
|
22
|
+
* await publisher.putEvent({
|
|
23
|
+
* detailType: 'OrderCreated',
|
|
24
|
+
* detail: { orderId: '123', customerId: 'abc' }
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example Extract context in Lambda triggered by EventBridge
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { extractEventBridgeContext } from 'autotel-aws/eventbridge';
|
|
31
|
+
* import { wrapHandler } from 'autotel-aws/lambda';
|
|
32
|
+
*
|
|
33
|
+
* export const handler = wrapHandler(async (event) => {
|
|
34
|
+
* // Extract trace context from EventBridge event detail
|
|
35
|
+
* const parentContext = extractEventBridgeContext(event);
|
|
36
|
+
*
|
|
37
|
+
* // Process the event
|
|
38
|
+
* const { orderId, customerId } = event.detail;
|
|
39
|
+
* await processOrder(orderId, customerId);
|
|
40
|
+
*
|
|
41
|
+
* return { statusCode: 200 };
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example Trace EventBridge operations with helper
|
|
46
|
+
* ```typescript
|
|
47
|
+
* import { traceEventBridge } from 'autotel-aws/eventbridge';
|
|
48
|
+
*
|
|
49
|
+
* export const publishOrderEvent = traceEventBridge({
|
|
50
|
+
* eventBus: 'orders-bus',
|
|
51
|
+
* source: 'order-service',
|
|
52
|
+
* detailType: 'OrderCreated'
|
|
53
|
+
* })(ctx => async (order: Order) => {
|
|
54
|
+
* ctx.setAttribute('order.id', order.id);
|
|
55
|
+
* await eventBridge.send(new PutEventsCommand({
|
|
56
|
+
* Entries: [{
|
|
57
|
+
* EventBusName: 'orders-bus',
|
|
58
|
+
* Source: 'order-service',
|
|
59
|
+
* DetailType: 'OrderCreated',
|
|
60
|
+
* Detail: JSON.stringify(injectEventBridgeContext(order))
|
|
61
|
+
* }]
|
|
62
|
+
* }));
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* EventBridge operation configuration for traceEventBridge helper
|
|
69
|
+
*/
|
|
70
|
+
interface TraceEventBridgeConfig {
|
|
71
|
+
/**
|
|
72
|
+
* Event bus name or ARN
|
|
73
|
+
*/
|
|
74
|
+
eventBus: string;
|
|
75
|
+
/**
|
|
76
|
+
* Event source (e.g., 'com.myapp.orders')
|
|
77
|
+
*/
|
|
78
|
+
source: string;
|
|
79
|
+
/**
|
|
80
|
+
* Event detail type (e.g., 'OrderCreated')
|
|
81
|
+
*/
|
|
82
|
+
detailType: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Configuration for EventBridgePublisher
|
|
86
|
+
*/
|
|
87
|
+
interface EventBridgePublisherConfig {
|
|
88
|
+
/**
|
|
89
|
+
* Event bus name or ARN
|
|
90
|
+
* @default 'default' (the account's default event bus)
|
|
91
|
+
*/
|
|
92
|
+
eventBusName?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Event source (e.g., 'com.myapp.orders')
|
|
95
|
+
*/
|
|
96
|
+
source: string;
|
|
97
|
+
/**
|
|
98
|
+
* Inject W3C Trace Context into event detail
|
|
99
|
+
* @default true
|
|
100
|
+
*/
|
|
101
|
+
injectTraceContext?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Optional service name for tracing
|
|
104
|
+
*/
|
|
105
|
+
service?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Event to publish via EventBridgePublisher
|
|
109
|
+
*/
|
|
110
|
+
interface EventBridgeEvent<T = Record<string, unknown>> {
|
|
111
|
+
/**
|
|
112
|
+
* Event detail type (e.g., 'OrderCreated', 'UserSignedUp')
|
|
113
|
+
*/
|
|
114
|
+
detailType: string;
|
|
115
|
+
/**
|
|
116
|
+
* Event detail (the actual payload)
|
|
117
|
+
*/
|
|
118
|
+
detail: T;
|
|
119
|
+
/**
|
|
120
|
+
* Optional resources ARNs associated with the event
|
|
121
|
+
*/
|
|
122
|
+
resources?: string[];
|
|
123
|
+
/**
|
|
124
|
+
* Optional time for the event (defaults to current time)
|
|
125
|
+
*/
|
|
126
|
+
time?: Date;
|
|
127
|
+
/**
|
|
128
|
+
* Optional trace header (for X-Ray integration)
|
|
129
|
+
*/
|
|
130
|
+
traceHeader?: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Trace context fields injected into EventBridge detail
|
|
134
|
+
*/
|
|
135
|
+
interface TraceContextFields {
|
|
136
|
+
_traceContext?: {
|
|
137
|
+
traceparent: string;
|
|
138
|
+
tracestate?: string;
|
|
139
|
+
baggage?: string;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* EventBridge event structure (Lambda event format)
|
|
144
|
+
*/
|
|
145
|
+
interface EventBridgeLambdaEvent {
|
|
146
|
+
version?: string;
|
|
147
|
+
id?: string;
|
|
148
|
+
'detail-type'?: string;
|
|
149
|
+
source?: string;
|
|
150
|
+
account?: string;
|
|
151
|
+
time?: string;
|
|
152
|
+
region?: string;
|
|
153
|
+
resources?: string[];
|
|
154
|
+
detail?: Record<string, unknown> & TraceContextFields;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Inject W3C Trace Context into EventBridge event detail
|
|
158
|
+
*
|
|
159
|
+
* Adds `_traceContext` field with traceparent, tracestate, and baggage.
|
|
160
|
+
* This enables distributed tracing from the publisher to all event consumers.
|
|
161
|
+
*
|
|
162
|
+
* @param detail - The event detail object
|
|
163
|
+
* @returns Detail with trace context injected
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* const detail = { orderId: '123', status: 'created' };
|
|
168
|
+
* const detailWithContext = injectEventBridgeContext(detail);
|
|
169
|
+
* // { orderId: '123', status: 'created', _traceContext: { traceparent: '...' } }
|
|
170
|
+
*
|
|
171
|
+
* await eventBridge.send(new PutEventsCommand({
|
|
172
|
+
* Entries: [{
|
|
173
|
+
* EventBusName: 'my-bus',
|
|
174
|
+
* Source: 'my-app',
|
|
175
|
+
* DetailType: 'OrderCreated',
|
|
176
|
+
* Detail: JSON.stringify(detailWithContext)
|
|
177
|
+
* }]
|
|
178
|
+
* }));
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
declare function injectEventBridgeContext<T extends Record<string, unknown>>(detail: T): T & TraceContextFields;
|
|
182
|
+
/**
|
|
183
|
+
* Extract W3C Trace Context from EventBridge Lambda event
|
|
184
|
+
*
|
|
185
|
+
* Extracts the `_traceContext` field from the event detail.
|
|
186
|
+
* Works with the Lambda event format from EventBridge rules.
|
|
187
|
+
*
|
|
188
|
+
* @param event - EventBridge Lambda event
|
|
189
|
+
* @returns SpanContext if trace context was found, undefined otherwise
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* // In a Lambda triggered by EventBridge
|
|
194
|
+
* export const handler = async (event: EventBridgeLambdaEvent) => {
|
|
195
|
+
* const parentContext = extractEventBridgeContext(event);
|
|
196
|
+
* // Use parentContext to link traces...
|
|
197
|
+
*
|
|
198
|
+
* // Access detail without trace context
|
|
199
|
+
* const cleanDetail = stripEventBridgeContext(event.detail);
|
|
200
|
+
* };
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
declare function extractEventBridgeContext(event: EventBridgeLambdaEvent): SpanContext | undefined;
|
|
204
|
+
/**
|
|
205
|
+
* Strip trace context fields from EventBridge event detail
|
|
206
|
+
*
|
|
207
|
+
* Returns the detail without `_traceContext` field for cleaner processing.
|
|
208
|
+
*
|
|
209
|
+
* @param detail - EventBridge event detail with optional trace context
|
|
210
|
+
* @returns Detail without trace context fields
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* const detail = { orderId: '123', _traceContext: { ... } };
|
|
215
|
+
* const cleanDetail = stripEventBridgeContext(detail);
|
|
216
|
+
* // { orderId: '123' }
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
declare function stripEventBridgeContext<T extends Record<string, unknown>>(detail: T): Omit<T, '_traceContext'>;
|
|
220
|
+
/**
|
|
221
|
+
* Trace EventBridge operations with semantic attributes
|
|
222
|
+
*
|
|
223
|
+
* Creates a traced function that automatically sets EventBridge attributes.
|
|
224
|
+
*
|
|
225
|
+
* @param config - EventBridge operation configuration
|
|
226
|
+
* @returns A higher-order function that wraps your EventBridge operation with tracing
|
|
227
|
+
*
|
|
228
|
+
* @remarks
|
|
229
|
+
* Semantic attributes set automatically:
|
|
230
|
+
* - `aws.eventbridge.event_bus` - Event bus name
|
|
231
|
+
* - `aws.eventbridge.source` - Event source
|
|
232
|
+
* - `aws.eventbridge.detail_type` - Event detail type
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* export const publishOrderEvent = traceEventBridge({
|
|
237
|
+
* eventBus: 'orders-bus',
|
|
238
|
+
* source: 'order-service',
|
|
239
|
+
* detailType: 'OrderCreated'
|
|
240
|
+
* })(ctx => async (order: Order) => {
|
|
241
|
+
* ctx.setAttribute('order.id', order.id);
|
|
242
|
+
*
|
|
243
|
+
* const detail = injectEventBridgeContext(order);
|
|
244
|
+
* await eventBridge.send(new PutEventsCommand({
|
|
245
|
+
* Entries: [{
|
|
246
|
+
* EventBusName: 'orders-bus',
|
|
247
|
+
* Source: 'order-service',
|
|
248
|
+
* DetailType: 'OrderCreated',
|
|
249
|
+
* Detail: JSON.stringify(detail)
|
|
250
|
+
* }]
|
|
251
|
+
* }));
|
|
252
|
+
* });
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
declare function traceEventBridge(config: TraceEventBridgeConfig): <TArgs extends unknown[], TReturn>(fn: (ctx: TraceContext) => (...args: TArgs) => Promise<TReturn>) => (...args: TArgs) => Promise<TReturn>;
|
|
256
|
+
/**
|
|
257
|
+
* EventBridge Publisher with automatic trace context injection
|
|
258
|
+
*
|
|
259
|
+
* Wraps an EventBridge client to automatically:
|
|
260
|
+
* - Create spans for PutEvents operations
|
|
261
|
+
* - Inject W3C Trace Context into event detail
|
|
262
|
+
* - Set proper semantic attributes
|
|
263
|
+
*
|
|
264
|
+
* @example Basic usage
|
|
265
|
+
* ```typescript
|
|
266
|
+
* import { EventBridgePublisher } from 'autotel-aws/eventbridge';
|
|
267
|
+
* import { EventBridgeClient } from '@aws-sdk/client-eventbridge';
|
|
268
|
+
*
|
|
269
|
+
* const client = new EventBridgeClient({ region: 'us-east-1' });
|
|
270
|
+
* const publisher = new EventBridgePublisher(client, {
|
|
271
|
+
* eventBusName: 'my-event-bus',
|
|
272
|
+
* source: 'com.myapp.orders'
|
|
273
|
+
* });
|
|
274
|
+
*
|
|
275
|
+
* // Publish single event
|
|
276
|
+
* const result = await publisher.putEvent({
|
|
277
|
+
* detailType: 'OrderCreated',
|
|
278
|
+
* detail: { orderId: '123', customerId: 'abc' }
|
|
279
|
+
* });
|
|
280
|
+
* console.log('Event ID:', result.eventId);
|
|
281
|
+
* ```
|
|
282
|
+
*
|
|
283
|
+
* @example Batch publish multiple events
|
|
284
|
+
* ```typescript
|
|
285
|
+
* const results = await publisher.putEvents([
|
|
286
|
+
* { detailType: 'OrderCreated', detail: { orderId: '1' } },
|
|
287
|
+
* { detailType: 'OrderCreated', detail: { orderId: '2' } },
|
|
288
|
+
* { detailType: 'OrderCreated', detail: { orderId: '3' } }
|
|
289
|
+
* ]);
|
|
290
|
+
*
|
|
291
|
+
* console.log(`Published ${results.successful.length} events`);
|
|
292
|
+
* console.log(`Failed ${results.failed.length} events`);
|
|
293
|
+
* ```
|
|
294
|
+
*
|
|
295
|
+
* @example Multiple sources
|
|
296
|
+
* ```typescript
|
|
297
|
+
* // Create publishers for different event sources
|
|
298
|
+
* const ordersPublisher = new EventBridgePublisher(client, {
|
|
299
|
+
* source: 'com.myapp.orders'
|
|
300
|
+
* });
|
|
301
|
+
*
|
|
302
|
+
* const usersPublisher = new EventBridgePublisher(client, {
|
|
303
|
+
* source: 'com.myapp.users'
|
|
304
|
+
* });
|
|
305
|
+
*
|
|
306
|
+
* await ordersPublisher.putEvent({ detailType: 'OrderCreated', detail: {...} });
|
|
307
|
+
* await usersPublisher.putEvent({ detailType: 'UserSignedUp', detail: {...} });
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
declare class EventBridgePublisher<TClient extends {
|
|
311
|
+
send: (command: any) => Promise<any>;
|
|
312
|
+
} = any> {
|
|
313
|
+
private client;
|
|
314
|
+
private config;
|
|
315
|
+
constructor(client: TClient, config: EventBridgePublisherConfig);
|
|
316
|
+
/**
|
|
317
|
+
* Publish a single event to EventBridge
|
|
318
|
+
*
|
|
319
|
+
* @param event - Event to publish
|
|
320
|
+
* @returns Promise with event ID (if successful)
|
|
321
|
+
*/
|
|
322
|
+
putEvent<T extends Record<string, unknown>>(event: EventBridgeEvent<T>): Promise<{
|
|
323
|
+
eventId?: string;
|
|
324
|
+
failedEntryCount?: number;
|
|
325
|
+
}>;
|
|
326
|
+
/**
|
|
327
|
+
* Publish multiple events in a batch
|
|
328
|
+
*
|
|
329
|
+
* @param events - Array of events to publish (max 10 per API call)
|
|
330
|
+
* @returns Promise with successful and failed event results
|
|
331
|
+
*/
|
|
332
|
+
putEvents<T extends Record<string, unknown>>(events: EventBridgeEvent<T>[]): Promise<{
|
|
333
|
+
successful: Array<{
|
|
334
|
+
eventId?: string;
|
|
335
|
+
detailType: string;
|
|
336
|
+
}>;
|
|
337
|
+
failed: Array<{
|
|
338
|
+
errorCode?: string;
|
|
339
|
+
errorMessage?: string;
|
|
340
|
+
detailType: string;
|
|
341
|
+
}>;
|
|
342
|
+
failedEntryCount: number;
|
|
343
|
+
}>;
|
|
344
|
+
/**
|
|
345
|
+
* Publish event with override source
|
|
346
|
+
*
|
|
347
|
+
* Use when you need to publish to a different source than the default.
|
|
348
|
+
*
|
|
349
|
+
* @param event - Event with source override
|
|
350
|
+
* @returns Promise with event ID
|
|
351
|
+
*/
|
|
352
|
+
putEventWithSource<T extends Record<string, unknown>>(event: EventBridgeEvent<T> & {
|
|
353
|
+
source: string;
|
|
354
|
+
}): Promise<{
|
|
355
|
+
eventId?: string;
|
|
356
|
+
failedEntryCount?: number;
|
|
357
|
+
}>;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
export { type EventBridgeEvent, type EventBridgeLambdaEvent, EventBridgePublisher, type EventBridgePublisherConfig, type TraceEventBridgeConfig, extractEventBridgeContext, injectEventBridgeContext, stripEventBridgeContext, traceEventBridge };
|