@ancplua/qyl-api-schema 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 +201 -0
- package/README.md +89 -0
- package/VERSIONING.md +74 -0
- package/api/routes.tsp +1052 -0
- package/api/streaming.tsp +335 -0
- package/common/errors.tsp +206 -0
- package/common/pagination.tsp +254 -0
- package/common/types.tsp +345 -0
- package/generated/README.md +26 -0
- package/generated/otel-keys.gen.tsp +1648 -0
- package/index.tsp +55 -0
- package/intelligence/causal-rules.tsp +34 -0
- package/intelligence/diagnostic-patterns.tsp +54 -0
- package/intelligence/investigation-strategies.tsp +37 -0
- package/intelligence/main.tsp +19 -0
- package/intelligence/seed/patterns.tsp +172 -0
- package/intelligence/seed/rules.tsp +44 -0
- package/intelligence/seed/strategies.tsp +56 -0
- package/intelligence/signals.tsp +60 -0
- package/models/agent/agent-run.tsp +154 -0
- package/models/agent/tool-call.tsp +122 -0
- package/models/agent/workflow-checkpoint.tsp +50 -0
- package/models/agent/workflow-execution.tsp +136 -0
- package/models/alerting.tsp +436 -0
- package/models/configurator.tsp +433 -0
- package/models/control-graph.tsp +197 -0
- package/models/db.tsp +810 -0
- package/models/deployment.tsp +365 -0
- package/models/error.tsp +433 -0
- package/models/genai.tsp +1368 -0
- package/models/http.tsp +600 -0
- package/models/identity.tsp +213 -0
- package/models/issues.tsp +484 -0
- package/models/log.tsp +140 -0
- package/models/messaging.tsp +304 -0
- package/models/otel-config.tsp +455 -0
- package/models/retention.tsp +240 -0
- package/models/rpc.tsp +309 -0
- package/models/search.tsp +243 -0
- package/models/session.tsp +274 -0
- package/models/system.tsp +400 -0
- package/models/test.tsp +346 -0
- package/models/triage.tsp +113 -0
- package/models/workflow.tsp +396 -0
- package/models/workspace.tsp +435 -0
- package/otel/enums.tsp +392 -0
- package/otel/logs.tsp +135 -0
- package/otel/metrics.tsp +358 -0
- package/otel/otel-conventions.tsp +14 -0
- package/otel/profiles.tsp +335 -0
- package/otel/resource.tsp +257 -0
- package/otel/span.tsp +307 -0
- package/package.json +88 -0
- package/tspconfig.yaml +49 -0
package/otel/enums.tsp
ADDED
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// ANcpLua v2.0 - OpenTelemetry Core Enumerations
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// All OTel standard enumerations following Semantic Conventions v1.40.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
namespace Qyl.Api.Contracts.OTel.Enums;
|
|
8
|
+
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Span Enumerations
|
|
11
|
+
// =============================================================================
|
|
12
|
+
|
|
13
|
+
@doc("Span kind describing the relationship between spans")
|
|
14
|
+
enum SpanKind {
|
|
15
|
+
@doc("Default. Internal operation within the application")
|
|
16
|
+
unspecified: 0,
|
|
17
|
+
|
|
18
|
+
@doc("Internal operation within the application")
|
|
19
|
+
internal: 1,
|
|
20
|
+
|
|
21
|
+
@doc("Server-side operation handling a request")
|
|
22
|
+
server: 2,
|
|
23
|
+
|
|
24
|
+
@doc("Client-side operation making a request")
|
|
25
|
+
client: 3,
|
|
26
|
+
|
|
27
|
+
@doc("Producer creating a message for async processing")
|
|
28
|
+
producer: 4,
|
|
29
|
+
|
|
30
|
+
@doc("Consumer processing a message")
|
|
31
|
+
consumer: 5,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@doc("Span status code")
|
|
35
|
+
enum SpanStatusCode {
|
|
36
|
+
@doc("Status not set")
|
|
37
|
+
unset: 0,
|
|
38
|
+
|
|
39
|
+
@doc("Operation completed successfully")
|
|
40
|
+
ok: 1,
|
|
41
|
+
|
|
42
|
+
@doc("Operation failed with an error")
|
|
43
|
+
error: 2,
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@doc("Span flags as defined in W3C Trace Context")
|
|
47
|
+
enum SpanFlags {
|
|
48
|
+
@doc("No flags set")
|
|
49
|
+
none: 0x00,
|
|
50
|
+
|
|
51
|
+
@doc("Trace is sampled")
|
|
52
|
+
sampled: 0x01,
|
|
53
|
+
|
|
54
|
+
@doc("Trace is random (non-deterministic)")
|
|
55
|
+
random: 0x02,
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// =============================================================================
|
|
59
|
+
// Log Enumerations
|
|
60
|
+
// =============================================================================
|
|
61
|
+
|
|
62
|
+
@doc("Log severity number following OTel specification (1-24)")
|
|
63
|
+
enum SeverityNumber {
|
|
64
|
+
@doc("Unspecified severity")
|
|
65
|
+
unspecified: 0,
|
|
66
|
+
|
|
67
|
+
@doc("TRACE level")
|
|
68
|
+
trace: 1,
|
|
69
|
+
|
|
70
|
+
@doc("TRACE2 level")
|
|
71
|
+
trace2: 2,
|
|
72
|
+
|
|
73
|
+
@doc("TRACE3 level")
|
|
74
|
+
trace3: 3,
|
|
75
|
+
|
|
76
|
+
@doc("TRACE4 level")
|
|
77
|
+
trace4: 4,
|
|
78
|
+
|
|
79
|
+
@doc("DEBUG level")
|
|
80
|
+
debug: 5,
|
|
81
|
+
|
|
82
|
+
@doc("DEBUG2 level")
|
|
83
|
+
debug2: 6,
|
|
84
|
+
|
|
85
|
+
@doc("DEBUG3 level")
|
|
86
|
+
debug3: 7,
|
|
87
|
+
|
|
88
|
+
@doc("DEBUG4 level")
|
|
89
|
+
debug4: 8,
|
|
90
|
+
|
|
91
|
+
@doc("INFO level")
|
|
92
|
+
info: 9,
|
|
93
|
+
|
|
94
|
+
@doc("INFO2 level")
|
|
95
|
+
info2: 10,
|
|
96
|
+
|
|
97
|
+
@doc("INFO3 level")
|
|
98
|
+
info3: 11,
|
|
99
|
+
|
|
100
|
+
@doc("INFO4 level")
|
|
101
|
+
info4: 12,
|
|
102
|
+
|
|
103
|
+
@doc("WARN level")
|
|
104
|
+
warn: 13,
|
|
105
|
+
|
|
106
|
+
@doc("WARN2 level")
|
|
107
|
+
warn2: 14,
|
|
108
|
+
|
|
109
|
+
@doc("WARN3 level")
|
|
110
|
+
warn3: 15,
|
|
111
|
+
|
|
112
|
+
@doc("WARN4 level")
|
|
113
|
+
warn4: 16,
|
|
114
|
+
|
|
115
|
+
@doc("ERROR level")
|
|
116
|
+
error: 17,
|
|
117
|
+
|
|
118
|
+
@doc("ERROR2 level")
|
|
119
|
+
error2: 18,
|
|
120
|
+
|
|
121
|
+
@doc("ERROR3 level")
|
|
122
|
+
error3: 19,
|
|
123
|
+
|
|
124
|
+
@doc("ERROR4 level")
|
|
125
|
+
error4: 20,
|
|
126
|
+
|
|
127
|
+
@doc("FATAL level")
|
|
128
|
+
fatal: 21,
|
|
129
|
+
|
|
130
|
+
@doc("FATAL2 level")
|
|
131
|
+
fatal2: 22,
|
|
132
|
+
|
|
133
|
+
@doc("FATAL3 level")
|
|
134
|
+
fatal3: 23,
|
|
135
|
+
|
|
136
|
+
@doc("FATAL4 level")
|
|
137
|
+
fatal4: 24,
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@doc("Log severity text (human-readable)")
|
|
141
|
+
enum SeverityText {
|
|
142
|
+
@doc("Trace level logging")
|
|
143
|
+
TRACE: "TRACE",
|
|
144
|
+
|
|
145
|
+
@doc("Debug level logging")
|
|
146
|
+
DEBUG: "DEBUG",
|
|
147
|
+
|
|
148
|
+
@doc("Informational logging")
|
|
149
|
+
INFO: "INFO",
|
|
150
|
+
|
|
151
|
+
@doc("Warning level logging")
|
|
152
|
+
WARN: "WARN",
|
|
153
|
+
|
|
154
|
+
@doc("Error level logging")
|
|
155
|
+
ERROR: "ERROR",
|
|
156
|
+
|
|
157
|
+
@doc("Fatal/critical level logging")
|
|
158
|
+
FATAL: "FATAL",
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// =============================================================================
|
|
162
|
+
// Metric Enumerations
|
|
163
|
+
// =============================================================================
|
|
164
|
+
|
|
165
|
+
@doc("Metric data type")
|
|
166
|
+
enum MetricType {
|
|
167
|
+
@doc("Gauge - instantaneous value")
|
|
168
|
+
gauge: "gauge",
|
|
169
|
+
|
|
170
|
+
@doc("Sum - monotonic or non-monotonic counter")
|
|
171
|
+
sum: "sum",
|
|
172
|
+
|
|
173
|
+
@doc("Histogram - distribution of values")
|
|
174
|
+
histogram: "histogram",
|
|
175
|
+
|
|
176
|
+
@doc("Exponential histogram - distribution with exponential buckets")
|
|
177
|
+
exponentialHistogram: "exponential_histogram",
|
|
178
|
+
|
|
179
|
+
@doc("Summary - pre-aggregated quantiles")
|
|
180
|
+
summary: "summary",
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@doc("Aggregation temporality for metrics")
|
|
184
|
+
enum AggregationTemporality {
|
|
185
|
+
@doc("Unspecified temporality")
|
|
186
|
+
unspecified: 0,
|
|
187
|
+
|
|
188
|
+
@doc("Delta - values since last report")
|
|
189
|
+
delta: 1,
|
|
190
|
+
|
|
191
|
+
@doc("Cumulative - values since start")
|
|
192
|
+
cumulative: 2,
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@doc("Data point flags")
|
|
196
|
+
enum DataPointFlags {
|
|
197
|
+
@doc("No flags set")
|
|
198
|
+
none: 0,
|
|
199
|
+
|
|
200
|
+
@doc("Value is absent (no measurement)")
|
|
201
|
+
noRecordedValue: 1,
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@doc("Metric instrument kinds per OTel specification")
|
|
205
|
+
enum InstrumentKind {
|
|
206
|
+
@doc("Counter - monotonically increasing cumulative sum")
|
|
207
|
+
counter: "Counter",
|
|
208
|
+
|
|
209
|
+
@doc("UpDownCounter - can increase or decrease")
|
|
210
|
+
upDownCounter: "UpDownCounter",
|
|
211
|
+
|
|
212
|
+
@doc("Histogram - distribution of values with buckets")
|
|
213
|
+
histogram: "Histogram",
|
|
214
|
+
|
|
215
|
+
@doc("Gauge - instantaneous value at read time")
|
|
216
|
+
gauge: "Gauge",
|
|
217
|
+
|
|
218
|
+
@doc("Observable counter - async counter with callback")
|
|
219
|
+
observableCounter: "ObservableCounter",
|
|
220
|
+
|
|
221
|
+
@doc("Observable gauge - async gauge with callback")
|
|
222
|
+
observableGauge: "ObservableGauge",
|
|
223
|
+
|
|
224
|
+
@doc("Observable up-down counter - async up-down with callback")
|
|
225
|
+
observableUpDownCounter: "ObservableUpDownCounter",
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// =============================================================================
|
|
229
|
+
// Resource Enumerations
|
|
230
|
+
// =============================================================================
|
|
231
|
+
|
|
232
|
+
@doc("Telemetry SDK language")
|
|
233
|
+
enum TelemetrySdkLanguage {
|
|
234
|
+
@doc("C++")
|
|
235
|
+
cpp: "cpp",
|
|
236
|
+
|
|
237
|
+
@doc(".NET (C#, F#, VB.NET)")
|
|
238
|
+
dotnet: "dotnet",
|
|
239
|
+
|
|
240
|
+
@doc("Erlang")
|
|
241
|
+
erlang: "erlang",
|
|
242
|
+
|
|
243
|
+
@doc("Go")
|
|
244
|
+
go: "go",
|
|
245
|
+
|
|
246
|
+
@doc("Java")
|
|
247
|
+
java: "java",
|
|
248
|
+
|
|
249
|
+
@doc("Node.js")
|
|
250
|
+
nodejs: "nodejs",
|
|
251
|
+
|
|
252
|
+
@doc("PHP")
|
|
253
|
+
php: "php",
|
|
254
|
+
|
|
255
|
+
@doc("Python")
|
|
256
|
+
python: "python",
|
|
257
|
+
|
|
258
|
+
@doc("Ruby")
|
|
259
|
+
ruby: "ruby",
|
|
260
|
+
|
|
261
|
+
@doc("Rust")
|
|
262
|
+
rust: "rust",
|
|
263
|
+
|
|
264
|
+
@doc("Swift")
|
|
265
|
+
swift: "swift",
|
|
266
|
+
|
|
267
|
+
@doc("Web browser JavaScript")
|
|
268
|
+
webjs: "webjs",
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
// =============================================================================
|
|
272
|
+
// Error Enumerations
|
|
273
|
+
// =============================================================================
|
|
274
|
+
|
|
275
|
+
@doc("Standardized error types")
|
|
276
|
+
enum ErrorType {
|
|
277
|
+
@doc("Generic error")
|
|
278
|
+
error: "_OTHER",
|
|
279
|
+
|
|
280
|
+
@doc("Timeout error")
|
|
281
|
+
timeout: "TIMEOUT",
|
|
282
|
+
|
|
283
|
+
@doc("Connection refused")
|
|
284
|
+
connectionRefused: "CONNECTION_REFUSED",
|
|
285
|
+
|
|
286
|
+
@doc("DNS resolution failed")
|
|
287
|
+
dnsError: "DNS_ERROR",
|
|
288
|
+
|
|
289
|
+
@doc("TLS/SSL handshake error")
|
|
290
|
+
tlsError: "TLS_ERROR",
|
|
291
|
+
|
|
292
|
+
@doc("Authentication failed")
|
|
293
|
+
authError: "AUTH_ERROR",
|
|
294
|
+
|
|
295
|
+
@doc("Permission denied")
|
|
296
|
+
permissionDenied: "PERMISSION_DENIED",
|
|
297
|
+
|
|
298
|
+
@doc("Resource not found")
|
|
299
|
+
notFound: "NOT_FOUND",
|
|
300
|
+
|
|
301
|
+
@doc("Resource exhausted/rate limited")
|
|
302
|
+
resourceExhausted: "RESOURCE_EXHAUSTED",
|
|
303
|
+
|
|
304
|
+
@doc("Invalid argument")
|
|
305
|
+
invalidArgument: "INVALID_ARGUMENT",
|
|
306
|
+
|
|
307
|
+
@doc("Operation cancelled")
|
|
308
|
+
cancelled: "CANCELLED",
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// =============================================================================
|
|
312
|
+
// Event Domain Types
|
|
313
|
+
// =============================================================================
|
|
314
|
+
|
|
315
|
+
@doc("Event domain (namespace for event types)")
|
|
316
|
+
enum EventDomain {
|
|
317
|
+
@doc("Browser/RUM events")
|
|
318
|
+
browser: "browser",
|
|
319
|
+
|
|
320
|
+
@doc("Device events")
|
|
321
|
+
device: "device",
|
|
322
|
+
|
|
323
|
+
@doc("Kubernetes events")
|
|
324
|
+
k8s: "k8s",
|
|
325
|
+
|
|
326
|
+
@doc("User/session lifecycle events")
|
|
327
|
+
session: "session",
|
|
328
|
+
|
|
329
|
+
@doc("GenAI events")
|
|
330
|
+
genAi: "gen_ai",
|
|
331
|
+
|
|
332
|
+
@doc("Exception events")
|
|
333
|
+
exception: "exception",
|
|
334
|
+
|
|
335
|
+
@doc("Log events")
|
|
336
|
+
log: "log",
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
// =============================================================================
|
|
340
|
+
// Profile Enumerations (v1development, Development stability)
|
|
341
|
+
// =============================================================================
|
|
342
|
+
|
|
343
|
+
@doc("Original payload format for profile data")
|
|
344
|
+
enum OriginalPayloadFormat {
|
|
345
|
+
@doc("Google pprof format (original_payload SHOULD NOT be populated — lossless mapping)")
|
|
346
|
+
pprof: "pprof",
|
|
347
|
+
|
|
348
|
+
@doc("Java Flight Recorder")
|
|
349
|
+
jfr: "jfr",
|
|
350
|
+
|
|
351
|
+
@doc("Linux perf.data format")
|
|
352
|
+
linuxPerf: "linux_perf",
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
@doc("Profile frame type — interpreter or compiler of a single frame")
|
|
356
|
+
enum ProfileFrameType {
|
|
357
|
+
@doc("Erlang (BEAM VM)")
|
|
358
|
+
beam: "beam",
|
|
359
|
+
|
|
360
|
+
@doc("Python (CPython)")
|
|
361
|
+
cpython: "cpython",
|
|
362
|
+
|
|
363
|
+
@doc(".NET")
|
|
364
|
+
dotnet: "dotnet",
|
|
365
|
+
|
|
366
|
+
@doc("Go")
|
|
367
|
+
go: "go",
|
|
368
|
+
|
|
369
|
+
@doc("JVM")
|
|
370
|
+
jvm: "jvm",
|
|
371
|
+
|
|
372
|
+
@doc("OS Kernel")
|
|
373
|
+
kernel: "kernel",
|
|
374
|
+
|
|
375
|
+
@doc("C, C++, Go, Rust (use more precise value if possible)")
|
|
376
|
+
native: "native",
|
|
377
|
+
|
|
378
|
+
@doc("Perl")
|
|
379
|
+
perl: "perl",
|
|
380
|
+
|
|
381
|
+
@doc("PHP")
|
|
382
|
+
php: "php",
|
|
383
|
+
|
|
384
|
+
@doc("Ruby")
|
|
385
|
+
ruby: "ruby",
|
|
386
|
+
|
|
387
|
+
@doc("Rust")
|
|
388
|
+
rust: "rust",
|
|
389
|
+
|
|
390
|
+
@doc("V8 JavaScript engine")
|
|
391
|
+
v8js: "v8js",
|
|
392
|
+
}
|
package/otel/logs.tsp
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// ANcpLua v2.0 - OpenTelemetry Log Record Model
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Structured logging following OTel log data model.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
import "@typespec/http";
|
|
8
|
+
import "@typespec/openapi";
|
|
9
|
+
import "../common/types.tsp";
|
|
10
|
+
import "./enums.tsp";
|
|
11
|
+
import "./resource.tsp";
|
|
12
|
+
|
|
13
|
+
using TypeSpec.Http;
|
|
14
|
+
using TypeSpec.OpenAPI;
|
|
15
|
+
using Qyl.Api.Contracts.Common;
|
|
16
|
+
using Qyl.Api.Contracts.OTel.Enums;
|
|
17
|
+
using Qyl.Api.Contracts.OTel.Resource;
|
|
18
|
+
|
|
19
|
+
namespace Qyl.Api.Contracts.OTel.Logs;
|
|
20
|
+
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Log Record Model
|
|
23
|
+
// =============================================================================
|
|
24
|
+
|
|
25
|
+
@doc("OpenTelemetry Log Record")
|
|
26
|
+
model LogRecord {
|
|
27
|
+
@doc("Timestamp when the event occurred (nanoseconds since epoch)")
|
|
28
|
+
@encodedName("application/json", "time_unix_nano")
|
|
29
|
+
timeUnixNano: UnixNanos;
|
|
30
|
+
|
|
31
|
+
@doc("Timestamp when the log was observed/collected (nanoseconds since epoch)")
|
|
32
|
+
@encodedName("application/json", "observed_time_unix_nano")
|
|
33
|
+
observedTimeUnixNano: UnixNanos;
|
|
34
|
+
|
|
35
|
+
@doc("Severity number (1-24)")
|
|
36
|
+
@encodedName("application/json", "severity_number")
|
|
37
|
+
severityNumber: SeverityNumber;
|
|
38
|
+
|
|
39
|
+
@doc("Severity text (DEBUG, INFO, WARN, ERROR, etc.)")
|
|
40
|
+
@encodedName("application/json", "severity_text")
|
|
41
|
+
severityText?: SeverityText;
|
|
42
|
+
|
|
43
|
+
@doc("Log body - the main content")
|
|
44
|
+
body: LogBody;
|
|
45
|
+
|
|
46
|
+
@doc("Log attributes")
|
|
47
|
+
attributes?: Attribute[];
|
|
48
|
+
|
|
49
|
+
@doc("Dropped attributes count")
|
|
50
|
+
@encodedName("application/json", "dropped_attributes_count")
|
|
51
|
+
droppedAttributesCount?: Count;
|
|
52
|
+
|
|
53
|
+
@doc("Flags (trace flags)")
|
|
54
|
+
flags?: int32;
|
|
55
|
+
|
|
56
|
+
@doc("Associated trace ID")
|
|
57
|
+
@encodedName("application/json", "trace_id")
|
|
58
|
+
traceId?: TraceId;
|
|
59
|
+
|
|
60
|
+
@doc("Associated span ID")
|
|
61
|
+
@encodedName("application/json", "span_id")
|
|
62
|
+
spanId?: SpanId;
|
|
63
|
+
|
|
64
|
+
@doc("Resource describing the entity that produced this log")
|
|
65
|
+
resource: Qyl.Api.Contracts.OTel.Resource.Resource;
|
|
66
|
+
|
|
67
|
+
@doc("Instrumentation scope")
|
|
68
|
+
@encodedName("application/json", "instrumentation_scope")
|
|
69
|
+
instrumentationScope?: InstrumentationScope;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// =============================================================================
|
|
73
|
+
// Log Body Types (Discriminated Union)
|
|
74
|
+
// =============================================================================
|
|
75
|
+
|
|
76
|
+
@doc("Log body content - can be string, structured, or bytes")
|
|
77
|
+
@discriminated(#{ envelope: "none" })
|
|
78
|
+
union LogBody {
|
|
79
|
+
@doc("Plain string body")
|
|
80
|
+
stringBody: LogBodyString,
|
|
81
|
+
|
|
82
|
+
@doc("Structured key-value body")
|
|
83
|
+
kvListBody: LogBodyKvList,
|
|
84
|
+
|
|
85
|
+
@doc("Array body")
|
|
86
|
+
arrayBody: LogBodyArray,
|
|
87
|
+
|
|
88
|
+
@doc("Binary body")
|
|
89
|
+
bytesBody: LogBodyBytes,
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@doc("String log body")
|
|
93
|
+
model LogBodyString {
|
|
94
|
+
@doc("String value")
|
|
95
|
+
@encodedName("application/json", "string_value")
|
|
96
|
+
stringValue: string;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@doc("Structured key-value log body")
|
|
100
|
+
model LogBodyKvList {
|
|
101
|
+
@doc("Key-value pairs")
|
|
102
|
+
@encodedName("application/json", "kv_list_value")
|
|
103
|
+
kvListValue: Attribute[];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@doc("Array log body")
|
|
107
|
+
model LogBodyArray {
|
|
108
|
+
@doc("Array of values")
|
|
109
|
+
@encodedName("application/json", "array_value")
|
|
110
|
+
arrayValue: AttributeValue[];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@doc("Binary log body")
|
|
114
|
+
model LogBodyBytes {
|
|
115
|
+
@doc("Binary value (base64 encoded)")
|
|
116
|
+
@encodedName("application/json", "bytes_value")
|
|
117
|
+
bytesValue: bytes;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// =============================================================================
|
|
121
|
+
// Structured Log Templates
|
|
122
|
+
// =============================================================================
|
|
123
|
+
|
|
124
|
+
@doc("Log message template with placeholders")
|
|
125
|
+
model LogTemplate {
|
|
126
|
+
@doc("Template string with {placeholder} syntax")
|
|
127
|
+
template: string;
|
|
128
|
+
|
|
129
|
+
@doc("Template parameters")
|
|
130
|
+
parameters: Attribute[];
|
|
131
|
+
|
|
132
|
+
@doc("Rendered message")
|
|
133
|
+
@encodedName("application/json", "rendered_message")
|
|
134
|
+
renderedMessage?: string;
|
|
135
|
+
}
|