@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.
Files changed (54) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +89 -0
  3. package/VERSIONING.md +74 -0
  4. package/api/routes.tsp +1052 -0
  5. package/api/streaming.tsp +335 -0
  6. package/common/errors.tsp +206 -0
  7. package/common/pagination.tsp +254 -0
  8. package/common/types.tsp +345 -0
  9. package/generated/README.md +26 -0
  10. package/generated/otel-keys.gen.tsp +1648 -0
  11. package/index.tsp +55 -0
  12. package/intelligence/causal-rules.tsp +34 -0
  13. package/intelligence/diagnostic-patterns.tsp +54 -0
  14. package/intelligence/investigation-strategies.tsp +37 -0
  15. package/intelligence/main.tsp +19 -0
  16. package/intelligence/seed/patterns.tsp +172 -0
  17. package/intelligence/seed/rules.tsp +44 -0
  18. package/intelligence/seed/strategies.tsp +56 -0
  19. package/intelligence/signals.tsp +60 -0
  20. package/models/agent/agent-run.tsp +154 -0
  21. package/models/agent/tool-call.tsp +122 -0
  22. package/models/agent/workflow-checkpoint.tsp +50 -0
  23. package/models/agent/workflow-execution.tsp +136 -0
  24. package/models/alerting.tsp +436 -0
  25. package/models/configurator.tsp +433 -0
  26. package/models/control-graph.tsp +197 -0
  27. package/models/db.tsp +810 -0
  28. package/models/deployment.tsp +365 -0
  29. package/models/error.tsp +433 -0
  30. package/models/genai.tsp +1368 -0
  31. package/models/http.tsp +600 -0
  32. package/models/identity.tsp +213 -0
  33. package/models/issues.tsp +484 -0
  34. package/models/log.tsp +140 -0
  35. package/models/messaging.tsp +304 -0
  36. package/models/otel-config.tsp +455 -0
  37. package/models/retention.tsp +240 -0
  38. package/models/rpc.tsp +309 -0
  39. package/models/search.tsp +243 -0
  40. package/models/session.tsp +274 -0
  41. package/models/system.tsp +400 -0
  42. package/models/test.tsp +346 -0
  43. package/models/triage.tsp +113 -0
  44. package/models/workflow.tsp +396 -0
  45. package/models/workspace.tsp +435 -0
  46. package/otel/enums.tsp +392 -0
  47. package/otel/logs.tsp +135 -0
  48. package/otel/metrics.tsp +358 -0
  49. package/otel/otel-conventions.tsp +14 -0
  50. package/otel/profiles.tsp +335 -0
  51. package/otel/resource.tsp +257 -0
  52. package/otel/span.tsp +307 -0
  53. package/package.json +88 -0
  54. package/tspconfig.yaml +49 -0
