@rustrak/client 0.18.1 → 0.19.1

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 (119) hide show
  1. package/README.md +325 -123
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/dist/client.cjs +86 -0
  4. package/dist/client.cjs.map +1 -0
  5. package/dist/client.d.cts +18 -0
  6. package/dist/client.d.cts.map +1 -0
  7. package/dist/client.d.mts +18 -0
  8. package/dist/client.d.mts.map +1 -0
  9. package/dist/client.mjs +86 -0
  10. package/dist/client.mjs.map +1 -0
  11. package/dist/config.d.cts +10 -0
  12. package/dist/config.d.cts.map +1 -0
  13. package/dist/config.d.mts +10 -0
  14. package/dist/config.d.mts.map +1 -0
  15. package/dist/errors.cjs +52 -0
  16. package/dist/errors.cjs.map +1 -0
  17. package/dist/errors.d.cts +77 -0
  18. package/dist/errors.d.cts.map +1 -0
  19. package/dist/errors.d.mts +77 -0
  20. package/dist/errors.d.mts.map +1 -0
  21. package/dist/errors.mjs +48 -0
  22. package/dist/errors.mjs.map +1 -0
  23. package/dist/generated/client/client.gen.cjs +174 -0
  24. package/dist/generated/client/client.gen.cjs.map +1 -0
  25. package/dist/generated/client/client.gen.mjs +174 -0
  26. package/dist/generated/client/client.gen.mjs.map +1 -0
  27. package/dist/generated/client/types.gen.d.cts +71 -0
  28. package/dist/generated/client/types.gen.d.cts.map +1 -0
  29. package/dist/generated/client/types.gen.d.mts +71 -0
  30. package/dist/generated/client/types.gen.d.mts.map +1 -0
  31. package/dist/generated/client/utils.gen.cjs +184 -0
  32. package/dist/generated/client/utils.gen.cjs.map +1 -0
  33. package/dist/generated/client/utils.gen.d.cts +21 -0
  34. package/dist/generated/client/utils.gen.d.cts.map +1 -0
  35. package/dist/generated/client/utils.gen.d.mts +21 -0
  36. package/dist/generated/client/utils.gen.d.mts.map +1 -0
  37. package/dist/generated/client/utils.gen.mjs +177 -0
  38. package/dist/generated/client/utils.gen.mjs.map +1 -0
  39. package/dist/generated/client.gen.cjs +7 -0
  40. package/dist/generated/client.gen.cjs.map +1 -0
  41. package/dist/generated/client.gen.mjs +8 -0
  42. package/dist/generated/client.gen.mjs.map +1 -0
  43. package/dist/generated/core/auth.gen.cjs +12 -0
  44. package/dist/generated/core/auth.gen.cjs.map +1 -0
  45. package/dist/generated/core/auth.gen.d.cts +11 -0
  46. package/dist/generated/core/auth.gen.d.cts.map +1 -0
  47. package/dist/generated/core/auth.gen.d.mts +11 -0
  48. package/dist/generated/core/auth.gen.d.mts.map +1 -0
  49. package/dist/generated/core/auth.gen.mjs +12 -0
  50. package/dist/generated/core/auth.gen.mjs.map +1 -0
  51. package/dist/generated/core/bodySerializer.gen.cjs +21 -0
  52. package/dist/generated/core/bodySerializer.gen.cjs.map +1 -0
  53. package/dist/generated/core/bodySerializer.gen.d.cts +15 -0
  54. package/dist/generated/core/bodySerializer.gen.d.cts.map +1 -0
  55. package/dist/generated/core/bodySerializer.gen.d.mts +15 -0
  56. package/dist/generated/core/bodySerializer.gen.d.mts.map +1 -0
  57. package/dist/generated/core/bodySerializer.gen.mjs +20 -0
  58. package/dist/generated/core/bodySerializer.gen.mjs.map +1 -0
  59. package/dist/generated/core/pathSerializer.gen.cjs +87 -0
  60. package/dist/generated/core/pathSerializer.gen.cjs.map +1 -0
  61. package/dist/generated/core/pathSerializer.gen.d.cts +9 -0
  62. package/dist/generated/core/pathSerializer.gen.d.cts.map +1 -0
  63. package/dist/generated/core/pathSerializer.gen.d.mts +9 -0
  64. package/dist/generated/core/pathSerializer.gen.d.mts.map +1 -0
  65. package/dist/generated/core/pathSerializer.gen.mjs +82 -0
  66. package/dist/generated/core/pathSerializer.gen.mjs.map +1 -0
  67. package/dist/generated/core/serverSentEvents.gen.cjs +96 -0
  68. package/dist/generated/core/serverSentEvents.gen.cjs.map +1 -0
  69. package/dist/generated/core/serverSentEvents.gen.d.cts +25 -0
  70. package/dist/generated/core/serverSentEvents.gen.d.cts.map +1 -0
  71. package/dist/generated/core/serverSentEvents.gen.d.mts +25 -0
  72. package/dist/generated/core/serverSentEvents.gen.d.mts.map +1 -0
  73. package/dist/generated/core/serverSentEvents.gen.mjs +96 -0
  74. package/dist/generated/core/serverSentEvents.gen.mjs.map +1 -0
  75. package/dist/generated/core/types.gen.d.cts +27 -0
  76. package/dist/generated/core/types.gen.d.cts.map +1 -0
  77. package/dist/generated/core/types.gen.d.mts +27 -0
  78. package/dist/generated/core/types.gen.d.mts.map +1 -0
  79. package/dist/generated/core/utils.gen.cjs +81 -0
  80. package/dist/generated/core/utils.gen.cjs.map +1 -0
  81. package/dist/generated/core/utils.gen.mjs +78 -0
  82. package/dist/generated/core/utils.gen.mjs.map +1 -0
  83. package/dist/generated/sdk.gen.cjs +3334 -0
  84. package/dist/generated/sdk.gen.cjs.map +1 -0
  85. package/dist/generated/sdk.gen.d.cts +288 -0
  86. package/dist/generated/sdk.gen.d.cts.map +1 -0
  87. package/dist/generated/sdk.gen.d.mts +288 -0
  88. package/dist/generated/sdk.gen.d.mts.map +1 -0
  89. package/dist/generated/sdk.gen.mjs +3305 -0
  90. package/dist/generated/sdk.gen.mjs.map +1 -0
  91. package/dist/generated/types.gen.d.cts +3915 -0
  92. package/dist/generated/types.gen.d.cts.map +1 -0
  93. package/dist/generated/types.gen.d.mts +3915 -0
  94. package/dist/generated/types.gen.d.mts.map +1 -0
  95. package/dist/generated/zod.gen.cjs +3273 -0
  96. package/dist/generated/zod.gen.cjs.map +1 -0
  97. package/dist/generated/zod.gen.mjs +2789 -0
  98. package/dist/generated/zod.gen.mjs.map +1 -0
  99. package/dist/index.cjs +15 -3248
  100. package/dist/index.d.cts +6 -2037
  101. package/dist/index.d.mts +6 -0
  102. package/dist/index.mjs +4 -0
  103. package/dist/result.cjs +59 -0
  104. package/dist/result.cjs.map +1 -0
  105. package/dist/result.d.cts +15 -0
  106. package/dist/result.d.cts.map +1 -0
  107. package/dist/result.d.mts +15 -0
  108. package/dist/result.d.mts.map +1 -0
  109. package/dist/result.mjs +55 -0
  110. package/dist/result.mjs.map +1 -0
  111. package/dist/utils/http.cjs +339 -0
  112. package/dist/utils/http.cjs.map +1 -0
  113. package/dist/utils/http.mjs +336 -0
  114. package/dist/utils/http.mjs.map +1 -0
  115. package/package.json +17 -12
  116. package/dist/index.cjs.map +0 -1
  117. package/dist/index.d.ts +0 -2037
  118. package/dist/index.js +0 -3232
  119. package/dist/index.js.map +0 -1