@@ -0,0 +1,365 @@
1
+ // =============================================================================
2
+ // ANcpLua v2.0 - Deployment Semantic Conventions (OTel v1.40)
3
+ // =============================================================================
4
+ // Deployment/release telemetry attributes.
5
+ // =============================================================================
6
+
7
+ import "@typespec/openapi";
8
+ import "../common/types.tsp";
9
+
10
+ using TypeSpec.OpenAPI;
11
+ using Qyl.Api.Contracts.Common;
12
+
13
+ namespace Qyl.Api.Contracts.Domains.Ops.Deployment;
14
+
15
+ // =============================================================================
16
+ // Deployment Attributes
17
+ // =============================================================================
18
+
19
+ @doc("Deployment resource attributes")
20
+ model DeploymentAttributes {
21
+ @doc("Deployment environment name")
22
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
23
+ environmentName?: string;
24
+
25
+ @doc("Deployment ID")
26
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Id)
27
+ id?: string;
28
+
29
+ @doc("Deployment name")
30
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Name)
31
+ name?: string;
32
+
33
+ @doc("Deployment status")
34
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Status)
35
+ status?: DeploymentStatus;
36
+ }
37
+
38
+ // =============================================================================
39
+ // Deployment Enumerations
40
+ // =============================================================================
41
+
42
+ @doc("Deployment environments")
43
+ enum DeploymentEnvironment {
44
+ @doc("Development environment")
45
+ development: "development",
46
+
47
+ @doc("Testing environment")
48
+ testing: "testing",
49
+
50
+ @doc("Staging environment")
51
+ staging: "staging",
52
+
53
+ @doc("Production environment")
54
+ production: "production",
55
+
56
+ @doc("Preview/ephemeral environment")
57
+ preview: "preview",
58
+
59
+ @doc("Canary environment")
60
+ canary: "canary",
61
+ }
62
+
63
+ @doc("Deployment status")
64
+ enum DeploymentStatus {
65
+ @doc("Deployment pending")
66
+ pending: "pending",
67
+
68
+ @doc("Deployment in progress")
69
+ inProgress: "in_progress",
70
+
71
+ @doc("Deployment succeeded")
72
+ success: "success",
73
+
74
+ @doc("Deployment failed")
75
+ failed: "failed",
76
+
77
+ @doc("Deployment rolled back")
78
+ rolledBack: "rolled_back",
79
+
80
+ @doc("Deployment cancelled")
81
+ cancelled: "cancelled",
82
+ }
83
+
84
+ @doc("Deployment strategies")
85
+ enum DeploymentStrategy {
86
+ @doc("Rolling update")
87
+ rolling: "rolling",
88
+
89
+ @doc("Blue-green deployment")
90
+ blueGreen: "blue_green",
91
+
92
+ @doc("Canary deployment")
93
+ canary: "canary",
94
+
95
+ @doc("Recreate (stop old, start new)")
96
+ recreate: "recreate",
97
+
98
+ @doc("A/B testing deployment")
99
+ abTest: "ab_test",
100
+
101
+ @doc("Shadow deployment")
102
+ shadow: "shadow",
103
+
104
+ @doc("Feature flag controlled")
105
+ featureFlag: "feature_flag",
106
+ }
107
+
108
+ // =============================================================================
109
+ // Deployment Entity Model
110
+ // =============================================================================
111
+
112
+ @doc("Complete deployment record")
113
+ @TypeSpec.OpenAPI.extension("x-csharp-type", "DeploymentEntity")
114
+ model DeploymentEntity {
115
+ @doc("Deployment ID")
116
+ @key
117
+ @visibility(Lifecycle.Read)
118
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Id)
119
+ deploymentId: string;
120
+
121
+ @doc("Service name")
122
+ @visibility(Lifecycle.Read, Lifecycle.Create)
123
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
124
+ serviceName: string;
125
+
126
+ @doc("Service version")
127
+ @visibility(Lifecycle.Read, Lifecycle.Create)
128
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Version)
129
+ serviceVersion: SemVer;
130
+
131
+ @doc("Environment")
132
+ @visibility(Lifecycle.Read, Lifecycle.Create)
133
+ environment: DeploymentEnvironment;
134
+
135
+ @doc("Status")
136
+ @visibility(Lifecycle.Read, Lifecycle.Update)
137
+ status: DeploymentStatus;
138
+
139
+ @doc("Strategy")
140
+ @visibility(Lifecycle.Read, Lifecycle.Create)
141
+ strategy: DeploymentStrategy;
142
+
143
+ @doc("Start time")
144
+ @visibility(Lifecycle.Read)
145
+ @encodedName("application/json", "start_time")
146
+ startTime: utcDateTime;
147
+
148
+ @doc("End time")
149
+ @visibility(Lifecycle.Read)
150
+ @encodedName("application/json", "end_time")
151
+ endTime?: utcDateTime;
152
+
153
+ @doc("Duration in seconds")
154
+ @visibility(Lifecycle.Read)
155
+ @encodedName("application/json", "duration_s")
156
+ durationS?: DurationS;
157
+
158
+ @doc("Deployed by (user/system)")
159
+ @visibility(Lifecycle.Read, Lifecycle.Create)
160
+ @encodedName("application/json", "deployed_by")
161
+ deployedBy?: string;
162
+
163
+ @doc("Git commit SHA")
164
+ @visibility(Lifecycle.Read, Lifecycle.Create)
165
+ @encodedName("application/json", "git_commit")
166
+ gitCommit?: string;
167
+
168
+ @doc("Git branch")
169
+ @visibility(Lifecycle.Read, Lifecycle.Create)
170
+ @encodedName("application/json", "git_branch")
171
+ gitBranch?: string;
172
+
173
+ @doc("Previous version")
174
+ @visibility(Lifecycle.Read)
175
+ @encodedName("application/json", "previous_version")
176
+ previousVersion?: SemVer;
177
+
178
+ @doc("Rollback target (if rolled back)")
179
+ @visibility(Lifecycle.Read)
180
+ @encodedName("application/json", "rollback_target")
181
+ rollbackTarget?: string;
182
+
183
+ @doc("Replica count")
184
+ @visibility(Lifecycle.Read)
185
+ @encodedName("application/json", "replica_count")
186
+ replicaCount?: int32;
187
+
188
+ @doc("Healthy replica count")
189
+ @visibility(Lifecycle.Read, Lifecycle.Update)
190
+ @encodedName("application/json", "healthy_replicas")
191
+ healthyReplicas?: int32;
192
+
193
+ @doc("Error message (if failed)")
194
+ @visibility(Lifecycle.Read, Lifecycle.Update)
195
+ @encodedName("application/json", "error_message")
196
+ errorMessage?: string;
197
+ }
198
+
199
+ // =============================================================================
200
+ // Deployment Events
201
+ // =============================================================================
202
+
203
+ @doc("Deployment lifecycle event")
204
+ model DeploymentEvent {
205
+ @doc("Event name")
206
+ @encodedName("application/json", "event.name")
207
+ eventName: DeploymentEventName;
208
+
209
+ @doc("Deployment ID")
210
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Id)
211
+ deploymentId: string;
212
+
213
+ @doc("Service name")
214
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
215
+ serviceName: string;
216
+
217
+ @doc("Environment")
218
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
219
+ environment: DeploymentEnvironment;
220
+
221
+ @doc("Status")
222
+ status: DeploymentStatus;
223
+
224
+ @doc("Event timestamp")
225
+ timestamp: utcDateTime;
226
+ }
227
+
228
+ @doc("Deployment event names")
229
+ enum DeploymentEventName {
230
+ @doc("Deployment started")
231
+ started: "deployment.started",
232
+
233
+ @doc("Deployment completed")
234
+ completed: "deployment.completed",
235
+
236
+ @doc("Deployment failed")
237
+ failed: "deployment.failed",
238
+
239
+ @doc("Deployment rolled back")
240
+ rolledBack: "deployment.rolled_back",
241
+
242
+ @doc("Health check passed")
243
+ healthCheckPassed: "deployment.health_check.passed",
244
+
245
+ @doc("Health check failed")
246
+ healthCheckFailed: "deployment.health_check.failed",
247
+ }
248
+
249
+ // =============================================================================
250
+ // Deployment Metrics
251
+ // =============================================================================
252
+
253
+ @doc("Deployment duration metric")
254
+ model DeploymentDurationMetric {
255
+ @doc("Metric name")
256
+ name: "deployment.duration";
257
+
258
+ @doc("Metric unit (seconds)")
259
+ unit: "s";
260
+
261
+ @doc("Environment")
262
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
263
+ environment: DeploymentEnvironment;
264
+
265
+ @doc("Service name")
266
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
267
+ serviceName: string;
268
+
269
+ @doc("Status")
270
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Status)
271
+ status: DeploymentStatus;
272
+ }
273
+
274
+ @doc("Deployment count metric")
275
+ model DeploymentCountMetric {
276
+ @doc("Metric name")
277
+ name: "deployment.count";
278
+
279
+ @doc("Metric unit")
280
+ unit: "{deployment}";
281
+
282
+ @doc("Environment")
283
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
284
+ environment: DeploymentEnvironment;
285
+
286
+ @doc("Service name")
287
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
288
+ serviceName: string;
289
+
290
+ @doc("Status")
291
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.Status)
292
+ status: DeploymentStatus;
293
+ }
294
+
295
+ // =============================================================================
296
+ // DORA Metrics
297
+ // =============================================================================
298
+
299
+ @doc("DORA deployment frequency metric")
300
+ model DoraDeploymentFrequencyMetric {
301
+ @doc("Metric name")
302
+ name: "dora.deployment_frequency";
303
+
304
+ @doc("Metric unit (deployments per day)")
305
+ unit: "{deployment}/d";
306
+
307
+ @doc("Environment")
308
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
309
+ environment: DeploymentEnvironment;
310
+
311
+ @doc("Service name")
312
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
313
+ serviceName?: string;
314
+ }
315
+
316
+ @doc("DORA lead time for changes metric")
317
+ model DoraLeadTimeMetric {
318
+ @doc("Metric name")
319
+ name: "dora.lead_time_for_changes";
320
+
321
+ @doc("Metric unit (hours)")
322
+ unit: "h";
323
+
324
+ @doc("Environment")
325
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
326
+ environment: DeploymentEnvironment;
327
+
328
+ @doc("Service name")
329
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
330
+ serviceName?: string;
331
+ }
332
+
333
+ @doc("DORA change failure rate metric")
334
+ model DoraChangeFailureRateMetric {
335
+ @doc("Metric name")
336
+ name: "dora.change_failure_rate";
337
+
338
+ @doc("Metric unit (ratio)")
339
+ unit: "1";
340
+
341
+ @doc("Environment")
342
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
343
+ environment: DeploymentEnvironment;
344
+
345
+ @doc("Service name")
346
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
347
+ serviceName?: string;
348
+ }
349
+
350
+ @doc("DORA mean time to recovery metric")
351
+ model DoraMttrMetric {
352
+ @doc("Metric name")
353
+ name: "dora.mttr";
354
+
355
+ @doc("Metric unit (hours)")
356
+ unit: "h";
357
+
358
+ @doc("Environment")
359
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Deployment.EnvironmentName)
360
+ environment: DeploymentEnvironment;
361
+
362
+ @doc("Service name")
363
+ @encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Service.Name)
364
+ serviceName?: string;
365
+ }