@@ -0,0 +1,2789 @@
1
+ import * as z from "zod";
2
+ //#region src/generated/zod.gen.ts
3
+ const zAcceptInvitation = z.object({
4
+ password: z.string(),
5
+ token: z.string()
6
+ });
7
+ /**
8
+ * An entry in an issue's activity log. Comments are stored as activity rows of
9
+ * type `note` with `{"text": ...}` in `data` (Sentry models notes as activity).
10
+ */
11
+ const zActivityEntry = z.object({
12
+ created_at: z.iso.datetime({ offset: true }),
13
+ data: z.string(),
14
+ id: z.uuid(),
15
+ issue_id: z.uuid(),
16
+ type: z.string(),
17
+ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable()
18
+ });
19
+ /**
20
+ * avg/p95 duration for one time bucket.
21
+ */
22
+ const zAgentDurationPoint = z.object({
23
+ avg_ms: z.number(),
24
+ bucket: z.iso.datetime({ offset: true }),
25
+ p95_ms: z.number()
26
+ });
27
+ /**
28
+ * One row of the Models table: per response model, the volume, the failures,
29
+ * the latency and the full token split.
30
+ *
31
+ * Cached input and reasoning output are SUBSETS of input/output, not
32
+ * additions — a reader comparing them must not add all four together.
33
+ */
34
+ const zAgentModelRow = z.object({
35
+ avg_ms: z.number(),
36
+ cached_input_tokens: z.number(),
37
+ errors: z.int(),
38
+ input_tokens: z.number(),
39
+ model: z.string(),
40
+ output_tokens: z.number(),
41
+ p95_ms: z.number(),
42
+ reasoning_output_tokens: z.number(),
43
+ requests: z.int(),
44
+ total_tokens: z.number()
45
+ });
46
+ /**
47
+ * Headline numbers for the agents dashboard, over the selected window.
48
+ *
49
+ * Token totals exclude `agent`-type spans throughout, for the same reason
50
+ * the Traces table does: an agent span's usage is a client-side rollup of
51
+ * its `ai_client` children, so counting both double-counts.
52
+ */
53
+ const zAgentSummary = z.object({
54
+ agent_runs: z.int(),
55
+ avg_duration_ms: z.number(),
56
+ error_count: z.int(),
57
+ llm_calls: z.int(),
58
+ p95_duration_ms: z.number(),
59
+ tool_calls: z.int(),
60
+ total_tokens: z.number()
61
+ });
62
+ /**
63
+ * One time-bucketed value (count or sum) — mirrors `SessionTimeseriesPoint`.
64
+ */
65
+ const zAgentTimeseriesPoint = z.object({
66
+ bucket: z.iso.datetime({ offset: true }),
67
+ value: z.number()
68
+ });
69
+ /**
70
+ * One row of the Tools table: per tool, how often it ran and how often it
71
+ * failed. A tool with a high failure rate is the most actionable signal the
72
+ * agents page can carry.
73
+ */
74
+ const zAgentToolRow = z.object({
75
+ avg_ms: z.number(),
76
+ calls: z.int(),
77
+ errors: z.int(),
78
+ p95_ms: z.number(),
79
+ tool: z.string()
80
+ });
81
+ z.object({
82
+ agent_names: z.array(z.string()),
83
+ duration_ms: z.number().nullable(),
84
+ error_count: z.int(),
85
+ llm_call_count: z.int(),
86
+ started_at: z.iso.datetime({ offset: true }),
87
+ tool_call_count: z.int(),
88
+ total_tokens: z.number(),
89
+ trace_id: z.string()
90
+ });
91
+ /**
92
+ * DTO for a channel with routing override in rule create/update
93
+ */
94
+ const zAlertRuleChannelInput = z.object({
95
+ integration_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
96
+ routing_override: z.record(z.string(), z.unknown()).optional()
97
+ });
98
+ /**
99
+ * Status of an alert delivery attempt
100
+ */
101
+ const zAlertStatus = z.enum([
102
+ "pending",
103
+ "sent",
104
+ "failed",
105
+ "skipped"
106
+ ]);
107
+ /**
108
+ * Alert delivery history record (audit log and retry queue)
109
+ */
110
+ const zAlertHistory = z.object({
111
+ alert_rule_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
112
+ alert_type: z.string(),
113
+ attempt_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
114
+ channel_name: z.string(),
115
+ channel_type: z.string(),
116
+ created_at: z.iso.datetime({ offset: true }),
117
+ error_message: z.string().nullable(),
118
+ http_status_code: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
119
+ id: z.int(),
120
+ idempotency_key: z.string(),
121
+ integration_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
122
+ issue_id: z.uuid().nullable(),
123
+ next_retry_at: z.iso.datetime({ offset: true }).nullable(),
124
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
125
+ sent_at: z.iso.datetime({ offset: true }).nullable(),
126
+ status: zAlertStatus
127
+ });
128
+ /**
129
+ * Type of alert trigger
130
+ */
131
+ const zAlertType = z.enum([
132
+ "new_issue",
133
+ "regression",
134
+ "unmute"
135
+ ]);
136
+ /**
137
+ * Response for alert rule including linked integration info
138
+ */
139
+ const zAlertRuleResponse = z.object({
140
+ alert_type: zAlertType,
141
+ channels: z.array(zAlertRuleChannelInput),
142
+ conditions: z.record(z.string(), z.unknown()),
143
+ cooldown_minutes: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
144
+ created_at: z.iso.datetime({ offset: true }),
145
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
146
+ integration_ids: z.array(z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })),
147
+ is_enabled: z.boolean(),
148
+ last_triggered_at: z.iso.datetime({ offset: true }).nullable(),
149
+ name: z.string(),
150
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
151
+ updated_at: z.iso.datetime({ offset: true })
152
+ });
153
+ const zAssembleBody = z.object({
154
+ checksum: z.string(),
155
+ chunks: z.array(z.string()),
156
+ projects: z.array(z.string())
157
+ });
158
+ const zAssembleResponse = z.object({
159
+ detail: z.string().nullish(),
160
+ missingChunks: z.array(z.string()),
161
+ state: z.string()
162
+ });
163
+ /**
164
+ * Response that includes the full token (only on creation)
165
+ */
166
+ const zAuthTokenCreatedResponse = z.object({
167
+ created_at: z.iso.datetime({ offset: true }),
168
+ description: z.string().nullable(),
169
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
170
+ token: z.string()
171
+ });
172
+ /**
173
+ * Response for listing (token is masked)
174
+ */
175
+ const zAuthTokenResponse = z.object({
176
+ created_at: z.iso.datetime({ offset: true }),
177
+ description: z.string().nullable(),
178
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
179
+ last_used_at: z.iso.datetime({ offset: true }).nullable(),
180
+ token_prefix: z.string()
181
+ });
182
+ /**
183
+ * What the consent page shows about the client asking.
184
+ */
185
+ const zAuthorizationInfo = z.object({
186
+ client_id: z.string(),
187
+ client_name: z.string(),
188
+ redirect_host: z.string()
189
+ });
190
+ /**
191
+ * Where the consent page sends the browser next.
192
+ */
193
+ const zAuthorizationRedirect = z.object({ redirect_to: z.string() });
194
+ /**
195
+ * An authorization request, as the client put it in the authorize URL.
196
+ */
197
+ const zAuthorizationRequest = z.object({
198
+ client_id: z.string(),
199
+ code_challenge: z.string(),
200
+ code_challenge_method: z.string(),
201
+ redirect_uri: z.string(),
202
+ resource: z.string().nullish(),
203
+ response_type: z.string(),
204
+ state: z.string().nullish()
205
+ });
206
+ /**
207
+ * The user's answer to a consent screen.
208
+ */
209
+ const zAuthorizationDecision = zAuthorizationRequest.and(z.object({ approve: z.boolean() }));
210
+ const zBookmarkResponse = z.object({ is_bookmarked: z.boolean() });
211
+ const zBulkDeleteResponse = z.object({ deleted: z.int() });
212
+ const zBulkUpdateResponse = z.object({ updated: z.int() });
213
+ const zChangePasswordRequest = z.object({
214
+ current_password: z.string(),
215
+ new_password: z.string()
216
+ });
217
+ /**
218
+ * Status of one check-in. `Missed` and `Timeout` are only ever set by the
219
+ * server.
220
+ */
221
+ const zCheckInStatus = z.enum([
222
+ "ok",
223
+ "error",
224
+ "in_progress",
225
+ "missed",
226
+ "timeout",
227
+ "unknown"
228
+ ]);
229
+ /**
230
+ * One check-in, as the dashboard reads it.
231
+ */
232
+ const zCheckInResponse = z.object({
233
+ date_added: z.iso.datetime({ offset: true }),
234
+ date_updated: z.iso.datetime({ offset: true }),
235
+ duration_ms: z.int().nullable(),
236
+ environment: z.string(),
237
+ expected_time: z.iso.datetime({ offset: true }).nullable(),
238
+ id: z.uuid(),
239
+ status: zCheckInStatus
240
+ });
241
+ /**
242
+ * Multipart chunk upload.
243
+ * Each part's **field name** may be the SHA-1 hex digest of that part's binary content
244
+ * (sentry-cli v2 protocol, e.g. `da39a3ee5e6b4b0d3255bfef95601890afd80709`) or an arbitrary
245
+ * name like `file` (sentry-cli v3.x). Up to 64 parts per request; each part body is raw binary.
246
+ */
247
+ const zChunkUploadBody = z.record(z.string(), z.unknown());
248
+ /**
249
+ * Chunk upload capabilities, in sentry-cli's camelCase.
250
+ */
251
+ const zChunkUploadOptions = z.object({
252
+ accept: z.array(z.string()),
253
+ chunkSize: z.int().gte(0),
254
+ chunksPerRequest: z.int().gte(0),
255
+ compression: z.array(z.string()),
256
+ concurrency: z.int().gte(0),
257
+ hashAlgorithm: z.string(),
258
+ maxRequestSize: z.int().gte(0),
259
+ url: z.string()
260
+ });
261
+ /**
262
+ * Rows affected by a cleanup, used symmetrically for the dry-run preview ("what
263
+ * would be removed") and the executed result ("what was removed"). `spans` are
264
+ * counted directly even though they cascade from `transactions`, so the UI can
265
+ * show the true row impact. `issues_removed` is the number of issues that would
266
+ * be left with zero events and therefore deleted.
267
+ */
268
+ const zCleanupCounts = z.object({
269
+ events: z.int(),
270
+ issues_removed: z.int(),
271
+ logs: z.int(),
272
+ source_maps: z.int(),
273
+ spans: z.int(),
274
+ transactions: z.int()
275
+ });
276
+ /**
277
+ * How often the cleanup that enforces retention runs.
278
+ */
279
+ const zCleanupFrequency = z.enum(["daily", "weekly"]);
280
+ /**
281
+ * Request body for a cleanup (preview or execute): remove data older than
282
+ * `older_than_days`, optionally scoped to a single project (omit for all).
283
+ *
284
+ * `older_than_days` must be at least 1 — the service rejects smaller values,
285
+ * since a window of 0 (or negative) would move the cutoff to now/the future and
286
+ * purge the entire dataset.
287
+ */
288
+ const zCleanupRequest = z.object({
289
+ include_events: z.boolean().optional(),
290
+ include_logs: z.boolean().optional(),
291
+ include_transactions: z.boolean().optional(),
292
+ older_than_days: z.int().gte(1),
293
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullish()
294
+ });
295
+ /**
296
+ * Where the instance's cleanup job is. There is at most one at a time.
297
+ */
298
+ const zCleanupState = z.enum([
299
+ "idle",
300
+ "running",
301
+ "completed",
302
+ "failed"
303
+ ]);
304
+ /**
305
+ * The cleanup job as the API reports it. Kept in memory: a restart forgets
306
+ * it, and a run cut short by one is simply run again, since every batch it
307
+ * committed is already gone.
308
+ */
309
+ const zCleanupStatus = z.object({
310
+ error: z.string().nullable(),
311
+ finished_at: z.iso.datetime({ offset: true }).nullable(),
312
+ removed: zCleanupCounts,
313
+ started_at: z.iso.datetime({ offset: true }).nullable(),
314
+ state: zCleanupState
315
+ });
316
+ /**
317
+ * Maps a path as it appears in a stack trace to the path in the repository.
318
+ */
319
+ const zCodeMapping = z.object({
320
+ source_root: z.string(),
321
+ stack_root: z.string()
322
+ });
323
+ /**
324
+ * Body for creating an issue comment (note).
325
+ */
326
+ const zCommentRequest = z.object({ text: z.string() });
327
+ const zConfirmSsoLinkRequest = z.object({ password: z.string() });
328
+ /**
329
+ * DTO for creating an alert rule
330
+ */
331
+ const zCreateAlertRule = z.object({
332
+ alert_type: zAlertType,
333
+ channels: z.array(zAlertRuleChannelInput).optional(),
334
+ conditions: z.record(z.string(), z.unknown()).optional(),
335
+ cooldown_minutes: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).optional(),
336
+ name: z.string()
337
+ });
338
+ /**
339
+ * DTO for creating a new token
340
+ */
341
+ const zCreateAuthToken = z.object({ description: z.string().nullish() });
342
+ const zCreateGitHubIssue = z.object({
343
+ body: z.string().nullish(),
344
+ title: z.string().nullish()
345
+ });
346
+ /**
347
+ * DTO for creating a new project
348
+ */
349
+ const zCreateProject = z.object({
350
+ name: z.string(),
351
+ platform: z.string().nullish(),
352
+ slug: z.string().nullish()
353
+ });
354
+ /**
355
+ * DTO for `POST .../releases/`.
356
+ */
357
+ const zCreateRelease = z.object({
358
+ ref: z.string().nullish(),
359
+ url: z.string().nullish(),
360
+ version: z.string()
361
+ });
362
+ const zCreateUserRequest = z.object({
363
+ email: z.string(),
364
+ password: z.string()
365
+ });
366
+ /**
367
+ * Response for API (full detail)
368
+ */
369
+ const zEventDetailResponse = z.object({
370
+ data: z.record(z.string(), z.unknown()),
371
+ environment: z.string(),
372
+ event_id: z.string(),
373
+ event_type: z.string(),
374
+ id: z.uuid(),
375
+ ingested_at: z.iso.datetime({ offset: true }),
376
+ issue_id: z.uuid().nullable(),
377
+ level: z.string(),
378
+ platform: z.string(),
379
+ release: z.string(),
380
+ sdk_name: z.string(),
381
+ sdk_version: z.string(),
382
+ server_name: z.string(),
383
+ timestamp: z.iso.datetime({ offset: true }),
384
+ title: z.string()
385
+ });
386
+ z.object({
387
+ environment: z.string(),
388
+ event_id: z.string(),
389
+ event_type: z.string(),
390
+ id: z.uuid(),
391
+ issue_id: z.uuid().nullable(),
392
+ level: z.string(),
393
+ platform: z.string(),
394
+ release: z.string(),
395
+ timestamp: z.iso.datetime({ offset: true }),
396
+ title: z.string()
397
+ });
398
+ /**
399
+ * One time-bucketed point in a project's error-event volume, split by severity.
400
+ *
401
+ * `total` always equals `fatal + error + warning + info`: `info` absorbs
402
+ * `debug` and any level the SDK sent that we do not model, so the stacked
403
+ * segments of a chart always sum to the bar height and no events silently
404
+ * vanish from the series.
405
+ */
406
+ const zEventTimeseriesPoint = z.object({
407
+ bucket: z.iso.datetime({ offset: true }),
408
+ error: z.int(),
409
+ fatal: z.int(),
410
+ info: z.int(),
411
+ total: z.int(),
412
+ warning: z.int()
413
+ });
414
+ /**
415
+ * The closed vocabulary a [`FieldError`] may use.
416
+ *
417
+ * Deliberately small and resource-agnostic: a large or per-endpoint
418
+ * vocabulary becomes a public API that cannot be versioned. Adding a variant
419
+ * is a wire change and requires the matching addition to the TypeScript union
420
+ * in `packages/client/src/errors.ts`, which
421
+ * `packages/client/tests/unit/app-error-contract.test.ts` enforces by parsing
422
+ * this enum out of this file.
423
+ */
424
+ const zFieldErrorCode = z.enum([
425
+ "required",
426
+ "invalid",
427
+ "already_exists",
428
+ "too_short",
429
+ "too_long",
430
+ "custom"
431
+ ]);
432
+ /**
433
+ * One rejected input, named as data rather than buried in the prose of
434
+ * [`ErrorDetail::message`].
435
+ *
436
+ * `field` is a **dot path into the request body** (`slug`,
437
+ * `credentials.webhook_url`), not a JSON Pointer and not a UI label: a
438
+ * consumer feeds it straight to a form library's `setError`.
439
+ *
440
+ * The rejected *value* is deliberately never echoed back. One careless
441
+ * application to a password input would put a credential in the log store.
442
+ *
443
+ * The three fields are private on purpose. [`Self::new`] and [`Self::custom`]
444
+ * are the only ways to build one, which is what makes "`message` is populated
445
+ * only alongside [`FieldErrorCode::Custom`]" an invariant the compiler holds
446
+ * rather than a convention a struct literal could quietly break.
447
+ */
448
+ const zFieldError = z.object({
449
+ code: zFieldErrorCode,
450
+ field: z.string(),
451
+ message: z.string().optional()
452
+ });
453
+ const zErrorDetail = z.object({
454
+ fields: z.array(zFieldError).optional(),
455
+ incident_id: z.string().optional(),
456
+ message: z.string(),
457
+ type: z.string()
458
+ });
459
+ z.object({ error: zErrorDetail });
460
+ /**
461
+ * One row of a "top N by X" breakdown (model or tool name).
462
+ */
463
+ const zGenAiBreakdownRow = z.object({
464
+ label: z.string(),
465
+ value: z.number()
466
+ });
467
+ const zGitHubAppInfo = z.object({
468
+ app_id: z.int(),
469
+ created_at: z.iso.datetime({ offset: true }),
470
+ html_url: z.string(),
471
+ install_url: z.string(),
472
+ last_webhook_at: z.iso.datetime({ offset: true }).nullable(),
473
+ owner_login: z.string(),
474
+ slug: z.string()
475
+ });
476
+ const zGitHubInstallation = z.object({
477
+ account_login: z.string(),
478
+ account_type: z.string(),
479
+ created_at: z.iso.datetime({ offset: true }),
480
+ id: z.int(),
481
+ suspended: z.boolean()
482
+ });
483
+ const zGitHubLogin = z.object({ login: z.string().nullable() });
484
+ /**
485
+ * A repository an installation can reach.
486
+ */
487
+ const zGitHubRepository = z.object({
488
+ default_branch: z.string(),
489
+ full_name: z.string(),
490
+ html_url: z.string(),
491
+ installation_id: z.int(),
492
+ private: z.boolean()
493
+ });
494
+ /**
495
+ * `GET /api/github`: everything the integrations page needs in one answer.
496
+ */
497
+ const zGitHubStatus = z.object({
498
+ app: zGitHubAppInfo.nullable(),
499
+ installations: z.array(zGitHubInstallation),
500
+ webhook_url: z.string()
501
+ });
502
+ /**
503
+ * Grouping model - maps a grouping key to an issue
504
+ */
505
+ const zGrouping = z.object({
506
+ created_at: z.iso.datetime({ offset: true }),
507
+ grouping_key: z.string(),
508
+ grouping_key_hash: z.string(),
509
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
510
+ issue_id: z.uuid(),
511
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
512
+ });
513
+ const zIntervalUnit = z.enum([
514
+ "minute",
515
+ "hour",
516
+ "day",
517
+ "week",
518
+ "month",
519
+ "year"
520
+ ]);
521
+ /**
522
+ * Filter for issues listing
523
+ */
524
+ const zIssueFilter = z.enum([
525
+ "open",
526
+ "resolved",
527
+ "muted",
528
+ "all"
529
+ ]);
530
+ /**
531
+ * Bulk delete request: the listed `ids`, or every issue matching `filter`.
532
+ * A body with neither or both matches no variant and is rejected, so an empty
533
+ * body can never mean "all".
534
+ */
535
+ const zBulkDeleteIssues = z.union([z.object({ ids: z.array(z.uuid()) }), z.object({ filter: zIssueFilter })]);
536
+ const zIssueLink = z.object({
537
+ created_at: z.iso.datetime({ offset: true }),
538
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
539
+ issue_id: z.uuid(),
540
+ number: z.int(),
541
+ repo_full_name: z.string(),
542
+ state: z.string(),
543
+ title: z.string(),
544
+ url: z.string()
545
+ });
546
+ /**
547
+ * Triage priority of an issue.
548
+ */
549
+ const zIssuePriority = z.enum([
550
+ "low",
551
+ "medium",
552
+ "high"
553
+ ]);
554
+ /**
555
+ * Sort mode for issues listing
556
+ */
557
+ const zIssueSort = z.enum([
558
+ "digest_order",
559
+ "last_seen",
560
+ "event_count"
561
+ ]);
562
+ const zIssueStatsResponse = z.object({ data: z.array(z.array(z.int())) });
563
+ /**
564
+ * How far back issue stats reach.
565
+ */
566
+ const zIssueStatsWindow = z.enum(["24h", "30d"]);
567
+ /**
568
+ * Lifecycle status of an issue (Sentry-compatible).
569
+ */
570
+ const zIssueStatus = z.enum([
571
+ "unresolved",
572
+ "resolved",
573
+ "ignored"
574
+ ]);
575
+ /**
576
+ * Response for API
577
+ */
578
+ const zIssueResponse = z.object({
579
+ assigned_to: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
580
+ assignee_type: z.string().nullable(),
581
+ culprit: z.string(),
582
+ event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
583
+ first_release: z.string(),
584
+ first_seen: z.iso.datetime({ offset: true }),
585
+ has_seen: z.boolean().nullish(),
586
+ id: z.uuid(),
587
+ is_bookmarked: z.boolean().nullish(),
588
+ is_muted: z.boolean(),
589
+ is_resolved: z.boolean(),
590
+ is_subscribed: z.boolean().nullish(),
591
+ issue_category: z.string(),
592
+ issue_type: z.string(),
593
+ last_release: z.string(),
594
+ last_seen: z.iso.datetime({ offset: true }),
595
+ level: z.string().nullable(),
596
+ logger: z.string(),
597
+ platform: z.string().nullable(),
598
+ priority: zIssuePriority.nullable(),
599
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
600
+ short_id: z.string(),
601
+ status: zIssueStatus,
602
+ status_details: z.record(z.string(), z.unknown()),
603
+ substatus: z.string().nullable(),
604
+ title: z.string(),
605
+ trend: z.array(z.int()).nullish(),
606
+ user_count: z.int().nullish(),
607
+ user_report_count: z.int().nullish(),
608
+ value: z.string()
609
+ });
610
+ /**
611
+ * The status an update may set: an [`IssueStatus`], or `resolvedInNextRelease`
612
+ * to resolve until the next release ships.
613
+ */
614
+ const zIssueStatusUpdate = z.enum([
615
+ "unresolved",
616
+ "resolved",
617
+ "ignored",
618
+ "resolvedInNextRelease"
619
+ ]);
620
+ /**
621
+ * Bulk mutate request: apply a status (and/or priority) to many issues.
622
+ */
623
+ const zBulkUpdateIssues = z.object({
624
+ ids: z.array(z.uuid()),
625
+ priority: zIssuePriority.nullish(),
626
+ status: zIssueStatusUpdate.nullish()
627
+ });
628
+ /**
629
+ * A single tag value's usage within an issue — the shape `GET
630
+ * /issues/{id}/tags/{key}` returns per entry, matching Sentry's
631
+ * `TagValueSerializerResponse` (src/sentry/tagstore/types.py:166-173):
632
+ * a bare list of these, not `{key, values}`.
633
+ */
634
+ const zIssueTagValue = z.object({
635
+ count: z.int(),
636
+ first_seen: z.iso.datetime({ offset: true }),
637
+ key: z.string(),
638
+ last_seen: z.iso.datetime({ offset: true }),
639
+ name: z.string(),
640
+ value: z.string()
641
+ });
642
+ /**
643
+ * Body of an issue update: the fields of `GroupValidator`
644
+ * (`api/helpers/group_index/validators/group.py`) Rustrak acts on.
645
+ */
646
+ const zIssueUpdate = z.object({
647
+ status: z.string().nullish(),
648
+ substatus: z.string().nullish()
649
+ });
650
+ /**
651
+ * How long ago a kind of data arrived: rows per age bucket, and the oldest.
652
+ */
653
+ const zKindAge = z.object({
654
+ counts: z.array(z.int()),
655
+ oldest: z.iso.datetime({ offset: true }).nullable()
656
+ });
657
+ const zLinkGitHubIssue = z.object({ reference: z.string() });
658
+ const zLivenessResponse = z.object({ status: z.string() });
659
+ z.object({
660
+ attributes: z.record(z.string(), z.unknown()),
661
+ body: z.string(),
662
+ id: z.uuid(),
663
+ ingested_at: z.iso.datetime({ offset: true }),
664
+ level: z.string(),
665
+ severity_number: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
666
+ span_id: z.string().nullable(),
667
+ timestamp: z.iso.datetime({ offset: true }),
668
+ trace_id: z.string().nullable()
669
+ });
670
+ const zLoginRequest = z.object({
671
+ email: z.string(),
672
+ password: z.string()
673
+ });
674
+ const zManifestRequest = z.object({ organization: z.string().nullish() });
675
+ /**
676
+ * What the dashboard posts to GitHub to create the app.
677
+ */
678
+ const zManifestResponse = z.object({
679
+ action_url: z.string(),
680
+ manifest: z.string()
681
+ });
682
+ /**
683
+ * Turns `/mcp` on or off: the body of `PUT /api/settings/mcp`.
684
+ */
685
+ const zMcpSettings = z.object({ enabled: z.boolean() });
686
+ /**
687
+ * Whether `/mcp` answers, and the URL to give an assistant.
688
+ */
689
+ const zMcpStatus = z.object({
690
+ enabled: z.boolean(),
691
+ url: z.string().nullable()
692
+ });
693
+ /**
694
+ * A counter measured over the requested window alongside the same counter
695
+ * over the window immediately before it.
696
+ *
697
+ * `previous` is `None` when the request asked for all time: there is no
698
+ * earlier window to compare against, and reporting `0` there would render as
699
+ * a misleading "+100%" in the UI.
700
+ */
701
+ const zMetricDelta = z.object({
702
+ current: z.int(),
703
+ previous: z.int().nullable()
704
+ });
705
+ /**
706
+ * Health of one monitor environment.
707
+ */
708
+ const zMonitorEnvironmentStatus = z.enum([
709
+ "active",
710
+ "ok",
711
+ "error"
712
+ ]);
713
+ /**
714
+ * One environment of a monitor, with its most recent check-ins for the
715
+ * timeline.
716
+ */
717
+ const zMonitorEnvironmentResponse = z.object({
718
+ environment: z.string(),
719
+ id: z.uuid(),
720
+ last_checkin: z.iso.datetime({ offset: true }).nullable(),
721
+ next_checkin: z.iso.datetime({ offset: true }).nullable(),
722
+ next_checkin_latest: z.iso.datetime({ offset: true }).nullable(),
723
+ recent_checkins: z.array(zCheckInResponse),
724
+ status: zMonitorEnvironmentStatus
725
+ });
726
+ /**
727
+ * A connected client, as its user sees it.
728
+ */
729
+ const zOAuthGrant = z.object({
730
+ client_id: z.string(),
731
+ client_name: z.string(),
732
+ created_at: z.iso.datetime({ offset: true }),
733
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
734
+ });
735
+ /**
736
+ * Synthetic organization sentry-cli checks before uploading.
737
+ */
738
+ const zOrgDetails = z.object({
739
+ features: z.array(z.string()),
740
+ id: z.string(),
741
+ name: z.string(),
742
+ slug: z.string()
743
+ });
744
+ /**
745
+ * Body of a template preview request.
746
+ */
747
+ const zPreviewTemplateBody = z.object({ template: z.string() });
748
+ /**
749
+ * `rendered` when `ok`, `error` otherwise.
750
+ */
751
+ const zPreviewTemplateResponse = z.object({
752
+ error: z.string().nullish(),
753
+ ok: z.boolean(),
754
+ rendered: z.string().nullish()
755
+ });
756
+ const zProjectAge = z.object({
757
+ events: zKindAge,
758
+ logs: zKindAge,
759
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
760
+ transactions: zKindAge
761
+ });
762
+ /**
763
+ * The at-a-glance aggregates one row of the project-list table needs.
764
+ *
765
+ * Deliberately narrower than [`ProjectStatsSummary`]: that one answers "how
766
+ * is this project doing" for a page dedicated to a single project, this one
767
+ * answers "which of my projects should I look at first" and must stay cheap
768
+ * enough to compute for every project on the page at once.
769
+ */
770
+ const zProjectListStats = z.object({
771
+ events: zMetricDelta,
772
+ fatal_issues: z.int(),
773
+ new_issues: zMetricDelta,
774
+ open_issues: z.int(),
775
+ trend: z.array(z.int())
776
+ });
777
+ const zProjectRepository = z.object({
778
+ auto_create_conditions: z.record(z.string(), z.unknown()),
779
+ auto_create_issues: z.boolean(),
780
+ code_mappings: z.array(zCodeMapping),
781
+ codeowners_rules: z.int().gte(0).nullable(),
782
+ codeowners_synced_at: z.iso.datetime({ offset: true }).nullable(),
783
+ default_branch: z.string(),
784
+ html_url: z.string(),
785
+ installation_id: z.int(),
786
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
787
+ repo_full_name: z.string()
788
+ });
789
+ /**
790
+ * Response with DSN included
791
+ */
792
+ const zProjectResponse = z.object({
793
+ created_at: z.iso.datetime({ offset: true }),
794
+ digested_event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
795
+ dsn: z.string(),
796
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
797
+ name: z.string(),
798
+ platform: z.string().nullable(),
799
+ rate_limit_per_hour: z.int().nullable(),
800
+ rate_limit_per_minute: z.int().nullable(),
801
+ rate_limited_event_count: z.int(),
802
+ sentry_key: z.uuid(),
803
+ slug: z.string(),
804
+ stats: zProjectListStats.nullish(),
805
+ stored_event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
806
+ updated_at: z.iso.datetime({ offset: true })
807
+ });
808
+ /**
809
+ * A project that keeps its data for other windows than the defaults. Every
810
+ * kind is set: an override replaces the defaults whole.
811
+ */
812
+ const zProjectRetention = z.object({
813
+ events_days: z.int().nullable(),
814
+ logs_days: z.int().nullable(),
815
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
816
+ transactions_days: z.int().nullable()
817
+ });
818
+ /**
819
+ * Per-project capability level for a member.
820
+ *
821
+ * Ordered by privilege: `Viewer` < `Editor` < `Admin` (derived `Ord` uses
822
+ * declaration order). An `Action` maps to the minimum role that may perform it.
823
+ */
824
+ const zProjectRole = z.enum([
825
+ "viewer",
826
+ "editor",
827
+ "admin"
828
+ ]);
829
+ const zProjectMember = z.object({
830
+ created_at: z.iso.datetime({ offset: true }),
831
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
832
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
833
+ role: zProjectRole,
834
+ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
835
+ });
836
+ /**
837
+ * Member row joined with the user's email, for listing a project's team.
838
+ */
839
+ const zProjectMemberResponse = z.object({
840
+ created_at: z.iso.datetime({ offset: true }),
841
+ email: z.string(),
842
+ role: zProjectRole,
843
+ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
844
+ });
845
+ /**
846
+ * Project-wide counters for the overview page, each with its previous-period
847
+ * comparison.
848
+ */
849
+ const zProjectStatsSummary = z.object({
850
+ events: zMetricDelta,
851
+ new_issues: zMetricDelta,
852
+ open_issues: z.int(),
853
+ period_hours: z.int().nullable()
854
+ });
855
+ z.object({
856
+ estimated_bytes: z.int(),
857
+ events_bytes: z.int(),
858
+ events_count: z.int(),
859
+ logs_bytes: z.int(),
860
+ logs_count: z.int(),
861
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
862
+ project_name: z.string(),
863
+ source_maps_count: z.int(),
864
+ spans_count: z.int(),
865
+ transactions_bytes: z.int(),
866
+ transactions_count: z.int()
867
+ });
868
+ /**
869
+ * Type of notification provider (replaces ChannelType)
870
+ */
871
+ const zProviderType = z.enum([
872
+ "webhook",
873
+ "email",
874
+ "slack",
875
+ "custom_webhook"
876
+ ]);
877
+ /**
878
+ * Global alert integration record — stores credentials only, no routing.
879
+ */
880
+ const zAlertIntegration = z.object({
881
+ created_at: z.iso.datetime({ offset: true }),
882
+ credentials: z.record(z.string(), z.unknown()),
883
+ failure_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
884
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
885
+ is_enabled: z.boolean(),
886
+ last_failure_at: z.iso.datetime({ offset: true }).nullable(),
887
+ last_failure_message: z.string().nullable(),
888
+ last_success_at: z.iso.datetime({ offset: true }).nullable(),
889
+ name: z.string(),
890
+ provider_type: zProviderType,
891
+ updated_at: z.iso.datetime({ offset: true })
892
+ });
893
+ /**
894
+ * DTO for creating an alert integration
895
+ */
896
+ const zCreateAlertIntegration = z.object({
897
+ credentials: z.record(z.string(), z.unknown()),
898
+ is_enabled: z.boolean().optional(),
899
+ name: z.string(),
900
+ provider_type: zProviderType
901
+ });
902
+ /**
903
+ * Configure project routes
904
+ * The server's per-project event limits (`MAX_EVENTS_PER_PROJECT_*`).
905
+ */
906
+ const zRateLimitsResponse = z.object({
907
+ project_per_hour: z.int(),
908
+ project_per_minute: z.int()
909
+ });
910
+ const zReadinessChecks = z.object({ database: z.string() });
911
+ const zReadinessResponse = z.object({
912
+ checks: zReadinessChecks,
913
+ status: z.string()
914
+ });
915
+ z.object({
916
+ abnormal: z.int(),
917
+ crash_free_sessions_rate: z.number().nullable(),
918
+ crash_free_users_rate: z.number().nullable(),
919
+ crashed: z.int(),
920
+ environment: z.string(),
921
+ errored: z.int(),
922
+ healthy: z.int(),
923
+ release: z.string(),
924
+ total: z.int()
925
+ });
926
+ /**
927
+ * API response for a release.
928
+ */
929
+ const zReleaseResponse = z.object({
930
+ dateCreated: z.iso.datetime({ offset: true }),
931
+ dateReleased: z.iso.datetime({ offset: true }).nullable(),
932
+ ref: z.string().nullable(),
933
+ url: z.string().nullable(),
934
+ version: z.string()
935
+ });
936
+ const zRepoCommit = z.object({
937
+ author_login: z.string().nullable(),
938
+ author_name: z.string(),
939
+ committed_at: z.iso.datetime({ offset: true }),
940
+ message: z.string(),
941
+ repo_full_name: z.string(),
942
+ sha: z.string(),
943
+ url: z.string()
944
+ });
945
+ /**
946
+ * `GET .../issues/{id}/github`: the issue's "Code" block in one answer.
947
+ */
948
+ const zIssueGitHub = z.object({
949
+ links: z.array(zIssueLink),
950
+ owners: z.array(z.string()),
951
+ suspect_commits: z.array(zRepoCommit)
952
+ });
953
+ /**
954
+ * How the last retention cleanup went.
955
+ */
956
+ const zRetentionRun = z.object({
957
+ error: z.string().nullable(),
958
+ finished_at: z.iso.datetime({ offset: true }).nullable(),
959
+ removed: zCleanupCounts.nullable(),
960
+ started_at: z.iso.datetime({ offset: true }),
961
+ status: z.string()
962
+ });
963
+ /**
964
+ * How long each kind of data is kept, in days. `None` keeps it forever.
965
+ */
966
+ const zRetentionWindows = z.object({
967
+ events_days: z.int().nullable().default(null),
968
+ logs_days: z.int().nullable().default(null),
969
+ transactions_days: z.int().nullable().default(null)
970
+ });
971
+ /**
972
+ * Retention: how long each kind of data is kept, by default and per
973
+ * project, and when the cleanup that enforces it runs. Stored as the
974
+ * settings of the `storage_cleanup` scheduled job; a field left out takes
975
+ * its default. Keeping everything forever runs nothing.
976
+ */
977
+ const zRetentionSettings = z.object({
978
+ defaults: zRetentionWindows.default({
979
+ events_days: null,
980
+ logs_days: null,
981
+ transactions_days: null
982
+ }),
983
+ frequency: zCleanupFrequency.default("daily"),
984
+ hour: z.int().gte(0).lte(23).default(3),
985
+ overrides: z.array(zProjectRetention).default([]),
986
+ weekday: z.int().gte(0).lte(6).default(0)
987
+ });
988
+ const zRetentionResponse = z.object({
989
+ last_run: zRetentionRun.nullable(),
990
+ next_run_at: z.iso.datetime({ offset: true }).nullable(),
991
+ settings: zRetentionSettings
992
+ });
993
+ const zSchedule = z.union([z.object({
994
+ type: z.enum(["crontab"]),
995
+ value: z.string()
996
+ }), z.object({
997
+ type: z.enum(["interval"]),
998
+ unit: zIntervalUnit,
999
+ value: z.int().gte(0).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1000
+ })]);
1001
+ /**
1002
+ * A validated monitor configuration, with every default filled in.
1003
+ */
1004
+ const zMonitorConfig = z.object({
1005
+ checkin_margin: z.int().gte(0).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1006
+ failure_issue_threshold: z.int().gte(0).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1007
+ max_runtime: z.int().gte(0).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1008
+ recovery_threshold: z.int().gte(0).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1009
+ schedule: zSchedule,
1010
+ timezone: z.string()
1011
+ });
1012
+ /**
1013
+ * `monitor_config` as an SDK or the dashboard sends it: every field optional.
1014
+ */
1015
+ const zMonitorConfigInput = z.object({
1016
+ checkin_margin: z.int().gte(0).nullish(),
1017
+ failure_issue_threshold: z.int().gte(0).nullish(),
1018
+ max_runtime: z.int().gte(0).nullish(),
1019
+ recovery_threshold: z.int().gte(0).nullish(),
1020
+ schedule: zSchedule.nullish(),
1021
+ timezone: z.string().nullish()
1022
+ });
1023
+ /**
1024
+ * Body of `POST /api/projects/{project_id}/monitors`.
1025
+ */
1026
+ const zCreateMonitor = z.object({
1027
+ config: zMonitorConfigInput,
1028
+ name: z.string(),
1029
+ slug: z.string().nullish()
1030
+ });
1031
+ const zMonitorResponse = z.object({
1032
+ config: zMonitorConfig,
1033
+ created_at: z.iso.datetime({ offset: true }),
1034
+ environments: z.array(zMonitorEnvironmentResponse),
1035
+ id: z.uuid(),
1036
+ is_muted: z.boolean(),
1037
+ name: z.string(),
1038
+ slug: z.string()
1039
+ });
1040
+ /**
1041
+ * Body of `POST /api/schedules/preview`.
1042
+ */
1043
+ const zPreviewSchedule = z.object({
1044
+ schedule: zSchedule,
1045
+ timezone: z.string().nullish()
1046
+ });
1047
+ /**
1048
+ * When a schedule runs next, computed by the code that runs it: monitors
1049
+ * expect their check-ins and scheduled jobs fire at exactly these instants.
1050
+ */
1051
+ const zSchedulePreview = z.object({ next_runs: z.array(z.iso.datetime({ offset: true })) });
1052
+ const zSeenResponse = z.object({ has_seen: z.boolean() });
1053
+ /**
1054
+ * `GroupProjectResponse` (`api/serializers/models/group.py`).
1055
+ */
1056
+ const zSentryGroupProject = z.object({
1057
+ id: z.string(),
1058
+ name: z.string(),
1059
+ platform: z.string().nullable(),
1060
+ slug: z.string()
1061
+ });
1062
+ /**
1063
+ * Subset of `GroupSerializer` plus its seen stats
1064
+ * (`api/serializers/models/group.py`), and `stats` when the caller asked
1065
+ * for a series (`StreamGroupSerializer`, `group_stream.py`).
1066
+ */
1067
+ const zSentryIssue = z.object({
1068
+ annotations: z.array(z.record(z.string(), z.unknown())),
1069
+ count: z.string(),
1070
+ culprit: z.string(),
1071
+ firstSeen: z.iso.datetime({ offset: true }),
1072
+ id: z.string(),
1073
+ issueCategory: z.string(),
1074
+ issueType: z.string(),
1075
+ lastSeen: z.iso.datetime({ offset: true }),
1076
+ level: z.string(),
1077
+ logger: z.string().nullable(),
1078
+ metadata: z.record(z.string(), z.unknown()),
1079
+ platform: z.string().nullable(),
1080
+ priority: z.string().nullable(),
1081
+ project: zSentryGroupProject,
1082
+ shortId: z.string(),
1083
+ stats: z.record(z.string(), z.unknown()).nullish(),
1084
+ status: z.string(),
1085
+ statusDetails: z.record(z.string(), z.unknown()),
1086
+ substatus: z.string().nullable(),
1087
+ title: z.string(),
1088
+ type: z.string(),
1089
+ userCount: z.int()
1090
+ });
1091
+ /**
1092
+ * A release as `serialize_releases` (`api/helpers/group_index/index.py`)
1093
+ * falls back to it, with the serializer's `shortVersion`, which is the
1094
+ * version itself (`api/serializers/models/release.py`).
1095
+ */
1096
+ const zSentryRelease = z.object({
1097
+ shortVersion: z.string(),
1098
+ version: z.string()
1099
+ });
1100
+ /**
1101
+ * Subset of `GroupDetailsEndpoint`'s response
1102
+ * (`issues/endpoints/group_details.py`).
1103
+ */
1104
+ const zSentryIssueDetails = zSentryIssue.and(z.object({
1105
+ firstRelease: zSentryRelease.nullable(),
1106
+ lastRelease: zSentryRelease.nullable(),
1107
+ userReportCount: z.int()
1108
+ }));
1109
+ /**
1110
+ * `{"id", "name"}` of a status, as Sentry nests it in an organization.
1111
+ */
1112
+ const zSentryStatus = z.object({
1113
+ id: z.string(),
1114
+ name: z.string()
1115
+ });
1116
+ /**
1117
+ * Subset of `OrganizationSummarySerializer`
1118
+ * (`api/serializers/models/organization.py`).
1119
+ */
1120
+ const zSentryOrganization = z.object({
1121
+ id: z.string(),
1122
+ name: z.string(),
1123
+ slug: z.string(),
1124
+ status: zSentryStatus
1125
+ });
1126
+ /**
1127
+ * Subset of `ProjectWithOrganizationSerializer`
1128
+ * (`api/serializers/models/project.py`). Sentry's ids are strings.
1129
+ */
1130
+ const zSentryProject = z.object({
1131
+ dateCreated: z.iso.datetime({ offset: true }),
1132
+ id: z.string(),
1133
+ name: z.string(),
1134
+ organization: zSentryOrganization,
1135
+ platform: z.string().nullable(),
1136
+ slug: z.string(),
1137
+ status: z.string()
1138
+ });
1139
+ const zSentryTag = z.object({
1140
+ key: z.string(),
1141
+ value: z.string()
1142
+ });
1143
+ /**
1144
+ * Subset of `EventSerializer` for an error event
1145
+ * (`api/serializers/models/event.py`).
1146
+ */
1147
+ const zSentryEvent = z.object({
1148
+ culprit: z.string(),
1149
+ dateCreated: z.iso.datetime({ offset: true }),
1150
+ dateReceived: z.iso.datetime({ offset: true }),
1151
+ entries: z.array(z.record(z.string(), z.unknown())),
1152
+ eventID: z.string(),
1153
+ groupID: z.string(),
1154
+ id: z.string(),
1155
+ message: z.string(),
1156
+ metadata: z.record(z.string(), z.unknown()),
1157
+ platform: z.string(),
1158
+ projectID: z.string(),
1159
+ tags: z.array(zSentryTag),
1160
+ title: z.string(),
1161
+ type: z.string()
1162
+ });
1163
+ /**
1164
+ * Project-wide session health summary, aggregated across all releases and environments.
1165
+ */
1166
+ const zSessionSummary = z.object({
1167
+ abnormal: z.int(),
1168
+ active_releases: z.int(),
1169
+ crash_free_sessions_rate: z.number().nullable(),
1170
+ crash_free_users_rate: z.number().nullable(),
1171
+ crashed: z.int(),
1172
+ errored: z.int(),
1173
+ total: z.int()
1174
+ });
1175
+ /**
1176
+ * One time-bucketed point in a project's session trend, aggregated across all
1177
+ * releases and environments. Powers trend charts (crash-free sessions over time).
1178
+ */
1179
+ const zSessionTimeseriesPoint = z.object({
1180
+ bucket: z.iso.datetime({ offset: true }),
1181
+ crash_free_sessions_rate: z.number().nullable(),
1182
+ crashed: z.int(),
1183
+ total: z.int()
1184
+ });
1185
+ /**
1186
+ * Sort order direction
1187
+ */
1188
+ const zSortOrder = z.enum(["asc", "desc"]);
1189
+ const zSourceMapFile = z.object({
1190
+ dateUploaded: z.string(),
1191
+ debugId: z.string(),
1192
+ fileType: z.string(),
1193
+ size: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1194
+ timesUsed: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1195
+ });
1196
+ /**
1197
+ * Outcome of a source-map garbage collection: orphaned `source_file` rows
1198
+ * (no `source_file_metadata` referencing them) removed from the DB and unlinked
1199
+ * from disk. `bytes_freed` is the exact summed `size` of the removed files.
1200
+ */
1201
+ const zSourceMapGcResult = z.object({
1202
+ bytes_freed: z.int(),
1203
+ files_removed: z.int()
1204
+ });
1205
+ const zSourceMapList = z.object({ data: z.array(zSourceMapFile) });
1206
+ /**
1207
+ * Exact source-map storage weight, summed from the `size` columns.
1208
+ *
1209
+ * Source maps live in two places: `chunk` holds the raw upload bytes as in-DB
1210
+ * BYTEA, `source_file` holds the assembled artifact on the filesystem CAS. Both
1211
+ * carry a `size` column, so the weight is an exact SUM — no filesystem walk.
1212
+ */
1213
+ const zSourceMapStorage = z.object({
1214
+ chunk_bytes: z.int(),
1215
+ file_count: z.int(),
1216
+ source_file_bytes: z.int(),
1217
+ total_bytes: z.int()
1218
+ });
1219
+ /**
1220
+ * A single indexed span — extracted from a transaction, OR standalone
1221
+ * (Sentry "span" item type). Both origins write into the same `spans`
1222
+ * table, so `transaction_id` is the only thing that distinguishes them.
1223
+ */
1224
+ const zSpanResponse = z.object({
1225
+ description: z.string().nullable(),
1226
+ duration_ms: z.number().nullable(),
1227
+ environment: z.string().nullable(),
1228
+ exclusive_time_ms: z.number().nullable(),
1229
+ gen_ai_agent_name: z.string().nullable(),
1230
+ gen_ai_conversation_id: z.string().nullable(),
1231
+ gen_ai_operation_type: z.string().nullable(),
1232
+ gen_ai_request_model: z.string().nullable(),
1233
+ gen_ai_response_model: z.string().nullable(),
1234
+ gen_ai_tool_name: z.string().nullable(),
1235
+ gen_ai_usage_input_tokens: z.number().nullable(),
1236
+ gen_ai_usage_output_tokens: z.number().nullable(),
1237
+ gen_ai_usage_total_tokens: z.number().nullable(),
1238
+ id: z.uuid(),
1239
+ is_segment: z.boolean(),
1240
+ op: z.string().nullable(),
1241
+ parent_span_id: z.string().nullable(),
1242
+ platform: z.string().nullable(),
1243
+ release: z.string().nullable(),
1244
+ segment_id: z.string().nullable(),
1245
+ span_id: z.string().nullable(),
1246
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
1247
+ status: z.string().nullable(),
1248
+ timestamp: z.iso.datetime({ offset: true }).nullable(),
1249
+ trace_id: z.string().nullable(),
1250
+ transaction_id: z.uuid().nullable()
1251
+ });
1252
+ /**
1253
+ * One span with its full attribute bag — the detail counterpart to
1254
+ * [`SpanResponse`].
1255
+ *
1256
+ * The list response deliberately omits attributes: `spans.data` is never
1257
+ * trimmed (unlike event data, which goes through `services::event_trim`), so
1258
+ * a single AI span can carry a whole prompt and a trace's worth of them would
1259
+ * dwarf the waterfall it is drawn from. Attributes are fetched one span at a
1260
+ * time instead, which is also how Sentry's own agent drawer works — the span
1261
+ * list is light and the details panel loads the selected node's attributes.
1262
+ */
1263
+ const zSpanDetailResponse = zSpanResponse.and(z.object({
1264
+ attributes: z.record(z.string(), z.unknown()),
1265
+ tags: z.record(z.string(), z.unknown()).nullable()
1266
+ }));
1267
+ const zSsoConfigResponse = z.object({
1268
+ enabled: z.boolean(),
1269
+ provider_name: z.string().nullable()
1270
+ });
1271
+ const zSsoLinkResponse = z.object({
1272
+ email: z.string(),
1273
+ provider_name: z.string()
1274
+ });
1275
+ const zSsoStartResponse = z.object({ authorization_url: z.string() });
1276
+ /**
1277
+ * The age of everything the instance holds, by project and kind, keyed on
1278
+ * ingest time like retention.
1279
+ */
1280
+ const zStorageAge = z.object({
1281
+ bucket_days: z.array(z.int()),
1282
+ projects: z.array(zProjectAge)
1283
+ });
1284
+ /**
1285
+ * Instance-wide storage summary: what Rustrak is holding right now.
1286
+ *
1287
+ * Row counts are exact (indexed `COUNT(*)`). `total_db_size_bytes` is a
1288
+ * best-effort figure from the backend (`pg_database_size` / SQLite page count),
1289
+ * while `source_maps` is exact (summed `size` columns).
1290
+ */
1291
+ const zStorageSummary = z.object({
1292
+ events_count: z.int(),
1293
+ logs_count: z.int(),
1294
+ source_maps: zSourceMapStorage,
1295
+ spans_count: z.int(),
1296
+ total_db_size_bytes: z.int(),
1297
+ transactions_count: z.int()
1298
+ });
1299
+ const zSubscriptionResponse = z.object({ is_subscribed: z.boolean() });
1300
+ /**
1301
+ * A tag value with its event count within an issue.
1302
+ */
1303
+ const zTagValueCount = z.object({
1304
+ count: z.int(),
1305
+ value: z.string()
1306
+ });
1307
+ /**
1308
+ * A tag key with its most common values within an issue.
1309
+ */
1310
+ const zTagSummary = z.object({
1311
+ key: z.string(),
1312
+ top_values: z.array(zTagValueCount),
1313
+ total_values: z.int().gte(0)
1314
+ });
1315
+ /**
1316
+ * Per-issue aggregates computed from recent events (capped scan).
1317
+ */
1318
+ const zIssueAggregates = z.object({
1319
+ tags: z.array(zTagSummary),
1320
+ user_count: z.int()
1321
+ });
1322
+ const zTelemetryPreview = z.object({
1323
+ enabled: z.boolean(),
1324
+ reason: z.string().nullable(),
1325
+ report: z.record(z.string(), z.unknown()),
1326
+ sink: z.string().nullable()
1327
+ });
1328
+ /**
1329
+ * Outcome of a test notification.
1330
+ */
1331
+ const zTestChannelResponse = z.object({
1332
+ message: z.string(),
1333
+ response_body: z.string().nullable(),
1334
+ success: z.boolean()
1335
+ });
1336
+ /**
1337
+ * Request body for the test-integration endpoint.
1338
+ */
1339
+ const zTestIntegrationBody = z.object({ routing_override: z.record(z.string(), z.unknown()).nullish() });
1340
+ /**
1341
+ * Body for toggling a per-user flag (bookmark/subscription).
1342
+ */
1343
+ const zToggleRequest = z.object({ enabled: z.boolean().nullish() });
1344
+ /**
1345
+ * Response model for a single transaction detail view.
1346
+ *
1347
+ * Carries the same summary fields as [`TransactionResponse`] plus the full
1348
+ * Sentry payload under `data` (spans, contexts.trace, measurements, tags,
1349
+ * request, user). The frontend builds the span waterfall and metrics view
1350
+ * from `data`.
1351
+ */
1352
+ const zTransactionDetailResponse = z.object({
1353
+ data: z.record(z.string(), z.unknown()),
1354
+ duration_ms: z.number().nullable(),
1355
+ environment: z.string(),
1356
+ event_id: z.string(),
1357
+ id: z.uuid(),
1358
+ ingested_at: z.iso.datetime({ offset: true }),
1359
+ platform: z.string(),
1360
+ release: z.string(),
1361
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
1362
+ timestamp: z.iso.datetime({ offset: true }),
1363
+ transaction_name: z.string()
1364
+ });
1365
+ z.object({
1366
+ duration_ms: z.number().nullable(),
1367
+ environment: z.string(),
1368
+ event_id: z.string(),
1369
+ id: z.uuid(),
1370
+ ingested_at: z.iso.datetime({ offset: true }),
1371
+ platform: z.string(),
1372
+ release: z.string(),
1373
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
1374
+ timestamp: z.iso.datetime({ offset: true }),
1375
+ transaction_name: z.string()
1376
+ });
1377
+ /**
1378
+ * Aggregate performance stats for one (transaction_name, op) group.
1379
+ * Powers the performance overview: throughput + latency percentiles +
1380
+ * failure rate per transaction. Percentiles are continuous (linear
1381
+ * interpolation, matching Postgres `percentile_cont`).
1382
+ */
1383
+ const zTransactionStatsResponse = z.object({
1384
+ count: z.int(),
1385
+ failure_rate: z.number(),
1386
+ op: z.string().nullable(),
1387
+ p50_ms: z.number(),
1388
+ p95_ms: z.number(),
1389
+ p99_ms: z.number(),
1390
+ transaction_name: z.string()
1391
+ });
1392
+ /**
1393
+ * DTO for updating an alert integration
1394
+ */
1395
+ const zUpdateAlertIntegration = z.object({
1396
+ credentials: z.record(z.string(), z.unknown()).nullish(),
1397
+ is_enabled: z.boolean().nullish(),
1398
+ name: z.string().nullish()
1399
+ });
1400
+ /**
1401
+ * DTO for updating an alert rule
1402
+ */
1403
+ const zUpdateAlertRule = z.object({
1404
+ channels: z.array(zAlertRuleChannelInput).nullish(),
1405
+ conditions: z.record(z.string(), z.unknown()).nullish(),
1406
+ cooldown_minutes: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullish(),
1407
+ is_enabled: z.boolean().nullish(),
1408
+ name: z.string().nullish()
1409
+ });
1410
+ /**
1411
+ * Request to update issue state.
1412
+ *
1413
+ * `status`/`substatus`/`priority`/assignment are the canonical fields.
1414
+ * `is_resolved`/`is_muted` are accepted as a deprecated compatibility shim
1415
+ * and mapped onto `status`.
1416
+ */
1417
+ const zUpdateIssueState = z.object({
1418
+ assigned_to: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullish(),
1419
+ assignee_type: z.string().nullish(),
1420
+ is_muted: z.boolean().nullish(),
1421
+ is_resolved: z.boolean().nullish(),
1422
+ priority: zIssuePriority.nullish(),
1423
+ status: zIssueStatusUpdate.nullish(),
1424
+ substatus: z.string().nullish()
1425
+ });
1426
+ /**
1427
+ * Body of `PUT /api/projects/{project_id}/monitors/{slug}`. Fields left out
1428
+ * keep their value, including each field of `config`.
1429
+ */
1430
+ const zUpdateMonitor = z.object({
1431
+ config: zMonitorConfigInput.nullish(),
1432
+ is_muted: z.boolean().nullish(),
1433
+ name: z.string().nullish()
1434
+ });
1435
+ /**
1436
+ * What a reader may change about how the dashboard is presented to them.
1437
+ *
1438
+ * Every field is doubly optional, and both levels are used: absent means
1439
+ * "leave it", `null` means "clear it". `#[serde(default)]` with
1440
+ * `deserialize_with` is what keeps those distinguishable, because plain
1441
+ * `Option<Option<T>>` collapses a missing key and an explicit null.
1442
+ */
1443
+ const zUpdatePreferencesRequest = z.object({
1444
+ language: z.string().nullish(),
1445
+ timezone: z.string().nullish()
1446
+ });
1447
+ /**
1448
+ * DTO for updating a project
1449
+ */
1450
+ const zUpdateProject = z.object({
1451
+ name: z.string().nullish(),
1452
+ platform: z.string().nullish(),
1453
+ rate_limit_per_hour: z.int().nullish(),
1454
+ rate_limit_per_minute: z.int().nullish(),
1455
+ slug: z.string().nullish()
1456
+ });
1457
+ const zUpdateProjectRepository = z.object({
1458
+ auto_create_conditions: z.record(z.string(), z.unknown()).nullish(),
1459
+ auto_create_issues: z.boolean().nullish(),
1460
+ code_mappings: z.array(zCodeMapping).nullish(),
1461
+ installation_id: z.int(),
1462
+ repo_full_name: z.string()
1463
+ });
1464
+ /**
1465
+ * DTO for `PUT .../releases/{version}/` — generic partial update.
1466
+ * Setting `date_released` IS "finalize": there is no separate status flag.
1467
+ * Absent fields (including an explicit `null`) leave the stored value
1468
+ * unchanged, matching Sentry's own partial-update semantics for this endpoint.
1469
+ */
1470
+ const zUpdateRelease = z.object({
1471
+ dateReleased: z.iso.datetime({ offset: true }).nullish(),
1472
+ ref: z.string().nullish(),
1473
+ url: z.string().nullish()
1474
+ });
1475
+ const zUpsertProjectMember = z.object({
1476
+ role: zProjectRole,
1477
+ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1478
+ });
1479
+ /**
1480
+ * A user feedback report attached to a project/issue/event.
1481
+ */
1482
+ const zUserReport = z.object({
1483
+ comments: z.string(),
1484
+ created_at: z.iso.datetime({ offset: true }),
1485
+ email: z.string(),
1486
+ event_id: z.uuid().nullable(),
1487
+ id: z.uuid(),
1488
+ issue_id: z.uuid().nullable(),
1489
+ name: z.string(),
1490
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1491
+ });
1492
+ /**
1493
+ * Body for submitting user feedback on an issue.
1494
+ */
1495
+ const zUserReportRequest = z.object({
1496
+ comments: z.string().nullish(),
1497
+ email: z.string().nullish(),
1498
+ event_id: z.uuid().nullish(),
1499
+ name: z.string().nullish()
1500
+ });
1501
+ /**
1502
+ * Instance-wide role for a user.
1503
+ *
1504
+ * `Admin` has full access to every project and to team management.
1505
+ * `Member` only sees projects they are a member of (see `ProjectRole`).
1506
+ */
1507
+ const zUserRole = z.enum(["admin", "member"]);
1508
+ const zCreateInvitation = z.object({
1509
+ email: z.string(),
1510
+ role: zUserRole
1511
+ });
1512
+ /**
1513
+ * Public-facing invitation info for the accept page.
1514
+ */
1515
+ const zInvitationInfoResponse = z.object({
1516
+ email: z.string(),
1517
+ expires_at: z.iso.datetime({ offset: true }),
1518
+ role: zUserRole,
1519
+ status: z.string()
1520
+ });
1521
+ /**
1522
+ * Public-facing invitation (no internal columns beyond what the UI needs).
1523
+ */
1524
+ const zInvitationResponse = z.object({
1525
+ created_at: z.iso.datetime({ offset: true }),
1526
+ email: z.string(),
1527
+ expires_at: z.iso.datetime({ offset: true }),
1528
+ role: zUserRole,
1529
+ status: z.string(),
1530
+ token: z.string()
1531
+ });
1532
+ /**
1533
+ * A user as exposed on the team roster.
1534
+ */
1535
+ const zTeamMemberResponse = z.object({
1536
+ created_at: z.iso.datetime({ offset: true }),
1537
+ email: z.string(),
1538
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1539
+ is_active: z.boolean(),
1540
+ is_primary: z.boolean(),
1541
+ last_login: z.iso.datetime({ offset: true }).nullable(),
1542
+ role: zUserRole
1543
+ });
1544
+ /**
1545
+ * Request body for changing a user's global role.
1546
+ */
1547
+ const zUpdateUserRole = z.object({ role: zUserRole });
1548
+ const zUserResponse = z.object({
1549
+ email: z.string(),
1550
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1551
+ is_admin: z.boolean(),
1552
+ language: z.string().nullable(),
1553
+ role: zUserRole,
1554
+ timezone: z.string().nullable()
1555
+ });
1556
+ const zAuthResponse = z.object({ user: zUserResponse });
1557
+ const zVersionResponse = z.object({ version: z.string() });
1558
+ const zSentryGetIssuePath = z.object({ issue_id: z.string().regex(/^[0-9]+$/) });
1559
+ /**
1560
+ * Issue details
1561
+ */
1562
+ const zSentryGetIssueResponse = zSentryIssueDetails;
1563
+ const zSentryUpdateIssueBody = zIssueUpdate;
1564
+ const zSentryUpdateIssuePath = z.object({ issue_id: z.string().regex(/^[0-9]+$/) });
1565
+ /**
1566
+ * Issue updated
1567
+ */
1568
+ const zSentryUpdateIssueResponse = zSentryIssue;
1569
+ const zSentryGetLatestEventPath = z.object({ issue_id: z.string().regex(/^[0-9]+$/) });
1570
+ /**
1571
+ * The issue's latest event
1572
+ */
1573
+ const zSentryGetLatestEventResponse = zSentryEvent;
1574
+ /**
1575
+ * The synthetic organization
1576
+ */
1577
+ const zSentryListOrganizationsResponse = z.array(zSentryOrganization);
1578
+ const zSourceMapsOrgDetailsPath = z.object({ org_slug: z.string() });
1579
+ /**
1580
+ * Synthetic org metadata accepted by sentry-cli
1581
+ */
1582
+ const zSourceMapsOrgDetailsResponse = zOrgDetails;
1583
+ const zSourceMapsArtifactBundleAssembleBody = zAssembleBody;
1584
+ const zSourceMapsArtifactBundleAssemblePath = z.object({ org_slug: z.string() });
1585
+ /**
1586
+ * Assembly job state (not_found / created / assembling / ok / error). Missing chunks are listed in missingChunks.
1587
+ */
1588
+ const zSourceMapsArtifactBundleAssembleResponse = zAssembleResponse;
1589
+ const zSourceMapsChunkUploadCapabilityPath = z.object({ org_slug: z.string() });
1590
+ /**
1591
+ * Chunk upload capabilities and URL
1592
+ */
1593
+ const zSourceMapsChunkUploadCapabilityResponse = zChunkUploadOptions;
1594
+ /**
1595
+ * One or more binary chunk files. Field names may be SHA-1 hashes (v2 protocol) or arbitrary names like 'file' (v3.x protocol).
1596
+ */
1597
+ const zSourceMapsChunkUploadBody = zChunkUploadBody;
1598
+ const zSourceMapsChunkUploadPath = z.object({ org_slug: z.string() });
1599
+ const zSentryListReposPath = z.object({ org_slug: z.string() });
1600
+ /**
1601
+ * Connected repositories: always none
1602
+ */
1603
+ const zSentryListReposResponse = z.array(z.record(z.string(), z.unknown()));
1604
+ const zSentryListProjectsQuery = z.object({
1605
+ per_page: z.int().nullish(),
1606
+ cursor: z.string().nullish()
1607
+ });
1608
+ /**
1609
+ * Projects, newest first; paginated by the `Link` header
1610
+ */
1611
+ const zSentryListProjectsResponse = z.array(zSentryProject);
1612
+ const zSourceMapsListPath = z.object({
1613
+ org_slug: z.string(),
1614
+ project_slug: z.string()
1615
+ });
1616
+ /**
1617
+ * List of uploaded source map files
1618
+ */
1619
+ const zSourceMapsListResponse = zSourceMapList;
1620
+ const zSentryListIssuesPath = z.object({
1621
+ org_slug: z.string(),
1622
+ project_slug: z.string()
1623
+ });
1624
+ const zSentryListIssuesQuery = z.object({
1625
+ query: z.string().nullish(),
1626
+ sort: z.string().nullish(),
1627
+ limit: z.string().nullish(),
1628
+ cursor: z.string().nullish(),
1629
+ statsPeriod: z.string().nullish()
1630
+ });
1631
+ /**
1632
+ * Issues; paginated by the `Link` header
1633
+ */
1634
+ const zSentryListIssuesResponse = z.array(zSentryIssue);
1635
+ const zReleasesCreateBody = zCreateRelease;
1636
+ const zReleasesCreatePath = z.object({
1637
+ org_slug: z.string(),
1638
+ project_slug: z.string()
1639
+ });
1640
+ /**
1641
+ * Release created
1642
+ */
1643
+ const zReleasesCreateResponse = zReleaseResponse;
1644
+ const zReleasesFinalizeBody = zUpdateRelease;
1645
+ const zReleasesFinalizePath = z.object({
1646
+ org_slug: z.string(),
1647
+ project_slug: z.string(),
1648
+ version: z.string()
1649
+ });
1650
+ /**
1651
+ * Release updated
1652
+ */
1653
+ const zReleasesFinalizeResponse = zReleaseResponse;
1654
+ /**
1655
+ * GitHub App removed
1656
+ */
1657
+ const zGithubDisconnectResponse = z.void();
1658
+ /**
1659
+ * GitHub App and installations
1660
+ */
1661
+ const zGithubStatusResponse = zGitHubStatus;
1662
+ const zGithubCallbackQuery = z.object({
1663
+ code: z.string(),
1664
+ state: z.string()
1665
+ });
1666
+ const zGithubInstalledQuery = z.object({ installation_id: z.int() });
1667
+ const zGithubManifestBody = zManifestRequest;
1668
+ /**
1669
+ * Form to post to GitHub
1670
+ */
1671
+ const zGithubManifestResponse = zManifestResponse;
1672
+ /**
1673
+ * Your GitHub username
1674
+ */
1675
+ const zGithubGetMyLoginResponse = zGitHubLogin;
1676
+ const zGithubPutMyLoginBody = zGitHubLogin;
1677
+ /**
1678
+ * GitHub username saved
1679
+ */
1680
+ const zGithubPutMyLoginResponse = zGitHubLogin;
1681
+ const zGithubRepositoriesQuery = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1682
+ /**
1683
+ * Repositories the installations reach
1684
+ */
1685
+ const zGithubRepositoriesResponse = z.array(zGitHubRepository);
1686
+ /**
1687
+ * GitHub event payload, signed in X-Hub-Signature-256
1688
+ */
1689
+ const zGithubWebhookBody = z.record(z.string(), z.unknown());
1690
+ /**
1691
+ * Event processed
1692
+ */
1693
+ const zGithubWebhookResponse = z.void();
1694
+ /**
1695
+ * List of notification channels
1696
+ */
1697
+ const zAlertChannelsListResponse = z.array(zAlertIntegration);
1698
+ const zAlertChannelsCreateBody = zCreateAlertIntegration;
1699
+ /**
1700
+ * Channel created
1701
+ */
1702
+ const zAlertChannelsCreateResponse = zAlertIntegration;
1703
+ const zAlertChannelsPreviewTemplateBody = zPreviewTemplateBody;
1704
+ /**
1705
+ * Rendered body, or why it would not render
1706
+ */
1707
+ const zAlertChannelsPreviewTemplateResponse = zPreviewTemplateResponse;
1708
+ const zAlertChannelsDeletePath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1709
+ /**
1710
+ * Channel deleted
1711
+ */
1712
+ const zAlertChannelsDeleteResponse = z.void();
1713
+ const zAlertChannelsGetPath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1714
+ /**
1715
+ * Channel details
1716
+ */
1717
+ const zAlertChannelsGetResponse = zAlertIntegration;
1718
+ const zAlertChannelsUpdateBody = zUpdateAlertIntegration;
1719
+ const zAlertChannelsUpdatePath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1720
+ /**
1721
+ * Channel updated
1722
+ */
1723
+ const zAlertChannelsUpdateResponse = zAlertIntegration;
1724
+ const zAlertChannelsTestBody = zTestIntegrationBody;
1725
+ const zAlertChannelsTestPath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1726
+ /**
1727
+ * Test notification sent
1728
+ */
1729
+ const zAlertChannelsTestResponse = zTestChannelResponse;
1730
+ /**
1731
+ * List of invitations
1732
+ */
1733
+ const zInvitationsListResponse = z.array(zInvitationResponse);
1734
+ const zInvitationsCreateBody = zCreateInvitation;
1735
+ /**
1736
+ * Invitation created
1737
+ */
1738
+ const zInvitationsCreateResponse = zInvitationResponse;
1739
+ const zInvitationsRevokePath = z.object({ token: z.string() });
1740
+ /**
1741
+ * Invitation revoked
1742
+ */
1743
+ const zInvitationsRevokeResponse = z.void();
1744
+ const zOauthGetAuthorizationQuery = z.object({
1745
+ response_type: z.string(),
1746
+ client_id: z.string(),
1747
+ redirect_uri: z.string(),
1748
+ code_challenge: z.string(),
1749
+ code_challenge_method: z.string(),
1750
+ state: z.string().nullish(),
1751
+ resource: z.string().nullish()
1752
+ });
1753
+ /**
1754
+ * The verified client asking for access
1755
+ */
1756
+ const zOauthGetAuthorizationResponse = zAuthorizationInfo;
1757
+ const zOauthDecideAuthorizationBody = zAuthorizationDecision;
1758
+ /**
1759
+ * Where to send the browser
1760
+ */
1761
+ const zOauthDecideAuthorizationResponse = zAuthorizationRedirect;
1762
+ /**
1763
+ * Assistants connected to your account
1764
+ */
1765
+ const zOauthListGrantsResponse = z.array(zOAuthGrant);
1766
+ const zOauthRevokeGrantPath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1767
+ /**
1768
+ * Disconnected
1769
+ */
1770
+ const zOauthRevokeGrantResponse = z.void();
1771
+ const zProjectsListQuery = z.object({
1772
+ page: z.int().gte(1).optional(),
1773
+ per_page: z.int().gte(1).lte(100).optional(),
1774
+ order: zSortOrder.optional(),
1775
+ stats_period: z.string().nullish()
1776
+ });
1777
+ /**
1778
+ * Offset-based paginated response wrapper
1779
+ */
1780
+ const zProjectsListResponse = z.object({
1781
+ items: z.array(z.object({
1782
+ created_at: z.iso.datetime({ offset: true }),
1783
+ digested_event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1784
+ dsn: z.string(),
1785
+ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1786
+ name: z.string(),
1787
+ platform: z.string().nullable(),
1788
+ rate_limit_per_hour: z.int().nullable(),
1789
+ rate_limit_per_minute: z.int().nullable(),
1790
+ rate_limited_event_count: z.int(),
1791
+ sentry_key: z.uuid(),
1792
+ slug: z.string(),
1793
+ stats: zProjectListStats.nullish(),
1794
+ stored_event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1795
+ updated_at: z.iso.datetime({ offset: true })
1796
+ })),
1797
+ page: z.int(),
1798
+ per_page: z.int(),
1799
+ total_count: z.int(),
1800
+ total_pages: z.int()
1801
+ });
1802
+ const zProjectsCreateBody = zCreateProject;
1803
+ /**
1804
+ * Project created
1805
+ */
1806
+ const zProjectsCreateResponse = zProjectResponse;
1807
+ const zProjectsDeletePath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1808
+ /**
1809
+ * Project deleted
1810
+ */
1811
+ const zProjectsDeleteResponse = z.void();
1812
+ const zProjectsGetPath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1813
+ /**
1814
+ * Project details
1815
+ */
1816
+ const zProjectsGetResponse = zProjectResponse;
1817
+ const zProjectsUpdateBody = zUpdateProject;
1818
+ const zProjectsUpdatePath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1819
+ /**
1820
+ * Project updated
1821
+ */
1822
+ const zProjectsUpdateResponse = zProjectResponse;
1823
+ const zAgentsDurationPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1824
+ const zAgentsDurationQuery = z.object({
1825
+ period_hours: z.int().nullish(),
1826
+ environment: z.string().nullish(),
1827
+ interval_hours: z.int().gte(1).optional()
1828
+ });
1829
+ /**
1830
+ * Avg/p95 duration over time for agent runs and LLM calls
1831
+ */
1832
+ const zAgentsDurationResponse = z.array(zAgentDurationPoint);
1833
+ const zAgentsEnvironmentsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1834
+ /**
1835
+ * Environments present in this project's AI spans
1836
+ */
1837
+ const zAgentsEnvironmentsResponse = z.array(z.string());
1838
+ const zAgentsModelsTablePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1839
+ const zAgentsModelsTableQuery = z.object({
1840
+ period_hours: z.int().nullish(),
1841
+ environment: z.string().nullish()
1842
+ });
1843
+ /**
1844
+ * Per-model volume, failures, latency and token split
1845
+ */
1846
+ const zAgentsModelsTableResponse = z.array(zAgentModelRow);
1847
+ const zAgentsModelsCallsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1848
+ const zAgentsModelsCallsQuery = z.object({
1849
+ period_hours: z.int().nullish(),
1850
+ environment: z.string().nullish(),
1851
+ limit: z.int().gte(1).lte(100).optional()
1852
+ });
1853
+ /**
1854
+ * Top LLM call counts by response model
1855
+ */
1856
+ const zAgentsModelsCallsResponse = z.array(zGenAiBreakdownRow);
1857
+ const zAgentsModelsTokensPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1858
+ const zAgentsModelsTokensQuery = z.object({
1859
+ period_hours: z.int().nullish(),
1860
+ environment: z.string().nullish(),
1861
+ limit: z.int().gte(1).lte(100).optional()
1862
+ });
1863
+ /**
1864
+ * Top total tokens used by response model
1865
+ */
1866
+ const zAgentsModelsTokensResponse = z.array(zGenAiBreakdownRow);
1867
+ const zAgentsRunsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1868
+ const zAgentsRunsQuery = z.object({
1869
+ period_hours: z.int().nullish(),
1870
+ environment: z.string().nullish(),
1871
+ interval_hours: z.int().gte(1).optional()
1872
+ });
1873
+ /**
1874
+ * Agent runs over time
1875
+ */
1876
+ const zAgentsRunsResponse = z.array(zAgentTimeseriesPoint);
1877
+ const zAgentsSummaryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1878
+ const zAgentsSummaryQuery = z.object({
1879
+ period_hours: z.int().nullish(),
1880
+ environment: z.string().nullish()
1881
+ });
1882
+ /**
1883
+ * Headline totals for the selected window
1884
+ */
1885
+ const zAgentsSummaryResponse = zAgentSummary;
1886
+ const zAgentsToolsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1887
+ const zAgentsToolsQuery = z.object({
1888
+ period_hours: z.int().nullish(),
1889
+ environment: z.string().nullish(),
1890
+ limit: z.int().gte(1).lte(100).optional()
1891
+ });
1892
+ /**
1893
+ * Top tool call counts by tool name
1894
+ */
1895
+ const zAgentsToolsResponse = z.array(zGenAiBreakdownRow);
1896
+ const zAgentsToolsTablePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1897
+ const zAgentsToolsTableQuery = z.object({
1898
+ period_hours: z.int().nullish(),
1899
+ environment: z.string().nullish()
1900
+ });
1901
+ /**
1902
+ * Per-tool call volume, failures and latency
1903
+ */
1904
+ const zAgentsToolsTableResponse = z.array(zAgentToolRow);
1905
+ const zAgentsTracesPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1906
+ const zAgentsTracesQuery = z.object({
1907
+ period_hours: z.int().nullish(),
1908
+ environment: z.string().nullish(),
1909
+ page: z.int().gte(1).optional(),
1910
+ per_page: z.int().gte(1).lte(100).optional()
1911
+ });
1912
+ /**
1913
+ * Offset-based paginated response wrapper
1914
+ */
1915
+ const zAgentsTracesResponse = z.object({
1916
+ items: z.array(z.object({
1917
+ agent_names: z.array(z.string()),
1918
+ duration_ms: z.number().nullable(),
1919
+ error_count: z.int(),
1920
+ llm_call_count: z.int(),
1921
+ started_at: z.iso.datetime({ offset: true }),
1922
+ tool_call_count: z.int(),
1923
+ total_tokens: z.number(),
1924
+ trace_id: z.string()
1925
+ })),
1926
+ page: z.int(),
1927
+ per_page: z.int(),
1928
+ total_count: z.int(),
1929
+ total_pages: z.int()
1930
+ });
1931
+ const zAlertRulesListHistoryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1932
+ const zAlertRulesListHistoryQuery = z.object({ limit: z.int().optional() });
1933
+ /**
1934
+ * Alert history
1935
+ */
1936
+ const zAlertRulesListHistoryResponse = z.array(zAlertHistory);
1937
+ const zAlertRulesListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1938
+ /**
1939
+ * List of alert rules
1940
+ */
1941
+ const zAlertRulesListResponse = z.array(zAlertRuleResponse);
1942
+ const zAlertRulesCreateBody = zCreateAlertRule;
1943
+ const zAlertRulesCreatePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1944
+ /**
1945
+ * Alert rule created
1946
+ */
1947
+ const zAlertRulesCreateResponse = zAlertRuleResponse;
1948
+ const zAlertRulesDeletePath = z.object({
1949
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1950
+ rule_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1951
+ });
1952
+ /**
1953
+ * Alert rule deleted
1954
+ */
1955
+ const zAlertRulesDeleteResponse = z.void();
1956
+ const zAlertRulesGetPath = z.object({
1957
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1958
+ rule_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1959
+ });
1960
+ /**
1961
+ * Alert rule details
1962
+ */
1963
+ const zAlertRulesGetResponse = zAlertRuleResponse;
1964
+ const zAlertRulesUpdateBody = zUpdateAlertRule;
1965
+ const zAlertRulesUpdatePath = z.object({
1966
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1967
+ rule_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
1968
+ });
1969
+ /**
1970
+ * Alert rule updated
1971
+ */
1972
+ const zAlertRulesUpdateResponse = zAlertRuleResponse;
1973
+ const zEventsGetBySentryIdPath = z.object({
1974
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
1975
+ event_id: z.string()
1976
+ });
1977
+ /**
1978
+ * Full event detail, including its issue ID
1979
+ */
1980
+ const zEventsGetBySentryIdResponse = zEventDetailResponse;
1981
+ const zStatsGetEventTimeseriesPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1982
+ const zStatsGetEventTimeseriesQuery = z.object({
1983
+ period: z.string().optional(),
1984
+ interval: z.int().optional()
1985
+ });
1986
+ /**
1987
+ * Time-bucketed error-event volume by severity
1988
+ */
1989
+ const zStatsGetEventTimeseriesResponse = z.array(zEventTimeseriesPoint);
1990
+ const zGithubDeleteProjectRepositoryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1991
+ /**
1992
+ * Repository removed
1993
+ */
1994
+ const zGithubDeleteProjectRepositoryResponse = z.void();
1995
+ const zGithubGetProjectRepositoryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
1996
+ /**
1997
+ * The project's repository, if any
1998
+ */
1999
+ const zGithubGetProjectRepositoryResponse = zProjectRepository.nullable();
2000
+ const zGithubPutProjectRepositoryBody = zUpdateProjectRepository;
2001
+ const zGithubPutProjectRepositoryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2002
+ /**
2003
+ * Repository saved
2004
+ */
2005
+ const zGithubPutProjectRepositoryResponse = zProjectRepository;
2006
+ const zGithubSyncCodeownersPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2007
+ /**
2008
+ * CODEOWNERS synced
2009
+ */
2010
+ const zGithubSyncCodeownersResponse = zProjectRepository;
2011
+ const zIssuesBulkDeleteBody = zBulkDeleteIssues;
2012
+ const zIssuesBulkDeletePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2013
+ /**
2014
+ * Number of issues deleted
2015
+ */
2016
+ const zIssuesBulkDeleteResponse = zBulkDeleteResponse;
2017
+ const zIssuesListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2018
+ const zIssuesListQuery = z.object({
2019
+ page: z.int().gte(1).optional(),
2020
+ per_page: z.int().gte(1).lte(100).optional(),
2021
+ sort: zIssueSort.optional(),
2022
+ order: zSortOrder.optional(),
2023
+ filter: zIssueFilter.optional(),
2024
+ q: z.string().nullish()
2025
+ });
2026
+ /**
2027
+ * Offset-based paginated response wrapper
2028
+ */
2029
+ const zIssuesListResponse = z.object({
2030
+ items: z.array(z.object({
2031
+ assigned_to: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
2032
+ assignee_type: z.string().nullable(),
2033
+ culprit: z.string(),
2034
+ event_count: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2035
+ first_release: z.string(),
2036
+ first_seen: z.iso.datetime({ offset: true }),
2037
+ has_seen: z.boolean().nullish(),
2038
+ id: z.uuid(),
2039
+ is_bookmarked: z.boolean().nullish(),
2040
+ is_muted: z.boolean(),
2041
+ is_resolved: z.boolean(),
2042
+ is_subscribed: z.boolean().nullish(),
2043
+ issue_category: z.string(),
2044
+ issue_type: z.string(),
2045
+ last_release: z.string(),
2046
+ last_seen: z.iso.datetime({ offset: true }),
2047
+ level: z.string().nullable(),
2048
+ logger: z.string(),
2049
+ platform: z.string().nullable(),
2050
+ priority: zIssuePriority.nullable(),
2051
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2052
+ short_id: z.string(),
2053
+ status: zIssueStatus,
2054
+ status_details: z.record(z.string(), z.unknown()),
2055
+ substatus: z.string().nullable(),
2056
+ title: z.string(),
2057
+ trend: z.array(z.int()).nullish(),
2058
+ user_count: z.int().nullish(),
2059
+ user_report_count: z.int().nullish(),
2060
+ value: z.string()
2061
+ })),
2062
+ page: z.int(),
2063
+ per_page: z.int(),
2064
+ total_count: z.int(),
2065
+ total_pages: z.int()
2066
+ });
2067
+ const zIssuesBulkUpdateBody = zBulkUpdateIssues;
2068
+ const zIssuesBulkUpdatePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2069
+ /**
2070
+ * Number of issues updated
2071
+ */
2072
+ const zIssuesBulkUpdateResponse = zBulkUpdateResponse;
2073
+ const zIssuesDeletePath = z.object({
2074
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2075
+ issue_id: z.uuid()
2076
+ });
2077
+ /**
2078
+ * Issue deleted
2079
+ */
2080
+ const zIssuesDeleteResponse = z.void();
2081
+ const zIssuesGetPath = z.object({
2082
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2083
+ issue_id: z.uuid()
2084
+ });
2085
+ /**
2086
+ * Issue details
2087
+ */
2088
+ const zIssuesGetResponse = zIssueResponse;
2089
+ const zIssuesUpdateBody = zUpdateIssueState;
2090
+ const zIssuesUpdatePath = z.object({
2091
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2092
+ issue_id: z.uuid()
2093
+ });
2094
+ /**
2095
+ * Issue updated
2096
+ */
2097
+ const zIssuesUpdateResponse = zIssueResponse;
2098
+ const zIssuesGetActivityPath = z.object({
2099
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2100
+ issue_id: z.uuid()
2101
+ });
2102
+ /**
2103
+ * Activity log (status changes, comments, …)
2104
+ */
2105
+ const zIssuesGetActivityResponse = z.array(zActivityEntry);
2106
+ const zIssuesGetAggregatesPath = z.object({
2107
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2108
+ issue_id: z.uuid()
2109
+ });
2110
+ /**
2111
+ * Unique user count and top tags
2112
+ */
2113
+ const zIssuesGetAggregatesResponse = zIssueAggregates;
2114
+ const zIssuesSetBookmarkBody = zToggleRequest;
2115
+ const zIssuesSetBookmarkPath = z.object({
2116
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2117
+ issue_id: z.uuid()
2118
+ });
2119
+ /**
2120
+ * Updated bookmark state
2121
+ */
2122
+ const zIssuesSetBookmarkResponse = zBookmarkResponse;
2123
+ const zIssuesCreateCommentBody = zCommentRequest;
2124
+ const zIssuesCreateCommentPath = z.object({
2125
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2126
+ issue_id: z.uuid()
2127
+ });
2128
+ /**
2129
+ * Comment added
2130
+ */
2131
+ const zIssuesCreateCommentResponse = zActivityEntry;
2132
+ const zEventsListPath = z.object({
2133
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2134
+ issue_id: z.uuid()
2135
+ });
2136
+ const zEventsListQuery = z.object({
2137
+ order: zSortOrder.optional(),
2138
+ cursor: z.string().nullish()
2139
+ });
2140
+ /**
2141
+ * Paginated response wrapper (cursor-based)
2142
+ */
2143
+ const zEventsListResponse = z.object({
2144
+ has_more: z.boolean(),
2145
+ items: z.array(z.object({
2146
+ environment: z.string(),
2147
+ event_id: z.string(),
2148
+ event_type: z.string(),
2149
+ id: z.uuid(),
2150
+ issue_id: z.uuid().nullable(),
2151
+ level: z.string(),
2152
+ platform: z.string(),
2153
+ release: z.string(),
2154
+ timestamp: z.iso.datetime({ offset: true }),
2155
+ title: z.string()
2156
+ })),
2157
+ next_cursor: z.string().nullish()
2158
+ });
2159
+ const zEventsGetPath = z.object({
2160
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2161
+ issue_id: z.uuid(),
2162
+ event_id: z.uuid()
2163
+ });
2164
+ /**
2165
+ * Full event detail
2166
+ */
2167
+ const zEventsGetResponse = zEventDetailResponse;
2168
+ const zGithubIssuePath = z.object({
2169
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2170
+ issue_id: z.uuid()
2171
+ });
2172
+ /**
2173
+ * Links, suspect commits and owners
2174
+ */
2175
+ const zGithubIssueResponse = zIssueGitHub;
2176
+ const zGithubCreateIssueBody = zCreateGitHubIssue;
2177
+ const zGithubCreateIssuePath = z.object({
2178
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2179
+ issue_id: z.uuid()
2180
+ });
2181
+ /**
2182
+ * GitHub issue created and linked
2183
+ */
2184
+ const zGithubCreateIssueResponse = zIssueLink;
2185
+ const zGithubLinkIssueBody = zLinkGitHubIssue;
2186
+ const zGithubLinkIssuePath = z.object({
2187
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2188
+ issue_id: z.uuid()
2189
+ });
2190
+ /**
2191
+ * GitHub issue linked
2192
+ */
2193
+ const zGithubLinkIssueResponse = zIssueLink;
2194
+ const zGithubUnlinkIssuePath = z.object({
2195
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2196
+ issue_id: z.uuid(),
2197
+ link_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
2198
+ });
2199
+ /**
2200
+ * Link removed
2201
+ */
2202
+ const zGithubUnlinkIssueResponse = z.void();
2203
+ const zIssuesGetHashesPath = z.object({
2204
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2205
+ issue_id: z.uuid()
2206
+ });
2207
+ /**
2208
+ * Grouping hashes mapped to the issue
2209
+ */
2210
+ const zIssuesGetHashesResponse = z.array(zGrouping);
2211
+ const zIssuesMarkSeenPath = z.object({
2212
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2213
+ issue_id: z.uuid()
2214
+ });
2215
+ /**
2216
+ * Issue marked as seen
2217
+ */
2218
+ const zIssuesMarkSeenResponse = zSeenResponse;
2219
+ const zIssuesGetStatsPath = z.object({
2220
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2221
+ issue_id: z.uuid()
2222
+ });
2223
+ const zIssuesGetStatsQuery = z.object({ window: zIssueStatsWindow.optional() });
2224
+ /**
2225
+ * Zero-filled event-count timeseries
2226
+ */
2227
+ const zIssuesGetStatsResponse = zIssueStatsResponse;
2228
+ const zIssuesSetSubscriptionBody = zToggleRequest;
2229
+ const zIssuesSetSubscriptionPath = z.object({
2230
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2231
+ issue_id: z.uuid()
2232
+ });
2233
+ /**
2234
+ * Updated subscription state
2235
+ */
2236
+ const zIssuesSetSubscriptionResponse = zSubscriptionResponse;
2237
+ const zIssuesGetTagValuesPath = z.object({
2238
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2239
+ issue_id: z.uuid(),
2240
+ key: z.string()
2241
+ });
2242
+ /**
2243
+ * Distinct values for the tag key, one entry per value (Sentry-compatible: a bare list, not wrapped)
2244
+ */
2245
+ const zIssuesGetTagValuesResponse = z.array(zIssueTagValue);
2246
+ const zIssuesListUserReportsPath = z.object({
2247
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2248
+ issue_id: z.uuid()
2249
+ });
2250
+ /**
2251
+ * User feedback reports for the issue
2252
+ */
2253
+ const zIssuesListUserReportsResponse = z.array(zUserReport);
2254
+ const zIssuesCreateUserReportBody = zUserReportRequest;
2255
+ const zIssuesCreateUserReportPath = z.object({
2256
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2257
+ issue_id: z.uuid()
2258
+ });
2259
+ /**
2260
+ * User feedback attached
2261
+ */
2262
+ const zIssuesCreateUserReportResponse = zUserReport;
2263
+ const zLogsListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2264
+ const zLogsListQuery = z.object({
2265
+ page: z.int().gte(1).optional(),
2266
+ per_page: z.int().gte(1).lte(100).optional(),
2267
+ level: z.string().nullish(),
2268
+ trace_id: z.string().nullish()
2269
+ });
2270
+ /**
2271
+ * Offset-based paginated response wrapper
2272
+ */
2273
+ const zLogsListResponse = z.object({
2274
+ items: z.array(z.object({
2275
+ attributes: z.record(z.string(), z.unknown()),
2276
+ body: z.string(),
2277
+ id: z.uuid(),
2278
+ ingested_at: z.iso.datetime({ offset: true }),
2279
+ level: z.string(),
2280
+ severity_number: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }).nullable(),
2281
+ span_id: z.string().nullable(),
2282
+ timestamp: z.iso.datetime({ offset: true }),
2283
+ trace_id: z.string().nullable()
2284
+ })),
2285
+ page: z.int(),
2286
+ per_page: z.int(),
2287
+ total_count: z.int(),
2288
+ total_pages: z.int()
2289
+ });
2290
+ const zMembersListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2291
+ /**
2292
+ * List of project members
2293
+ */
2294
+ const zMembersListResponse = z.array(zProjectMemberResponse);
2295
+ const zMembersUpsertBody = zUpsertProjectMember;
2296
+ const zMembersUpsertPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2297
+ /**
2298
+ * Member added or updated
2299
+ */
2300
+ const zMembersUpsertResponse = zProjectMember;
2301
+ const zMembersRemovePath = z.object({
2302
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2303
+ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" })
2304
+ });
2305
+ /**
2306
+ * Member removed
2307
+ */
2308
+ const zMembersRemoveResponse = z.void();
2309
+ const zMonitorsListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2310
+ /**
2311
+ * Every cron monitor of the project, with its environments and recent check-ins
2312
+ */
2313
+ const zMonitorsListResponse = z.array(zMonitorResponse);
2314
+ const zMonitorsCreateBody = zCreateMonitor;
2315
+ const zMonitorsCreatePath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2316
+ /**
2317
+ * Created
2318
+ */
2319
+ const zMonitorsCreateResponse = zMonitorResponse;
2320
+ const zMonitorsDeletePath = z.object({
2321
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2322
+ slug: z.string()
2323
+ });
2324
+ /**
2325
+ * Deleted with its check-ins; its issues stay
2326
+ */
2327
+ const zMonitorsDeleteResponse = z.void();
2328
+ const zMonitorsGetPath = z.object({
2329
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2330
+ slug: z.string()
2331
+ });
2332
+ /**
2333
+ * The monitor
2334
+ */
2335
+ const zMonitorsGetResponse = zMonitorResponse;
2336
+ const zMonitorsUpdateBody = zUpdateMonitor;
2337
+ const zMonitorsUpdatePath = z.object({
2338
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2339
+ slug: z.string()
2340
+ });
2341
+ /**
2342
+ * Updated
2343
+ */
2344
+ const zMonitorsUpdateResponse = zMonitorResponse;
2345
+ const zMonitorsListCheckinsPath = z.object({
2346
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2347
+ slug: z.string()
2348
+ });
2349
+ const zMonitorsListCheckinsQuery = z.object({
2350
+ page: z.int().optional(),
2351
+ per_page: z.int().optional(),
2352
+ environment: z.string().nullish()
2353
+ });
2354
+ /**
2355
+ * Offset-based paginated response wrapper
2356
+ */
2357
+ const zMonitorsListCheckinsResponse = z.object({
2358
+ items: z.array(z.object({
2359
+ date_added: z.iso.datetime({ offset: true }),
2360
+ date_updated: z.iso.datetime({ offset: true }),
2361
+ duration_ms: z.int().nullable(),
2362
+ environment: z.string(),
2363
+ expected_time: z.iso.datetime({ offset: true }).nullable(),
2364
+ id: z.uuid(),
2365
+ status: zCheckInStatus
2366
+ })),
2367
+ page: z.int(),
2368
+ per_page: z.int(),
2369
+ total_count: z.int(),
2370
+ total_pages: z.int()
2371
+ });
2372
+ const zReleasesNewIssuesPath = z.object({
2373
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2374
+ release: z.string()
2375
+ });
2376
+ const zReleasesNewIssuesQuery = z.object({ limit: z.int().optional() });
2377
+ /**
2378
+ * Issues first seen in this release, most recent first
2379
+ */
2380
+ const zReleasesNewIssuesResponse = z.array(zIssueResponse);
2381
+ const zSessionsGetStatsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2382
+ const zSessionsGetStatsQuery = z.object({
2383
+ period: z.string().nullish(),
2384
+ release: z.string().nullish(),
2385
+ page: z.int().gte(1).optional(),
2386
+ per_page: z.int().gte(1).lte(100).optional()
2387
+ });
2388
+ /**
2389
+ * Offset-based paginated response wrapper
2390
+ */
2391
+ const zSessionsGetStatsResponse = z.object({
2392
+ items: z.array(z.object({
2393
+ abnormal: z.int(),
2394
+ crash_free_sessions_rate: z.number().nullable(),
2395
+ crash_free_users_rate: z.number().nullable(),
2396
+ crashed: z.int(),
2397
+ environment: z.string(),
2398
+ errored: z.int(),
2399
+ healthy: z.int(),
2400
+ release: z.string(),
2401
+ total: z.int()
2402
+ })),
2403
+ page: z.int(),
2404
+ per_page: z.int(),
2405
+ total_count: z.int(),
2406
+ total_pages: z.int()
2407
+ });
2408
+ const zSessionsGetSummaryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2409
+ const zSessionsGetSummaryQuery = z.object({ period: z.string().optional() });
2410
+ /**
2411
+ * Project-wide session health summary
2412
+ */
2413
+ const zSessionsGetSummaryResponse = zSessionSummary;
2414
+ const zSessionsGetTimeseriesPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2415
+ const zSessionsGetTimeseriesQuery = z.object({
2416
+ period: z.string().optional(),
2417
+ interval: z.int().optional()
2418
+ });
2419
+ /**
2420
+ * Time-bucketed session trend, project-wide
2421
+ */
2422
+ const zSessionsGetTimeseriesResponse = z.array(zSessionTimeseriesPoint);
2423
+ const zSpansListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2424
+ const zSpansListQuery = z.object({
2425
+ page: z.int().gte(1).optional(),
2426
+ per_page: z.int().gte(1).lte(100).optional(),
2427
+ op: z.string().nullish(),
2428
+ status: z.string().nullish(),
2429
+ trace_id: z.string().nullish(),
2430
+ operation_type: z.string().nullish()
2431
+ });
2432
+ /**
2433
+ * Offset-based paginated response wrapper
2434
+ */
2435
+ const zSpansListResponse = z.object({
2436
+ items: z.array(z.object({
2437
+ description: z.string().nullable(),
2438
+ duration_ms: z.number().nullable(),
2439
+ environment: z.string().nullable(),
2440
+ exclusive_time_ms: z.number().nullable(),
2441
+ gen_ai_agent_name: z.string().nullable(),
2442
+ gen_ai_conversation_id: z.string().nullable(),
2443
+ gen_ai_operation_type: z.string().nullable(),
2444
+ gen_ai_request_model: z.string().nullable(),
2445
+ gen_ai_response_model: z.string().nullable(),
2446
+ gen_ai_tool_name: z.string().nullable(),
2447
+ gen_ai_usage_input_tokens: z.number().nullable(),
2448
+ gen_ai_usage_output_tokens: z.number().nullable(),
2449
+ gen_ai_usage_total_tokens: z.number().nullable(),
2450
+ id: z.uuid(),
2451
+ is_segment: z.boolean(),
2452
+ op: z.string().nullable(),
2453
+ parent_span_id: z.string().nullable(),
2454
+ platform: z.string().nullable(),
2455
+ release: z.string().nullable(),
2456
+ segment_id: z.string().nullable(),
2457
+ span_id: z.string().nullable(),
2458
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
2459
+ status: z.string().nullable(),
2460
+ timestamp: z.iso.datetime({ offset: true }).nullable(),
2461
+ trace_id: z.string().nullable(),
2462
+ transaction_id: z.uuid().nullable()
2463
+ })),
2464
+ page: z.int(),
2465
+ per_page: z.int(),
2466
+ total_count: z.int(),
2467
+ total_pages: z.int()
2468
+ });
2469
+ const zSpansGetPath = z.object({
2470
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2471
+ span_id: z.uuid()
2472
+ });
2473
+ /**
2474
+ * Span with its full attribute bag
2475
+ */
2476
+ const zSpansGetResponse = zSpanDetailResponse;
2477
+ const zStatsGetSummaryPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2478
+ const zStatsGetSummaryQuery = z.object({ period: z.string().optional() });
2479
+ /**
2480
+ * Project counters with previous-period comparison
2481
+ */
2482
+ const zStatsGetSummaryResponse = zProjectStatsSummary;
2483
+ const zTransactionsListPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2484
+ const zTransactionsListQuery = z.object({
2485
+ page: z.int().gte(1).optional(),
2486
+ per_page: z.int().gte(1).lte(100).optional(),
2487
+ name: z.string().nullish(),
2488
+ op: z.string().nullish(),
2489
+ status: z.string().nullish(),
2490
+ environment: z.string().nullish(),
2491
+ release: z.string().nullish()
2492
+ });
2493
+ /**
2494
+ * Offset-based paginated response wrapper
2495
+ */
2496
+ const zTransactionsListResponse = z.object({
2497
+ items: z.array(z.object({
2498
+ duration_ms: z.number().nullable(),
2499
+ environment: z.string(),
2500
+ event_id: z.string(),
2501
+ id: z.uuid(),
2502
+ ingested_at: z.iso.datetime({ offset: true }),
2503
+ platform: z.string(),
2504
+ release: z.string(),
2505
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
2506
+ timestamp: z.iso.datetime({ offset: true }),
2507
+ transaction_name: z.string()
2508
+ })),
2509
+ page: z.int(),
2510
+ per_page: z.int(),
2511
+ total_count: z.int(),
2512
+ total_pages: z.int()
2513
+ });
2514
+ const zTransactionsGetStatsPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2515
+ const zTransactionsGetStatsQuery = z.object({
2516
+ page: z.int().gte(1).optional(),
2517
+ per_page: z.int().gte(1).lte(100).optional()
2518
+ });
2519
+ /**
2520
+ * Offset-based paginated response wrapper
2521
+ */
2522
+ const zTransactionsGetStatsResponse = z.object({
2523
+ items: z.array(z.object({
2524
+ count: z.int(),
2525
+ failure_rate: z.number(),
2526
+ op: z.string().nullable(),
2527
+ p50_ms: z.number(),
2528
+ p95_ms: z.number(),
2529
+ p99_ms: z.number(),
2530
+ transaction_name: z.string()
2531
+ })),
2532
+ page: z.int(),
2533
+ per_page: z.int(),
2534
+ total_count: z.int(),
2535
+ total_pages: z.int()
2536
+ });
2537
+ const zTransactionsGetStatGroupPath = z.object({ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2538
+ const zTransactionsGetStatGroupQuery = z.object({
2539
+ name: z.string(),
2540
+ op: z.string().nullish()
2541
+ });
2542
+ /**
2543
+ * Aggregate stats for one (transaction, op) group
2544
+ */
2545
+ const zTransactionsGetStatGroupResponse = zTransactionStatsResponse;
2546
+ const zTransactionsGetPath = z.object({
2547
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2548
+ transaction_id: z.uuid()
2549
+ });
2550
+ /**
2551
+ * Full transaction detail
2552
+ */
2553
+ const zTransactionsGetResponse = zTransactionDetailResponse;
2554
+ const zTransactionsGetSpansPath = z.object({
2555
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2556
+ transaction_id: z.uuid()
2557
+ });
2558
+ /**
2559
+ * Indexed spans for the transaction (waterfall order)
2560
+ */
2561
+ const zTransactionsGetSpansResponse = z.array(z.object({
2562
+ description: z.string().nullable(),
2563
+ duration_ms: z.number().nullable(),
2564
+ environment: z.string().nullable(),
2565
+ exclusive_time_ms: z.number().nullable(),
2566
+ gen_ai_agent_name: z.string().nullable(),
2567
+ gen_ai_conversation_id: z.string().nullable(),
2568
+ gen_ai_operation_type: z.string().nullable(),
2569
+ gen_ai_request_model: z.string().nullable(),
2570
+ gen_ai_response_model: z.string().nullable(),
2571
+ gen_ai_tool_name: z.string().nullable(),
2572
+ gen_ai_usage_input_tokens: z.number().nullable(),
2573
+ gen_ai_usage_output_tokens: z.number().nullable(),
2574
+ gen_ai_usage_total_tokens: z.number().nullable(),
2575
+ id: z.uuid(),
2576
+ is_segment: z.boolean(),
2577
+ op: z.string().nullable(),
2578
+ parent_span_id: z.string().nullable(),
2579
+ platform: z.string().nullable(),
2580
+ release: z.string().nullable(),
2581
+ segment_id: z.string().nullable(),
2582
+ span_id: z.string().nullable(),
2583
+ start_timestamp: z.iso.datetime({ offset: true }).nullable(),
2584
+ status: z.string().nullable(),
2585
+ timestamp: z.iso.datetime({ offset: true }).nullable(),
2586
+ trace_id: z.string().nullable(),
2587
+ transaction_id: z.uuid().nullable()
2588
+ }));
2589
+ /**
2590
+ * The server's per-project limits
2591
+ */
2592
+ const zProjectsGetRateLimitsResponse = zRateLimitsResponse;
2593
+ const zSchedulesPreviewBody = zPreviewSchedule;
2594
+ /**
2595
+ * The next five runs
2596
+ */
2597
+ const zSchedulesPreviewResponse = zSchedulePreview;
2598
+ /**
2599
+ * Whether the MCP endpoint is on, and its URL
2600
+ */
2601
+ const zSettingsGetMcpResponse = zMcpStatus;
2602
+ const zSettingsUpdateMcpBody = zMcpSettings;
2603
+ /**
2604
+ * The MCP endpoint's new state, and its URL
2605
+ */
2606
+ const zSettingsUpdateMcpResponse = zMcpStatus;
2607
+ /**
2608
+ * How long ago each project's data arrived, per kind
2609
+ */
2610
+ const zStorageGetAgeResponse = zStorageAge;
2611
+ const zStorageExecuteCleanupBody = zCleanupRequest;
2612
+ /**
2613
+ * Cleanup started in the background; poll its status
2614
+ */
2615
+ const zStorageExecuteCleanupResponse = zCleanupStatus;
2616
+ const zStoragePreviewCleanupBody = zCleanupRequest;
2617
+ /**
2618
+ * Dry-run: rows a cleanup would remove
2619
+ */
2620
+ const zStoragePreviewCleanupResponse = zCleanupCounts;
2621
+ /**
2622
+ * The current or last cleanup and the rows it removed
2623
+ */
2624
+ const zStorageGetCleanupStatusResponse = zCleanupStatus;
2625
+ /**
2626
+ * Per-project storage breakdown
2627
+ */
2628
+ const zStorageGetProjectsResponse = z.array(z.object({
2629
+ estimated_bytes: z.int(),
2630
+ events_bytes: z.int(),
2631
+ events_count: z.int(),
2632
+ logs_bytes: z.int(),
2633
+ logs_count: z.int(),
2634
+ project_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }),
2635
+ project_name: z.string(),
2636
+ source_maps_count: z.int(),
2637
+ spans_count: z.int(),
2638
+ transactions_bytes: z.int(),
2639
+ transactions_count: z.int()
2640
+ }));
2641
+ /**
2642
+ * Retention settings, next cleanup and last cleanup
2643
+ */
2644
+ const zStorageGetRetentionResponse = zRetentionResponse;
2645
+ const zStorageUpdateRetentionBody = zRetentionSettings;
2646
+ /**
2647
+ * Saved; the new schedule applies within a minute
2648
+ */
2649
+ const zStorageUpdateRetentionResponse = zRetentionResponse;
2650
+ const zStoragePreviewRetentionBody = zRetentionSettings;
2651
+ /**
2652
+ * Dry-run: rows enforcing these settings now would remove
2653
+ */
2654
+ const zStoragePreviewRetentionResponse = zCleanupCounts;
2655
+ /**
2656
+ * Cleanup started in the background; poll its status
2657
+ */
2658
+ const zStorageRunRetentionResponse = zCleanupStatus;
2659
+ /**
2660
+ * Orphaned source maps removed
2661
+ */
2662
+ const zStorageGcSourceMapsResponse = zSourceMapGcResult;
2663
+ /**
2664
+ * Dry-run: orphaned source maps a GC would remove
2665
+ */
2666
+ const zStoragePreviewSourceMapGcResponse = zSourceMapGcResult;
2667
+ /**
2668
+ * Instance-wide storage summary
2669
+ */
2670
+ const zStorageGetSummaryResponse = zStorageSummary;
2671
+ /**
2672
+ * List of team members
2673
+ */
2674
+ const zTeamListResponse = z.array(zTeamMemberResponse);
2675
+ const zTeamDeleteUserPath = z.object({ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2676
+ /**
2677
+ * User deleted
2678
+ */
2679
+ const zTeamDeleteUserResponse = z.void();
2680
+ const zTeamUpdateRoleBody = zUpdateUserRole;
2681
+ const zTeamUpdateRolePath = z.object({ user_id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2682
+ /**
2683
+ * Role updated
2684
+ */
2685
+ const zTeamUpdateRoleResponse = z.void();
2686
+ /**
2687
+ * What the next heartbeat would carry
2688
+ */
2689
+ const zTelemetryPreviewResponse = zTelemetryPreview;
2690
+ /**
2691
+ * List of tokens (masked)
2692
+ */
2693
+ const zTokensListResponse = z.array(zAuthTokenResponse);
2694
+ const zTokensCreateBody = zCreateAuthToken;
2695
+ /**
2696
+ * Token created (full token shown once)
2697
+ */
2698
+ const zTokensCreateResponse = zAuthTokenCreatedResponse;
2699
+ const zTokensDeletePath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2700
+ /**
2701
+ * Token revoked
2702
+ */
2703
+ const zTokensDeleteResponse = z.void();
2704
+ const zTokensGetPath = z.object({ id: z.int().min(-2147483648, { error: "Invalid value: Expected int32 to be >= -2147483648" }).max(2147483647, { error: "Invalid value: Expected int32 to be <= 2147483647" }) });
2705
+ /**
2706
+ * Token details (full token value)
2707
+ */
2708
+ const zTokensGetResponse = zAuthTokenCreatedResponse;
2709
+ const zAuthAcceptInvitationBody = zAcceptInvitation;
2710
+ /**
2711
+ * Invitation accepted, user created and logged in
2712
+ */
2713
+ const zAuthAcceptInvitationResponse = zAuthResponse;
2714
+ const zAuthGetInvitationPath = z.object({ token: z.string() });
2715
+ /**
2716
+ * Invitation info
2717
+ */
2718
+ const zAuthGetInvitationResponse = zInvitationInfoResponse;
2719
+ const zAuthLoginBody = zLoginRequest;
2720
+ /**
2721
+ * Logged in
2722
+ */
2723
+ const zAuthLoginResponse = zAuthResponse;
2724
+ /**
2725
+ * Logged out
2726
+ */
2727
+ const zAuthLogoutResponse = z.void();
2728
+ /**
2729
+ * Current user
2730
+ */
2731
+ const zAuthGetCurrentUserResponse = zUserResponse;
2732
+ const zAuthUpdateCurrentUserBody = zUpdatePreferencesRequest;
2733
+ /**
2734
+ * Updated user
2735
+ */
2736
+ const zAuthUpdateCurrentUserResponse = zUserResponse;
2737
+ const zAuthChangePasswordBody = zChangePasswordRequest;
2738
+ /**
2739
+ * Password changed
2740
+ */
2741
+ const zAuthChangePasswordResponse = z.void();
2742
+ const zAuthRegisterBody = zCreateUserRequest;
2743
+ const zAuthSsoCallbackQuery = z.object({
2744
+ code: z.string().nullish(),
2745
+ state: z.string().nullish(),
2746
+ error: z.string().nullish()
2747
+ });
2748
+ /**
2749
+ * SSO login completed
2750
+ */
2751
+ const zAuthSsoCallbackResponse = zAuthResponse;
2752
+ /**
2753
+ * Public SSO configuration
2754
+ */
2755
+ const zAuthSsoConfigResponse = zSsoConfigResponse;
2756
+ /**
2757
+ * The account waiting for its password
2758
+ */
2759
+ const zAuthSsoLinkResponse = zSsoLinkResponse;
2760
+ const zAuthConfirmSsoLinkBody = zConfirmSsoLinkRequest;
2761
+ /**
2762
+ * Identity linked and signed in
2763
+ */
2764
+ const zAuthConfirmSsoLinkResponse = zAuthResponse;
2765
+ /**
2766
+ * OIDC authorization URL
2767
+ */
2768
+ const zAuthSsoStartResponse = zSsoStartResponse;
2769
+ /**
2770
+ * Server is alive
2771
+ */
2772
+ const zHealthLivenessResponse = zLivenessResponse;
2773
+ /**
2774
+ * Service is ready
2775
+ */
2776
+ const zHealthReadinessResponse = zReadinessResponse;
2777
+ /**
2778
+ * Server version info
2779
+ */
2780
+ const zHealthVersionResponse = zVersionResponse;
2781
+ const zSentryOpenIssuePath = z.object({
2782
+ org_slug: z.string(),
2783
+ project_slug: z.string(),
2784
+ issue_id: z.string().regex(/^[0-9]+$/)
2785
+ });
2786
+ //#endregion
2787
+ export { zAcceptInvitation, zActivityEntry, zAgentDurationPoint, zAgentModelRow, zAgentSummary, zAgentTimeseriesPoint, zAgentToolRow, zAgentsDurationPath, zAgentsDurationQuery, zAgentsDurationResponse, zAgentsEnvironmentsPath, zAgentsEnvironmentsResponse, zAgentsModelsCallsPath, zAgentsModelsCallsQuery, zAgentsModelsCallsResponse, zAgentsModelsTablePath, zAgentsModelsTableQuery, zAgentsModelsTableResponse, zAgentsModelsTokensPath, zAgentsModelsTokensQuery, zAgentsModelsTokensResponse, zAgentsRunsPath, zAgentsRunsQuery, zAgentsRunsResponse, zAgentsSummaryPath, zAgentsSummaryQuery, zAgentsSummaryResponse, zAgentsToolsPath, zAgentsToolsQuery, zAgentsToolsResponse, zAgentsToolsTablePath, zAgentsToolsTableQuery, zAgentsToolsTableResponse, zAgentsTracesPath, zAgentsTracesQuery, zAgentsTracesResponse, zAlertChannelsCreateBody, zAlertChannelsCreateResponse, zAlertChannelsDeletePath, zAlertChannelsDeleteResponse, zAlertChannelsGetPath, zAlertChannelsGetResponse, zAlertChannelsListResponse, zAlertChannelsPreviewTemplateBody, zAlertChannelsPreviewTemplateResponse, zAlertChannelsTestBody, zAlertChannelsTestPath, zAlertChannelsTestResponse, zAlertChannelsUpdateBody, zAlertChannelsUpdatePath, zAlertChannelsUpdateResponse, zAlertHistory, zAlertIntegration, zAlertRuleChannelInput, zAlertRuleResponse, zAlertRulesCreateBody, zAlertRulesCreatePath, zAlertRulesCreateResponse, zAlertRulesDeletePath, zAlertRulesDeleteResponse, zAlertRulesGetPath, zAlertRulesGetResponse, zAlertRulesListHistoryPath, zAlertRulesListHistoryQuery, zAlertRulesListHistoryResponse, zAlertRulesListPath, zAlertRulesListResponse, zAlertRulesUpdateBody, zAlertRulesUpdatePath, zAlertRulesUpdateResponse, zAlertStatus, zAlertType, zAssembleBody, zAssembleResponse, zAuthAcceptInvitationBody, zAuthAcceptInvitationResponse, zAuthChangePasswordBody, zAuthChangePasswordResponse, zAuthConfirmSsoLinkBody, zAuthConfirmSsoLinkResponse, zAuthGetCurrentUserResponse, zAuthGetInvitationPath, zAuthGetInvitationResponse, zAuthLoginBody, zAuthLoginResponse, zAuthLogoutResponse, zAuthRegisterBody, zAuthResponse, zAuthSsoCallbackQuery, zAuthSsoCallbackResponse, zAuthSsoConfigResponse, zAuthSsoLinkResponse, zAuthSsoStartResponse, zAuthTokenCreatedResponse, zAuthTokenResponse, zAuthUpdateCurrentUserBody, zAuthUpdateCurrentUserResponse, zAuthorizationDecision, zAuthorizationInfo, zAuthorizationRedirect, zAuthorizationRequest, zBookmarkResponse, zBulkDeleteIssues, zBulkDeleteResponse, zBulkUpdateIssues, zBulkUpdateResponse, zChangePasswordRequest, zCheckInResponse, zCheckInStatus, zChunkUploadBody, zChunkUploadOptions, zCleanupCounts, zCleanupFrequency, zCleanupRequest, zCleanupState, zCleanupStatus, zCodeMapping, zCommentRequest, zConfirmSsoLinkRequest, zCreateAlertIntegration, zCreateAlertRule, zCreateAuthToken, zCreateGitHubIssue, zCreateInvitation, zCreateMonitor, zCreateProject, zCreateRelease, zCreateUserRequest, zErrorDetail, zEventDetailResponse, zEventTimeseriesPoint, zEventsGetBySentryIdPath, zEventsGetBySentryIdResponse, zEventsGetPath, zEventsGetResponse, zEventsListPath, zEventsListQuery, zEventsListResponse, zFieldError, zFieldErrorCode, zGenAiBreakdownRow, zGitHubAppInfo, zGitHubInstallation, zGitHubLogin, zGitHubRepository, zGitHubStatus, zGithubCallbackQuery, zGithubCreateIssueBody, zGithubCreateIssuePath, zGithubCreateIssueResponse, zGithubDeleteProjectRepositoryPath, zGithubDeleteProjectRepositoryResponse, zGithubDisconnectResponse, zGithubGetMyLoginResponse, zGithubGetProjectRepositoryPath, zGithubGetProjectRepositoryResponse, zGithubInstalledQuery, zGithubIssuePath, zGithubIssueResponse, zGithubLinkIssueBody, zGithubLinkIssuePath, zGithubLinkIssueResponse, zGithubManifestBody, zGithubManifestResponse, zGithubPutMyLoginBody, zGithubPutMyLoginResponse, zGithubPutProjectRepositoryBody, zGithubPutProjectRepositoryPath, zGithubPutProjectRepositoryResponse, zGithubRepositoriesQuery, zGithubRepositoriesResponse, zGithubStatusResponse, zGithubSyncCodeownersPath, zGithubSyncCodeownersResponse, zGithubUnlinkIssuePath, zGithubUnlinkIssueResponse, zGithubWebhookBody, zGithubWebhookResponse, zGrouping, zHealthLivenessResponse, zHealthReadinessResponse, zHealthVersionResponse, zIntervalUnit, zInvitationInfoResponse, zInvitationResponse, zInvitationsCreateBody, zInvitationsCreateResponse, zInvitationsListResponse, zInvitationsRevokePath, zInvitationsRevokeResponse, zIssueAggregates, zIssueFilter, zIssueGitHub, zIssueLink, zIssuePriority, zIssueResponse, zIssueSort, zIssueStatsResponse, zIssueStatsWindow, zIssueStatus, zIssueStatusUpdate, zIssueTagValue, zIssueUpdate, zIssuesBulkDeleteBody, zIssuesBulkDeletePath, zIssuesBulkDeleteResponse, zIssuesBulkUpdateBody, zIssuesBulkUpdatePath, zIssuesBulkUpdateResponse, zIssuesCreateCommentBody, zIssuesCreateCommentPath, zIssuesCreateCommentResponse, zIssuesCreateUserReportBody, zIssuesCreateUserReportPath, zIssuesCreateUserReportResponse, zIssuesDeletePath, zIssuesDeleteResponse, zIssuesGetActivityPath, zIssuesGetActivityResponse, zIssuesGetAggregatesPath, zIssuesGetAggregatesResponse, zIssuesGetHashesPath, zIssuesGetHashesResponse, zIssuesGetPath, zIssuesGetResponse, zIssuesGetStatsPath, zIssuesGetStatsQuery, zIssuesGetStatsResponse, zIssuesGetTagValuesPath, zIssuesGetTagValuesResponse, zIssuesListPath, zIssuesListQuery, zIssuesListResponse, zIssuesListUserReportsPath, zIssuesListUserReportsResponse, zIssuesMarkSeenPath, zIssuesMarkSeenResponse, zIssuesSetBookmarkBody, zIssuesSetBookmarkPath, zIssuesSetBookmarkResponse, zIssuesSetSubscriptionBody, zIssuesSetSubscriptionPath, zIssuesSetSubscriptionResponse, zIssuesUpdateBody, zIssuesUpdatePath, zIssuesUpdateResponse, zKindAge, zLinkGitHubIssue, zLivenessResponse, zLoginRequest, zLogsListPath, zLogsListQuery, zLogsListResponse, zManifestRequest, zManifestResponse, zMcpSettings, zMcpStatus, zMembersListPath, zMembersListResponse, zMembersRemovePath, zMembersRemoveResponse, zMembersUpsertBody, zMembersUpsertPath, zMembersUpsertResponse, zMetricDelta, zMonitorConfig, zMonitorConfigInput, zMonitorEnvironmentResponse, zMonitorEnvironmentStatus, zMonitorResponse, zMonitorsCreateBody, zMonitorsCreatePath, zMonitorsCreateResponse, zMonitorsDeletePath, zMonitorsDeleteResponse, zMonitorsGetPath, zMonitorsGetResponse, zMonitorsListCheckinsPath, zMonitorsListCheckinsQuery, zMonitorsListCheckinsResponse, zMonitorsListPath, zMonitorsListResponse, zMonitorsUpdateBody, zMonitorsUpdatePath, zMonitorsUpdateResponse, zOAuthGrant, zOauthDecideAuthorizationBody, zOauthDecideAuthorizationResponse, zOauthGetAuthorizationQuery, zOauthGetAuthorizationResponse, zOauthListGrantsResponse, zOauthRevokeGrantPath, zOauthRevokeGrantResponse, zOrgDetails, zPreviewSchedule, zPreviewTemplateBody, zPreviewTemplateResponse, zProjectAge, zProjectListStats, zProjectMember, zProjectMemberResponse, zProjectRepository, zProjectResponse, zProjectRetention, zProjectRole, zProjectStatsSummary, zProjectsCreateBody, zProjectsCreateResponse, zProjectsDeletePath, zProjectsDeleteResponse, zProjectsGetPath, zProjectsGetRateLimitsResponse, zProjectsGetResponse, zProjectsListQuery, zProjectsListResponse, zProjectsUpdateBody, zProjectsUpdatePath, zProjectsUpdateResponse, zProviderType, zRateLimitsResponse, zReadinessChecks, zReadinessResponse, zReleaseResponse, zReleasesCreateBody, zReleasesCreatePath, zReleasesCreateResponse, zReleasesFinalizeBody, zReleasesFinalizePath, zReleasesFinalizeResponse, zReleasesNewIssuesPath, zReleasesNewIssuesQuery, zReleasesNewIssuesResponse, zRepoCommit, zRetentionResponse, zRetentionRun, zRetentionSettings, zRetentionWindows, zSchedule, zSchedulePreview, zSchedulesPreviewBody, zSchedulesPreviewResponse, zSeenResponse, zSentryEvent, zSentryGetIssuePath, zSentryGetIssueResponse, zSentryGetLatestEventPath, zSentryGetLatestEventResponse, zSentryGroupProject, zSentryIssue, zSentryIssueDetails, zSentryListIssuesPath, zSentryListIssuesQuery, zSentryListIssuesResponse, zSentryListOrganizationsResponse, zSentryListProjectsQuery, zSentryListProjectsResponse, zSentryListReposPath, zSentryListReposResponse, zSentryOpenIssuePath, zSentryOrganization, zSentryProject, zSentryRelease, zSentryStatus, zSentryTag, zSentryUpdateIssueBody, zSentryUpdateIssuePath, zSentryUpdateIssueResponse, zSessionSummary, zSessionTimeseriesPoint, zSessionsGetStatsPath, zSessionsGetStatsQuery, zSessionsGetStatsResponse, zSessionsGetSummaryPath, zSessionsGetSummaryQuery, zSessionsGetSummaryResponse, zSessionsGetTimeseriesPath, zSessionsGetTimeseriesQuery, zSessionsGetTimeseriesResponse, zSettingsGetMcpResponse, zSettingsUpdateMcpBody, zSettingsUpdateMcpResponse, zSortOrder, zSourceMapFile, zSourceMapGcResult, zSourceMapList, zSourceMapStorage, zSourceMapsArtifactBundleAssembleBody, zSourceMapsArtifactBundleAssemblePath, zSourceMapsArtifactBundleAssembleResponse, zSourceMapsChunkUploadBody, zSourceMapsChunkUploadCapabilityPath, zSourceMapsChunkUploadCapabilityResponse, zSourceMapsChunkUploadPath, zSourceMapsListPath, zSourceMapsListResponse, zSourceMapsOrgDetailsPath, zSourceMapsOrgDetailsResponse, zSpanDetailResponse, zSpanResponse, zSpansGetPath, zSpansGetResponse, zSpansListPath, zSpansListQuery, zSpansListResponse, zSsoConfigResponse, zSsoLinkResponse, zSsoStartResponse, zStatsGetEventTimeseriesPath, zStatsGetEventTimeseriesQuery, zStatsGetEventTimeseriesResponse, zStatsGetSummaryPath, zStatsGetSummaryQuery, zStatsGetSummaryResponse, zStorageAge, zStorageExecuteCleanupBody, zStorageExecuteCleanupResponse, zStorageGcSourceMapsResponse, zStorageGetAgeResponse, zStorageGetCleanupStatusResponse, zStorageGetProjectsResponse, zStorageGetRetentionResponse, zStorageGetSummaryResponse, zStoragePreviewCleanupBody, zStoragePreviewCleanupResponse, zStoragePreviewRetentionBody, zStoragePreviewRetentionResponse, zStoragePreviewSourceMapGcResponse, zStorageRunRetentionResponse, zStorageSummary, zStorageUpdateRetentionBody, zStorageUpdateRetentionResponse, zSubscriptionResponse, zTagSummary, zTagValueCount, zTeamDeleteUserPath, zTeamDeleteUserResponse, zTeamListResponse, zTeamMemberResponse, zTeamUpdateRoleBody, zTeamUpdateRolePath, zTeamUpdateRoleResponse, zTelemetryPreview, zTelemetryPreviewResponse, zTestChannelResponse, zTestIntegrationBody, zToggleRequest, zTokensCreateBody, zTokensCreateResponse, zTokensDeletePath, zTokensDeleteResponse, zTokensGetPath, zTokensGetResponse, zTokensListResponse, zTransactionDetailResponse, zTransactionStatsResponse, zTransactionsGetPath, zTransactionsGetResponse, zTransactionsGetSpansPath, zTransactionsGetSpansResponse, zTransactionsGetStatGroupPath, zTransactionsGetStatGroupQuery, zTransactionsGetStatGroupResponse, zTransactionsGetStatsPath, zTransactionsGetStatsQuery, zTransactionsGetStatsResponse, zTransactionsListPath, zTransactionsListQuery, zTransactionsListResponse, zUpdateAlertIntegration, zUpdateAlertRule, zUpdateIssueState, zUpdateMonitor, zUpdatePreferencesRequest, zUpdateProject, zUpdateProjectRepository, zUpdateRelease, zUpdateUserRole, zUpsertProjectMember, zUserReport, zUserReportRequest, zUserResponse, zUserRole, zVersionResponse };
2788
+
2789
+ //# sourceMappingURL=zod.gen.mjs.map