@devhelm/sdk 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/client.d.ts +2 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +3 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/errors.d.ts +98 -6
  6. package/dist/errors.d.ts.map +1 -1
  7. package/dist/errors.js +171 -27
  8. package/dist/errors.js.map +1 -1
  9. package/dist/generated/api.d.ts +19710 -7489
  10. package/dist/generated/api.d.ts.map +1 -1
  11. package/dist/generated/schemas.d.ts +9495 -0
  12. package/dist/generated/schemas.d.ts.map +1 -0
  13. package/dist/generated/schemas.js +3547 -0
  14. package/dist/generated/schemas.js.map +1 -0
  15. package/dist/http.d.ts +33 -19
  16. package/dist/http.d.ts.map +1 -1
  17. package/dist/http.js +120 -50
  18. package/dist/http.js.map +1 -1
  19. package/dist/index.d.ts +5 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +4 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/resources/alert-channels.d.ts +2 -4
  24. package/dist/resources/alert-channels.d.ts.map +1 -1
  25. package/dist/resources/alert-channels.js +12 -12
  26. package/dist/resources/alert-channels.js.map +1 -1
  27. package/dist/resources/api-keys.d.ts.map +1 -1
  28. package/dist/resources/api-keys.js +8 -6
  29. package/dist/resources/api-keys.js.map +1 -1
  30. package/dist/resources/dependencies.d.ts +7 -1
  31. package/dist/resources/dependencies.d.ts.map +1 -1
  32. package/dist/resources/dependencies.js +14 -9
  33. package/dist/resources/dependencies.js.map +1 -1
  34. package/dist/resources/deploy-lock.d.ts +9 -1
  35. package/dist/resources/deploy-lock.d.ts.map +1 -1
  36. package/dist/resources/deploy-lock.js +21 -8
  37. package/dist/resources/deploy-lock.js.map +1 -1
  38. package/dist/resources/environments.d.ts.map +1 -1
  39. package/dist/resources/environments.js +11 -10
  40. package/dist/resources/environments.js.map +1 -1
  41. package/dist/resources/incidents.d.ts +3 -5
  42. package/dist/resources/incidents.d.ts.map +1 -1
  43. package/dist/resources/incidents.js +12 -15
  44. package/dist/resources/incidents.js.map +1 -1
  45. package/dist/resources/monitors.d.ts +2 -2
  46. package/dist/resources/monitors.d.ts.map +1 -1
  47. package/dist/resources/monitors.js +16 -18
  48. package/dist/resources/monitors.js.map +1 -1
  49. package/dist/resources/notification-policies.d.ts.map +1 -1
  50. package/dist/resources/notification-policies.js +11 -10
  51. package/dist/resources/notification-policies.js.map +1 -1
  52. package/dist/resources/resource-groups.d.ts +2 -2
  53. package/dist/resources/resource-groups.d.ts.map +1 -1
  54. package/dist/resources/resource-groups.js +15 -13
  55. package/dist/resources/resource-groups.js.map +1 -1
  56. package/dist/resources/secrets.d.ts.map +1 -1
  57. package/dist/resources/secrets.js +10 -8
  58. package/dist/resources/secrets.js.map +1 -1
  59. package/dist/resources/status-pages.d.ts +103 -0
  60. package/dist/resources/status-pages.d.ts.map +1 -0
  61. package/dist/resources/status-pages.js +190 -0
  62. package/dist/resources/status-pages.js.map +1 -0
  63. package/dist/resources/status.d.ts.map +1 -1
  64. package/dist/resources/status.js +3 -3
  65. package/dist/resources/status.js.map +1 -1
  66. package/dist/resources/tags.d.ts.map +1 -1
  67. package/dist/resources/tags.js +11 -10
  68. package/dist/resources/tags.js.map +1 -1
  69. package/dist/resources/webhooks.d.ts +2 -4
  70. package/dist/resources/webhooks.d.ts.map +1 -1
  71. package/dist/resources/webhooks.js +12 -12
  72. package/dist/resources/webhooks.js.map +1 -1
  73. package/dist/schemas.d.ts +5159 -0
  74. package/dist/schemas.d.ts.map +1 -0
  75. package/dist/schemas.js +160 -0
  76. package/dist/schemas.js.map +1 -0
  77. package/dist/types.d.ts +72 -37
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/validation.d.ts +44 -0
  80. package/dist/validation.d.ts.map +1 -0
  81. package/dist/validation.js +71 -0
  82. package/dist/validation.js.map +1 -0
  83. package/package.json +10 -5
@@ -0,0 +1,3547 @@
1
+ // Auto-generated Zod schemas from OpenAPI spec. DO NOT EDIT.
2
+ import { z } from "zod";
3
+ const pageable = z
4
+ .object({
5
+ page: z.number().int().gte(0),
6
+ size: z.number().int().gte(1),
7
+ sort: z.array(z.string()),
8
+ })
9
+ .strict();
10
+ const ErrorResponse = z
11
+ .object({
12
+ status: z.number().int(),
13
+ code: z.string(),
14
+ message: z.string(),
15
+ timestamp: z.number().int(),
16
+ requestId: z.string().nullish(),
17
+ })
18
+ .strict();
19
+ const DiscordChannelConfig = z
20
+ .object({
21
+ channelType: z.literal("discord"),
22
+ webhookUrl: z.string().min(1),
23
+ mentionRoleId: z.string().nullish(),
24
+ })
25
+ .strict();
26
+ const EmailChannelConfig = z
27
+ .object({
28
+ channelType: z.literal("email"),
29
+ recipients: z.array(z.string().email()).min(1),
30
+ })
31
+ .strict();
32
+ const OpsGenieChannelConfig = z
33
+ .object({
34
+ channelType: z.literal("opsgenie"),
35
+ apiKey: z.string().min(1),
36
+ region: z.string().nullish(),
37
+ })
38
+ .strict();
39
+ const PagerDutyChannelConfig = z
40
+ .object({
41
+ channelType: z.literal("pagerduty"),
42
+ routingKey: z.string().min(1),
43
+ severityOverride: z.string().nullish(),
44
+ })
45
+ .strict();
46
+ const SlackChannelConfig = z
47
+ .object({
48
+ channelType: z.literal("slack"),
49
+ webhookUrl: z.string().min(1),
50
+ mentionText: z.string().nullish(),
51
+ })
52
+ .strict();
53
+ const TeamsChannelConfig = z
54
+ .object({ channelType: z.literal("teams"), webhookUrl: z.string().min(1) })
55
+ .strict();
56
+ const WebhookChannelConfig = z
57
+ .object({
58
+ channelType: z.literal("webhook"),
59
+ url: z.string().min(1),
60
+ signingSecret: z.string().nullish(),
61
+ customHeaders: z.record(z.string(), z.string().nullable()).nullish(),
62
+ })
63
+ .strict();
64
+ const CreateAlertChannelRequest = z
65
+ .object({
66
+ name: z.string().min(0).max(255),
67
+ config: z.union([
68
+ DiscordChannelConfig,
69
+ EmailChannelConfig,
70
+ OpsGenieChannelConfig,
71
+ PagerDutyChannelConfig,
72
+ SlackChannelConfig,
73
+ TeamsChannelConfig,
74
+ WebhookChannelConfig,
75
+ ]),
76
+ })
77
+ .strict();
78
+ const UpdateAlertChannelRequest = z
79
+ .object({
80
+ name: z.string().min(0).max(255),
81
+ config: z.union([
82
+ DiscordChannelConfig,
83
+ EmailChannelConfig,
84
+ OpsGenieChannelConfig,
85
+ PagerDutyChannelConfig,
86
+ SlackChannelConfig,
87
+ TeamsChannelConfig,
88
+ WebhookChannelConfig,
89
+ ]),
90
+ })
91
+ .strict();
92
+ const TestAlertChannelRequest = z
93
+ .object({
94
+ config: z.union([
95
+ DiscordChannelConfig,
96
+ EmailChannelConfig,
97
+ OpsGenieChannelConfig,
98
+ PagerDutyChannelConfig,
99
+ SlackChannelConfig,
100
+ TeamsChannelConfig,
101
+ WebhookChannelConfig,
102
+ ]),
103
+ })
104
+ .strict();
105
+ const CreateApiKeyRequest = z
106
+ .object({
107
+ name: z.string().min(0).max(200),
108
+ expiresAt: z.string().datetime({ offset: true }).nullish(),
109
+ })
110
+ .strict();
111
+ const UpdateApiKeyRequest = z
112
+ .object({ name: z.string().min(0).max(200) })
113
+ .strict();
114
+ const AcquireDeployLockRequest = z
115
+ .object({
116
+ lockedBy: z.string().min(1),
117
+ ttlMinutes: z.number().int().nullish(),
118
+ })
119
+ .strict();
120
+ const CreateEnvironmentRequest = z
121
+ .object({
122
+ name: z.string().min(0).max(100),
123
+ slug: z
124
+ .string()
125
+ .min(0)
126
+ .max(100)
127
+ .regex(/^[a-z0-9][a-z0-9_-]*$/),
128
+ variables: z.record(z.string(), z.string().nullable()).nullish(),
129
+ isDefault: z.boolean().nullish(),
130
+ })
131
+ .strict();
132
+ const UpdateEnvironmentRequest = z
133
+ .object({
134
+ name: z.string().min(0).max(100).nullable(),
135
+ variables: z.record(z.string(), z.string().nullable()).nullable(),
136
+ isDefault: z.boolean().nullable(),
137
+ })
138
+ .partial()
139
+ .strict();
140
+ const params = z
141
+ .object({
142
+ status: z
143
+ .enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"])
144
+ .nullish(),
145
+ severity: z.enum(["DOWN", "DEGRADED", "MAINTENANCE"]).nullish(),
146
+ source: z
147
+ .enum([
148
+ "AUTOMATIC",
149
+ "MANUAL",
150
+ "MONITORS",
151
+ "STATUS_DATA",
152
+ "RESOURCE_GROUP",
153
+ ])
154
+ .nullish(),
155
+ monitorId: z.string().uuid().nullish(),
156
+ serviceId: z.string().uuid().nullish(),
157
+ resourceGroupId: z.string().uuid().nullish(),
158
+ tagId: z.string().uuid().nullish(),
159
+ environmentId: z.string().uuid().nullish(),
160
+ startedFrom: z.string().datetime({ offset: true }).nullish(),
161
+ startedTo: z.string().datetime({ offset: true }).nullish(),
162
+ page: z.number().int().gte(0),
163
+ size: z.number().int().gte(1).lte(200),
164
+ })
165
+ .strict();
166
+ const CreateManualIncidentRequest = z
167
+ .object({
168
+ title: z.string().min(1),
169
+ severity: z.enum(["DOWN", "DEGRADED", "MAINTENANCE"]),
170
+ monitorId: z.string().uuid().nullish(),
171
+ body: z.string().nullish(),
172
+ })
173
+ .strict();
174
+ const ResolveIncidentRequest = z
175
+ .object({ body: z.string().nullable() })
176
+ .partial()
177
+ .strict();
178
+ const AddIncidentUpdateRequest = z
179
+ .object({
180
+ body: z.string().nullish(),
181
+ newStatus: z
182
+ .enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"])
183
+ .nullish(),
184
+ notifySubscribers: z.boolean(),
185
+ })
186
+ .strict();
187
+ const CreateInviteRequest = z
188
+ .object({
189
+ email: z.string().min(1).email(),
190
+ roleOffered: z.enum(["OWNER", "ADMIN", "MEMBER"]),
191
+ })
192
+ .strict();
193
+ const CreateMaintenanceWindowRequest = z
194
+ .object({
195
+ monitorId: z.string().uuid().nullish(),
196
+ startsAt: z.string().datetime({ offset: true }),
197
+ endsAt: z.string().datetime({ offset: true }),
198
+ repeatRule: z.string().min(0).max(100).nullish(),
199
+ reason: z.string().nullish(),
200
+ suppressAlerts: z.boolean().nullish(),
201
+ })
202
+ .strict();
203
+ const UpdateMaintenanceWindowRequest = z
204
+ .object({
205
+ monitorId: z.string().uuid().nullish(),
206
+ startsAt: z.string().datetime({ offset: true }),
207
+ endsAt: z.string().datetime({ offset: true }),
208
+ repeatRule: z.string().min(0).max(100).nullish(),
209
+ reason: z.string().nullish(),
210
+ suppressAlerts: z.boolean().nullish(),
211
+ })
212
+ .strict();
213
+ const ChangeRoleRequest = z
214
+ .object({ orgRole: z.enum(["OWNER", "ADMIN", "MEMBER"]) })
215
+ .strict();
216
+ const ChangeStatusRequest = z
217
+ .object({
218
+ status: z.enum([
219
+ "INVITED",
220
+ "ACTIVE",
221
+ "SUSPENDED",
222
+ "LEFT",
223
+ "REMOVED",
224
+ "DECLINED",
225
+ ]),
226
+ })
227
+ .strict();
228
+ const DnsMonitorConfig = z
229
+ .object({
230
+ hostname: z.string().min(1),
231
+ recordTypes: z
232
+ .array(z
233
+ .enum([
234
+ "A",
235
+ "AAAA",
236
+ "CNAME",
237
+ "MX",
238
+ "NS",
239
+ "TXT",
240
+ "SRV",
241
+ "SOA",
242
+ "CAA",
243
+ "PTR",
244
+ ])
245
+ .nullable())
246
+ .nullish(),
247
+ nameservers: z.array(z.string().nullable()).nullish(),
248
+ timeoutMs: z.number().int().nullish(),
249
+ totalTimeoutMs: z.number().int().nullish(),
250
+ })
251
+ .strict();
252
+ const HeartbeatMonitorConfig = z
253
+ .object({
254
+ expectedInterval: z.number().int().gte(1).lte(86400),
255
+ gracePeriod: z.number().int().gte(1),
256
+ })
257
+ .strict();
258
+ const HttpMonitorConfig = z
259
+ .object({
260
+ url: z.string().min(1),
261
+ method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]),
262
+ customHeaders: z.record(z.string(), z.string().nullable()).nullish(),
263
+ requestBody: z.string().nullish(),
264
+ contentType: z.string().nullish(),
265
+ verifyTls: z.boolean().nullish(),
266
+ })
267
+ .strict();
268
+ const IcmpMonitorConfig = z
269
+ .object({
270
+ host: z.string().min(1),
271
+ packetCount: z.number().int().gte(1).lte(20).nullish(),
272
+ timeoutMs: z.number().int().nullish(),
273
+ })
274
+ .strict();
275
+ const McpServerMonitorConfig = z
276
+ .object({
277
+ command: z.string().min(1),
278
+ args: z.array(z.string().nullable()).nullish(),
279
+ env: z.record(z.string(), z.string().nullable()).nullish(),
280
+ })
281
+ .strict();
282
+ const TcpMonitorConfig = z
283
+ .object({
284
+ host: z.string().min(1),
285
+ port: z.number().int().gte(1).lte(65535),
286
+ timeoutMs: z.number().int().nullish(),
287
+ })
288
+ .strict();
289
+ const BodyContainsAssertion = z
290
+ .object({ type: z.literal("body_contains"), substring: z.string().min(1) })
291
+ .strict();
292
+ const DnsExpectedCnameAssertion = z
293
+ .object({ type: z.literal("dns_expected_cname"), value: z.string().min(1) })
294
+ .strict();
295
+ const DnsExpectedIpsAssertion = z
296
+ .object({
297
+ type: z.literal("dns_expected_ips"),
298
+ ips: z.array(z.string()).min(1),
299
+ })
300
+ .strict();
301
+ const DnsMaxAnswersAssertion = z
302
+ .object({
303
+ type: z.literal("dns_max_answers"),
304
+ recordType: z.string().min(1),
305
+ max: z.number().int(),
306
+ })
307
+ .strict();
308
+ const DnsMinAnswersAssertion = z
309
+ .object({
310
+ type: z.literal("dns_min_answers"),
311
+ recordType: z.string().min(1),
312
+ min: z.number().int(),
313
+ })
314
+ .strict();
315
+ const DnsRecordContainsAssertion = z
316
+ .object({
317
+ type: z.literal("dns_record_contains"),
318
+ recordType: z.string().min(1),
319
+ substring: z.string().min(1),
320
+ })
321
+ .strict();
322
+ const DnsRecordEqualsAssertion = z
323
+ .object({
324
+ type: z.literal("dns_record_equals"),
325
+ recordType: z.string().min(1),
326
+ value: z.string().min(1),
327
+ })
328
+ .strict();
329
+ const DnsResolvesAssertion = z
330
+ .object({ type: z.literal("dns_resolves") })
331
+ .strict();
332
+ const DnsResponseTimeAssertion = z
333
+ .object({ type: z.literal("dns_response_time"), maxMs: z.number().int() })
334
+ .strict();
335
+ const DnsResponseTimeWarnAssertion = z
336
+ .object({
337
+ type: z.literal("dns_response_time_warn"),
338
+ warnMs: z.number().int(),
339
+ })
340
+ .strict();
341
+ const DnsTtlHighAssertion = z
342
+ .object({ type: z.literal("dns_ttl_high"), maxTtl: z.number().int() })
343
+ .strict();
344
+ const DnsTtlLowAssertion = z
345
+ .object({ type: z.literal("dns_ttl_low"), minTtl: z.number().int() })
346
+ .strict();
347
+ const DnsTxtContainsAssertion = z
348
+ .object({ type: z.literal("dns_txt_contains"), substring: z.string().min(1) })
349
+ .strict();
350
+ const HeaderValueAssertion = z
351
+ .object({
352
+ type: z.literal("header_value"),
353
+ headerName: z.string().min(1),
354
+ expected: z.string().min(1),
355
+ operator: z.enum([
356
+ "equals",
357
+ "contains",
358
+ "less_than",
359
+ "greater_than",
360
+ "matches",
361
+ "range",
362
+ ]),
363
+ })
364
+ .strict();
365
+ const HeartbeatIntervalDriftAssertion = z
366
+ .object({
367
+ type: z.literal("heartbeat_interval_drift"),
368
+ maxDeviationPercent: z.number().int().gte(1).lte(100),
369
+ })
370
+ .strict();
371
+ const HeartbeatMaxIntervalAssertion = z
372
+ .object({
373
+ type: z.literal("heartbeat_max_interval"),
374
+ maxSeconds: z.number().int().gte(1),
375
+ })
376
+ .strict();
377
+ const HeartbeatPayloadContainsAssertion = z
378
+ .object({
379
+ type: z.literal("heartbeat_payload_contains"),
380
+ path: z.string().min(1),
381
+ value: z.string(),
382
+ })
383
+ .strict();
384
+ const HeartbeatReceivedAssertion = z
385
+ .object({ type: z.literal("heartbeat_received") })
386
+ .strict();
387
+ const IcmpPacketLossAssertion = z
388
+ .object({
389
+ type: z.literal("icmp_packet_loss"),
390
+ maxPercent: z.number().gte(0).lte(100),
391
+ })
392
+ .strict();
393
+ const IcmpReachableAssertion = z
394
+ .object({ type: z.literal("icmp_reachable") })
395
+ .strict();
396
+ const IcmpResponseTimeAssertion = z
397
+ .object({ type: z.literal("icmp_response_time"), maxMs: z.number().int() })
398
+ .strict();
399
+ const IcmpResponseTimeWarnAssertion = z
400
+ .object({
401
+ type: z.literal("icmp_response_time_warn"),
402
+ warnMs: z.number().int(),
403
+ })
404
+ .strict();
405
+ const JsonPathAssertion = z
406
+ .object({
407
+ type: z.literal("json_path"),
408
+ path: z.string().min(1),
409
+ expected: z.string().min(1),
410
+ operator: z.enum([
411
+ "equals",
412
+ "contains",
413
+ "less_than",
414
+ "greater_than",
415
+ "matches",
416
+ "range",
417
+ ]),
418
+ })
419
+ .strict();
420
+ const McpConnectsAssertion = z
421
+ .object({ type: z.literal("mcp_connects") })
422
+ .strict();
423
+ const McpHasCapabilityAssertion = z
424
+ .object({
425
+ type: z.literal("mcp_has_capability"),
426
+ capability: z.string().min(1),
427
+ })
428
+ .strict();
429
+ const McpMinToolsAssertion = z
430
+ .object({ type: z.literal("mcp_min_tools"), min: z.number().int() })
431
+ .strict();
432
+ const McpProtocolVersionAssertion = z
433
+ .object({
434
+ type: z.literal("mcp_protocol_version"),
435
+ version: z.string().min(1),
436
+ })
437
+ .strict();
438
+ const McpResponseTimeAssertion = z
439
+ .object({ type: z.literal("mcp_response_time"), maxMs: z.number().int() })
440
+ .strict();
441
+ const McpResponseTimeWarnAssertion = z
442
+ .object({
443
+ type: z.literal("mcp_response_time_warn"),
444
+ warnMs: z.number().int(),
445
+ })
446
+ .strict();
447
+ const McpToolAvailableAssertion = z
448
+ .object({
449
+ type: z.literal("mcp_tool_available"),
450
+ toolName: z.string().min(1),
451
+ })
452
+ .strict();
453
+ const McpToolCountChangedAssertion = z
454
+ .object({
455
+ type: z.literal("mcp_tool_count_changed"),
456
+ expectedCount: z.number().int(),
457
+ })
458
+ .strict();
459
+ const RedirectCountAssertion = z
460
+ .object({ type: z.literal("redirect_count"), maxCount: z.number().int() })
461
+ .strict();
462
+ const RedirectTargetAssertion = z
463
+ .object({
464
+ type: z.literal("redirect_target"),
465
+ expected: z.string().min(1),
466
+ operator: z.enum([
467
+ "equals",
468
+ "contains",
469
+ "less_than",
470
+ "greater_than",
471
+ "matches",
472
+ "range",
473
+ ]),
474
+ })
475
+ .strict();
476
+ const RegexBodyAssertion = z
477
+ .object({ type: z.literal("regex_body"), pattern: z.string().min(1) })
478
+ .strict();
479
+ const ResponseSizeAssertion = z
480
+ .object({ type: z.literal("response_size"), maxBytes: z.number().int() })
481
+ .strict();
482
+ const ResponseTimeAssertion = z
483
+ .object({ type: z.literal("response_time"), thresholdMs: z.number().int() })
484
+ .strict();
485
+ const ResponseTimeWarnAssertion = z
486
+ .object({ type: z.literal("response_time_warn"), warnMs: z.number().int() })
487
+ .strict();
488
+ const SslExpiryAssertion = z
489
+ .object({ type: z.literal("ssl_expiry"), minDaysRemaining: z.number().int() })
490
+ .strict();
491
+ const StatusCodeAssertion = z
492
+ .object({
493
+ type: z.literal("status_code"),
494
+ expected: z.string().min(1),
495
+ operator: z.enum([
496
+ "equals",
497
+ "contains",
498
+ "less_than",
499
+ "greater_than",
500
+ "matches",
501
+ "range",
502
+ ]),
503
+ })
504
+ .strict();
505
+ const TcpConnectsAssertion = z
506
+ .object({ type: z.literal("tcp_connects") })
507
+ .strict();
508
+ const TcpResponseTimeAssertion = z
509
+ .object({ type: z.literal("tcp_response_time"), maxMs: z.number().int() })
510
+ .strict();
511
+ const TcpResponseTimeWarnAssertion = z
512
+ .object({
513
+ type: z.literal("tcp_response_time_warn"),
514
+ warnMs: z.number().int(),
515
+ })
516
+ .strict();
517
+ const CreateAssertionRequest = z
518
+ .object({
519
+ config: z.union([
520
+ BodyContainsAssertion,
521
+ DnsExpectedCnameAssertion,
522
+ DnsExpectedIpsAssertion,
523
+ DnsMaxAnswersAssertion,
524
+ DnsMinAnswersAssertion,
525
+ DnsRecordContainsAssertion,
526
+ DnsRecordEqualsAssertion,
527
+ DnsResolvesAssertion,
528
+ DnsResponseTimeAssertion,
529
+ DnsResponseTimeWarnAssertion,
530
+ DnsTtlHighAssertion,
531
+ DnsTtlLowAssertion,
532
+ DnsTxtContainsAssertion,
533
+ HeaderValueAssertion,
534
+ HeartbeatIntervalDriftAssertion,
535
+ HeartbeatMaxIntervalAssertion,
536
+ HeartbeatPayloadContainsAssertion,
537
+ HeartbeatReceivedAssertion,
538
+ IcmpPacketLossAssertion,
539
+ IcmpReachableAssertion,
540
+ IcmpResponseTimeAssertion,
541
+ IcmpResponseTimeWarnAssertion,
542
+ JsonPathAssertion,
543
+ McpConnectsAssertion,
544
+ McpHasCapabilityAssertion,
545
+ McpMinToolsAssertion,
546
+ McpProtocolVersionAssertion,
547
+ McpResponseTimeAssertion,
548
+ McpResponseTimeWarnAssertion,
549
+ McpToolAvailableAssertion,
550
+ McpToolCountChangedAssertion,
551
+ RedirectCountAssertion,
552
+ RedirectTargetAssertion,
553
+ RegexBodyAssertion,
554
+ ResponseSizeAssertion,
555
+ ResponseTimeAssertion,
556
+ ResponseTimeWarnAssertion,
557
+ SslExpiryAssertion,
558
+ StatusCodeAssertion,
559
+ TcpConnectsAssertion,
560
+ TcpResponseTimeAssertion,
561
+ TcpResponseTimeWarnAssertion,
562
+ ]),
563
+ severity: z.enum(["fail", "warn"]).nullish(),
564
+ })
565
+ .strict();
566
+ const BearerAuthConfig = z
567
+ .object({
568
+ type: z.literal("bearer"),
569
+ vaultSecretId: z.string().uuid().nullish(),
570
+ })
571
+ .strict();
572
+ const BasicAuthConfig = z
573
+ .object({
574
+ type: z.literal("basic"),
575
+ vaultSecretId: z.string().uuid().nullish(),
576
+ })
577
+ .strict();
578
+ const HeaderAuthConfig = z
579
+ .object({
580
+ type: z.literal("header"),
581
+ headerName: z
582
+ .string()
583
+ .min(1)
584
+ .regex(/^[A-Za-z0-9\-_]+$/),
585
+ vaultSecretId: z.string().uuid().nullish(),
586
+ })
587
+ .strict();
588
+ const ApiKeyAuthConfig = z
589
+ .object({
590
+ type: z.literal("api_key"),
591
+ headerName: z
592
+ .string()
593
+ .min(1)
594
+ .regex(/^[A-Za-z0-9\-_]+$/),
595
+ vaultSecretId: z.string().uuid().nullish(),
596
+ })
597
+ .strict();
598
+ const MonitorAuthConfig = z.discriminatedUnion("type", [
599
+ BearerAuthConfig,
600
+ BasicAuthConfig,
601
+ HeaderAuthConfig,
602
+ ApiKeyAuthConfig,
603
+ ]);
604
+ const TriggerRule = z
605
+ .object({
606
+ type: z.enum([
607
+ "consecutive_failures",
608
+ "failures_in_window",
609
+ "response_time",
610
+ ]),
611
+ count: z.number().int().nullish(),
612
+ windowMinutes: z.number().int().nullish(),
613
+ scope: z.enum(["per_region", "any_region"]).nullable(),
614
+ thresholdMs: z.number().int().nullish(),
615
+ severity: z.enum(["down", "degraded"]),
616
+ aggregationType: z.enum(["all_exceed", "average", "p95", "max"]).nullish(),
617
+ })
618
+ .strict();
619
+ const ConfirmationPolicy = z
620
+ .object({
621
+ type: z.literal("multi_region"),
622
+ minRegionsFailing: z.number().int(),
623
+ maxWaitSeconds: z.number().int(),
624
+ })
625
+ .strict();
626
+ const RecoveryPolicy = z
627
+ .object({
628
+ consecutiveSuccesses: z.number().int(),
629
+ minRegionsPassing: z.number().int(),
630
+ cooldownMinutes: z.number().int(),
631
+ })
632
+ .strict();
633
+ const UpdateIncidentPolicyRequest = z
634
+ .object({
635
+ triggerRules: z.array(TriggerRule).min(1),
636
+ confirmation: ConfirmationPolicy,
637
+ recovery: RecoveryPolicy,
638
+ })
639
+ .strict();
640
+ const NewTagRequest = z
641
+ .object({
642
+ name: z.string().min(0).max(100),
643
+ color: z
644
+ .string()
645
+ .regex(/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/)
646
+ .nullish(),
647
+ })
648
+ .strict();
649
+ const AddMonitorTagsRequest = z
650
+ .object({
651
+ tagIds: z.array(z.string().uuid()).nullable(),
652
+ newTags: z.array(NewTagRequest).nullable(),
653
+ })
654
+ .partial()
655
+ .strict();
656
+ const CreateMonitorRequest = z
657
+ .object({
658
+ name: z.string().min(0).max(255),
659
+ type: z.enum(["HTTP", "DNS", "MCP_SERVER", "TCP", "ICMP", "HEARTBEAT"]),
660
+ config: z.union([
661
+ DnsMonitorConfig,
662
+ HeartbeatMonitorConfig,
663
+ HttpMonitorConfig,
664
+ IcmpMonitorConfig,
665
+ McpServerMonitorConfig,
666
+ TcpMonitorConfig,
667
+ ]),
668
+ frequencySeconds: z.number().int().nullish(),
669
+ enabled: z.boolean().nullish(),
670
+ regions: z.array(z.string()).nullish(),
671
+ managedBy: z.enum(["DASHBOARD", "CLI", "TERRAFORM"]),
672
+ environmentId: z.string().uuid().nullish(),
673
+ assertions: z.array(CreateAssertionRequest).nullish(),
674
+ auth: MonitorAuthConfig.nullish(),
675
+ incidentPolicy: UpdateIncidentPolicyRequest.nullish(),
676
+ alertChannelIds: z.array(z.string().uuid()).nullish(),
677
+ tags: AddMonitorTagsRequest.nullish(),
678
+ })
679
+ .strict();
680
+ const UpdateMonitorRequest = z
681
+ .object({
682
+ name: z.string().min(0).max(255).nullable(),
683
+ config: z
684
+ .union([
685
+ DnsMonitorConfig,
686
+ HeartbeatMonitorConfig,
687
+ HttpMonitorConfig,
688
+ IcmpMonitorConfig,
689
+ McpServerMonitorConfig,
690
+ TcpMonitorConfig,
691
+ ])
692
+ .nullable(),
693
+ frequencySeconds: z.number().int().nullable(),
694
+ enabled: z.boolean().nullable(),
695
+ regions: z.array(z.string()).nullable(),
696
+ managedBy: z.enum(["DASHBOARD", "CLI", "TERRAFORM"]).nullable(),
697
+ environmentId: z.string().uuid().nullable(),
698
+ clearEnvironmentId: z.boolean().nullable(),
699
+ assertions: z.array(CreateAssertionRequest).nullable(),
700
+ auth: MonitorAuthConfig.nullable(),
701
+ clearAuth: z.boolean().nullable(),
702
+ incidentPolicy: UpdateIncidentPolicyRequest.nullable(),
703
+ alertChannelIds: z.array(z.string().uuid()).nullable(),
704
+ tags: AddMonitorTagsRequest.nullable(),
705
+ })
706
+ .partial()
707
+ .strict();
708
+ const RemoveMonitorTagsRequest = z
709
+ .object({ tagIds: z.array(z.string().uuid()).min(1) })
710
+ .strict();
711
+ const SetAlertChannelsRequest = z
712
+ .object({ channelIds: z.array(z.string().uuid()) })
713
+ .strict();
714
+ const UpdateAssertionRequest = z
715
+ .object({
716
+ config: z.union([
717
+ BodyContainsAssertion,
718
+ DnsExpectedCnameAssertion,
719
+ DnsExpectedIpsAssertion,
720
+ DnsMaxAnswersAssertion,
721
+ DnsMinAnswersAssertion,
722
+ DnsRecordContainsAssertion,
723
+ DnsRecordEqualsAssertion,
724
+ DnsResolvesAssertion,
725
+ DnsResponseTimeAssertion,
726
+ DnsResponseTimeWarnAssertion,
727
+ DnsTtlHighAssertion,
728
+ DnsTtlLowAssertion,
729
+ DnsTxtContainsAssertion,
730
+ HeaderValueAssertion,
731
+ HeartbeatIntervalDriftAssertion,
732
+ HeartbeatMaxIntervalAssertion,
733
+ HeartbeatPayloadContainsAssertion,
734
+ HeartbeatReceivedAssertion,
735
+ IcmpPacketLossAssertion,
736
+ IcmpReachableAssertion,
737
+ IcmpResponseTimeAssertion,
738
+ IcmpResponseTimeWarnAssertion,
739
+ JsonPathAssertion,
740
+ McpConnectsAssertion,
741
+ McpHasCapabilityAssertion,
742
+ McpMinToolsAssertion,
743
+ McpProtocolVersionAssertion,
744
+ McpResponseTimeAssertion,
745
+ McpResponseTimeWarnAssertion,
746
+ McpToolAvailableAssertion,
747
+ McpToolCountChangedAssertion,
748
+ RedirectCountAssertion,
749
+ RedirectTargetAssertion,
750
+ RegexBodyAssertion,
751
+ ResponseSizeAssertion,
752
+ ResponseTimeAssertion,
753
+ ResponseTimeWarnAssertion,
754
+ SslExpiryAssertion,
755
+ StatusCodeAssertion,
756
+ TcpConnectsAssertion,
757
+ TcpResponseTimeAssertion,
758
+ TcpResponseTimeWarnAssertion,
759
+ ]),
760
+ severity: z.enum(["fail", "warn"]).nullish(),
761
+ })
762
+ .strict();
763
+ const UpdateMonitorAuthRequest = z
764
+ .object({
765
+ config: z.discriminatedUnion("type", [ApiKeyAuthConfig, BasicAuthConfig, BearerAuthConfig, HeaderAuthConfig]),
766
+ })
767
+ .strict();
768
+ const SetMonitorAuthRequest = z
769
+ .object({
770
+ config: z.discriminatedUnion("type", [ApiKeyAuthConfig, BasicAuthConfig, BearerAuthConfig, HeaderAuthConfig]),
771
+ })
772
+ .strict();
773
+ const BulkMonitorActionRequest = z
774
+ .object({
775
+ monitorIds: z.array(z.string().uuid()).max(200),
776
+ action: z.enum(["PAUSE", "RESUME", "DELETE", "ADD_TAG", "REMOVE_TAG"]),
777
+ tagIds: z.array(z.string().uuid()).nullish(),
778
+ newTags: z.array(NewTagRequest).nullish(),
779
+ })
780
+ .strict();
781
+ const MonitorTestRequest = z
782
+ .object({
783
+ type: z.enum(["HTTP", "DNS", "MCP_SERVER", "TCP", "ICMP", "HEARTBEAT"]),
784
+ config: z.union([
785
+ DnsMonitorConfig,
786
+ HeartbeatMonitorConfig,
787
+ HttpMonitorConfig,
788
+ IcmpMonitorConfig,
789
+ McpServerMonitorConfig,
790
+ TcpMonitorConfig,
791
+ ]),
792
+ assertions: z.array(CreateAssertionRequest).nullish(),
793
+ })
794
+ .strict();
795
+ const MatchRule = z
796
+ .object({
797
+ type: z.enum([
798
+ "severity_gte",
799
+ "monitor_id_in",
800
+ "region_in",
801
+ "incident_status",
802
+ "monitor_type_in",
803
+ "service_id_in",
804
+ "resource_group_id_in",
805
+ "component_name_in",
806
+ "monitor_tag_in",
807
+ ]),
808
+ value: z.string().nullish(),
809
+ monitorIds: z.array(z.string().uuid()).nullish(),
810
+ regions: z.array(z.string()).nullish(),
811
+ values: z.array(z.string()).nullish(),
812
+ })
813
+ .strict();
814
+ const EscalationStep = z
815
+ .object({
816
+ delayMinutes: z.number().int().gte(0),
817
+ channelIds: z.array(z.string().uuid()).min(1),
818
+ requireAck: z.boolean().nullish(),
819
+ repeatIntervalSeconds: z.number().int().gte(1).nullish(),
820
+ })
821
+ .strict();
822
+ const EscalationChain = z
823
+ .object({
824
+ steps: z.array(EscalationStep).min(1),
825
+ onResolve: z.string().nullish(),
826
+ onReopen: z.string().nullish(),
827
+ })
828
+ .strict();
829
+ const CreateNotificationPolicyRequest = z
830
+ .object({
831
+ name: z.string().min(0).max(255),
832
+ matchRules: z.array(MatchRule).nullish(),
833
+ escalation: EscalationChain,
834
+ enabled: z.boolean().nullish().default(true),
835
+ priority: z.number().int().nullish().default(0),
836
+ })
837
+ .strict();
838
+ const UpdateNotificationPolicyRequest = z
839
+ .object({
840
+ name: z.string().min(0).max(255).nullable(),
841
+ matchRules: z.array(MatchRule).nullable(),
842
+ escalation: EscalationChain.nullable(),
843
+ enabled: z.boolean().nullable(),
844
+ priority: z.number().int().nullable(),
845
+ })
846
+ .partial()
847
+ .strict();
848
+ const TestNotificationPolicyRequest = z
849
+ .object({
850
+ severity: z.string().nullable(),
851
+ monitorId: z.string().uuid().nullable(),
852
+ regions: z.array(z.string()).nullable(),
853
+ eventType: z.string().nullable(),
854
+ monitorType: z.string().nullable(),
855
+ serviceId: z.string().uuid().nullable(),
856
+ componentName: z.string().nullable(),
857
+ resourceGroupIds: z.array(z.string().uuid()).nullable(),
858
+ })
859
+ .partial()
860
+ .strict();
861
+ const UpdateOrgDetailsRequest = z
862
+ .object({
863
+ name: z.string().min(0).max(200),
864
+ email: z.string().min(1).email(),
865
+ size: z.string().min(0).max(50).nullish(),
866
+ industry: z.string().min(0).max(100).nullish(),
867
+ websiteUrl: z.string().min(0).max(255).nullish(),
868
+ })
869
+ .strict();
870
+ const RetryStrategy = z
871
+ .object({
872
+ type: z.string(),
873
+ maxRetries: z.number().int(),
874
+ interval: z.number().int(),
875
+ })
876
+ .strict();
877
+ const CreateResourceGroupRequest = z
878
+ .object({
879
+ name: z.string().min(0).max(255),
880
+ description: z.string().nullish(),
881
+ alertPolicyId: z.string().uuid().nullish(),
882
+ defaultFrequency: z.number().int().gte(30).lte(86400).nullish(),
883
+ defaultRegions: z.array(z.string()).nullish(),
884
+ defaultRetryStrategy: RetryStrategy.nullish(),
885
+ defaultAlertChannels: z.array(z.string().uuid()).nullish(),
886
+ defaultEnvironmentId: z.string().uuid().nullish(),
887
+ healthThresholdType: z.enum(["COUNT", "PERCENTAGE"]).nullish(),
888
+ healthThresholdValue: z.number().gte(0).lte(100).nullish(),
889
+ suppressMemberAlerts: z.boolean().nullish(),
890
+ confirmationDelaySeconds: z.number().int().gte(0).lte(600).nullish(),
891
+ recoveryCooldownMinutes: z.number().int().gte(0).lte(60).nullish(),
892
+ })
893
+ .strict();
894
+ const UpdateResourceGroupRequest = z
895
+ .object({
896
+ name: z.string().min(0).max(255),
897
+ description: z.string().nullish(),
898
+ alertPolicyId: z.string().uuid().nullish(),
899
+ defaultFrequency: z.number().int().gte(30).lte(86400).nullish(),
900
+ defaultRegions: z.array(z.string()).nullish(),
901
+ defaultRetryStrategy: RetryStrategy.nullish(),
902
+ defaultAlertChannels: z.array(z.string().uuid()).nullish(),
903
+ defaultEnvironmentId: z.string().uuid().nullish(),
904
+ healthThresholdType: z.enum(["COUNT", "PERCENTAGE"]).nullish(),
905
+ healthThresholdValue: z.number().gte(0).lte(100).nullish(),
906
+ suppressMemberAlerts: z.boolean().nullish(),
907
+ confirmationDelaySeconds: z.number().int().gte(0).lte(600).nullish(),
908
+ recoveryCooldownMinutes: z.number().int().gte(0).lte(60).nullish(),
909
+ })
910
+ .strict();
911
+ const AddResourceGroupMemberRequest = z
912
+ .object({
913
+ memberType: z
914
+ .string()
915
+ .min(1)
916
+ .regex(/monitor|service/),
917
+ memberId: z.string().uuid(),
918
+ })
919
+ .strict();
920
+ const CreateSecretRequest = z
921
+ .object({
922
+ key: z.string().min(0).max(255),
923
+ value: z.string().min(0).max(32768),
924
+ })
925
+ .strict();
926
+ const UpdateSecretRequest = z
927
+ .object({ value: z.string().min(0).max(32768) })
928
+ .strict();
929
+ const UpdateAlertSensitivityRequest = z
930
+ .object({
931
+ alertSensitivity: z
932
+ .string()
933
+ .min(1)
934
+ .regex(/ALL|INCIDENTS_ONLY|MAJOR_ONLY/),
935
+ })
936
+ .strict();
937
+ const ServiceSubscribeRequest = z
938
+ .object({
939
+ componentId: z.string().uuid().nullable(),
940
+ alertSensitivity: z.string().nullable(),
941
+ })
942
+ .partial()
943
+ .strict();
944
+ const StatusPageBranding = z
945
+ .object({
946
+ logoUrl: z
947
+ .string()
948
+ .min(0)
949
+ .max(2048)
950
+ .regex(/^https?:\/\/.*/)
951
+ .nullable(),
952
+ faviconUrl: z
953
+ .string()
954
+ .min(0)
955
+ .max(2048)
956
+ .regex(/^https?:\/\/.*/)
957
+ .nullable(),
958
+ brandColor: z
959
+ .string()
960
+ .min(0)
961
+ .max(30)
962
+ .regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/)
963
+ .nullable(),
964
+ pageBackground: z
965
+ .string()
966
+ .min(0)
967
+ .max(30)
968
+ .regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/)
969
+ .nullable(),
970
+ cardBackground: z
971
+ .string()
972
+ .min(0)
973
+ .max(30)
974
+ .regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/)
975
+ .nullable(),
976
+ textColor: z
977
+ .string()
978
+ .min(0)
979
+ .max(30)
980
+ .regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/)
981
+ .nullable(),
982
+ borderColor: z
983
+ .string()
984
+ .min(0)
985
+ .max(30)
986
+ .regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/)
987
+ .nullable(),
988
+ headerStyle: z.string().min(0).max(50).nullable(),
989
+ theme: z.string().min(0).max(50).nullable(),
990
+ reportUrl: z
991
+ .string()
992
+ .min(0)
993
+ .max(2048)
994
+ .regex(/^https?:\/\/.*/)
995
+ .nullable(),
996
+ hidePoweredBy: z.boolean().default(false),
997
+ customCss: z.string().min(0).max(50000).nullable(),
998
+ customHeadHtml: z.string().min(0).max(50000).nullable(),
999
+ })
1000
+ .partial()
1001
+ .strict();
1002
+ const CreateStatusPageRequest = z
1003
+ .object({
1004
+ name: z.string().min(0).max(255),
1005
+ slug: z
1006
+ .string()
1007
+ .min(3)
1008
+ .max(63)
1009
+ .regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/),
1010
+ description: z.string().min(0).max(500).nullish(),
1011
+ branding: StatusPageBranding.nullish(),
1012
+ visibility: z.enum(["PUBLIC", "PASSWORD", "IP_RESTRICTED"]).nullish(),
1013
+ enabled: z.boolean().nullish(),
1014
+ incidentMode: z.enum(["MANUAL", "REVIEW", "AUTOMATIC"]).nullish(),
1015
+ })
1016
+ .strict();
1017
+ const UpdateStatusPageRequest = z
1018
+ .object({
1019
+ name: z.string().min(0).max(255).nullable(),
1020
+ description: z.string().min(0).max(500).nullable(),
1021
+ branding: StatusPageBranding.nullable(),
1022
+ visibility: z.enum(["PUBLIC", "PASSWORD", "IP_RESTRICTED"]).nullable(),
1023
+ enabled: z.boolean().nullable(),
1024
+ incidentMode: z.enum(["MANUAL", "REVIEW", "AUTOMATIC"]).nullable(),
1025
+ })
1026
+ .partial()
1027
+ .strict();
1028
+ const CreateStatusPageComponentRequest = z
1029
+ .object({
1030
+ name: z.string().min(0).max(255),
1031
+ description: z.string().min(0).max(500).nullish(),
1032
+ type: z.enum(["MONITOR", "GROUP", "STATIC"]),
1033
+ monitorId: z.string().uuid().nullish(),
1034
+ resourceGroupId: z.string().uuid().nullish(),
1035
+ groupId: z.string().uuid().nullish(),
1036
+ showUptime: z.boolean().nullish(),
1037
+ displayOrder: z.number().int().nullish(),
1038
+ excludeFromOverall: z.boolean().nullish(),
1039
+ startDate: z.string().nullish(),
1040
+ })
1041
+ .strict();
1042
+ const UpdateStatusPageComponentRequest = z
1043
+ .object({
1044
+ name: z.string().min(0).max(255).nullable(),
1045
+ description: z.string().min(0).max(500).nullable(),
1046
+ groupId: z.string().uuid().nullable(),
1047
+ removeFromGroup: z.boolean().nullable(),
1048
+ showUptime: z.boolean().nullable(),
1049
+ displayOrder: z.number().int().nullable(),
1050
+ excludeFromOverall: z.boolean().nullable(),
1051
+ startDate: z.string().nullable(),
1052
+ })
1053
+ .partial()
1054
+ .strict();
1055
+ const ComponentPosition = z
1056
+ .object({
1057
+ componentId: z.string().uuid(),
1058
+ displayOrder: z.number().int(),
1059
+ groupId: z.string().uuid().nullish(),
1060
+ })
1061
+ .strict();
1062
+ const ReorderComponentsRequest = z
1063
+ .object({ positions: z.array(ComponentPosition).min(1) })
1064
+ .strict();
1065
+ const AddCustomDomainRequest = z
1066
+ .object({
1067
+ hostname: z
1068
+ .string()
1069
+ .min(0)
1070
+ .max(255)
1071
+ .regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/),
1072
+ })
1073
+ .strict();
1074
+ const CreateStatusPageComponentGroupRequest = z
1075
+ .object({
1076
+ name: z.string().min(0).max(255),
1077
+ description: z.string().min(0).max(500).nullish(),
1078
+ displayOrder: z.number().int().nullish(),
1079
+ collapsed: z.boolean().nullish(),
1080
+ })
1081
+ .strict();
1082
+ const UpdateStatusPageComponentGroupRequest = z
1083
+ .object({
1084
+ name: z.string().min(0).max(255).nullable(),
1085
+ description: z.string().min(0).max(500).nullable(),
1086
+ displayOrder: z.number().int().nullable(),
1087
+ collapsed: z.boolean().nullable(),
1088
+ })
1089
+ .partial()
1090
+ .strict();
1091
+ const AffectedComponent = z
1092
+ .object({
1093
+ componentId: z.string().uuid(),
1094
+ status: z.enum([
1095
+ "OPERATIONAL",
1096
+ "DEGRADED_PERFORMANCE",
1097
+ "PARTIAL_OUTAGE",
1098
+ "MAJOR_OUTAGE",
1099
+ "UNDER_MAINTENANCE",
1100
+ ]),
1101
+ })
1102
+ .strict();
1103
+ const CreateStatusPageIncidentRequest = z
1104
+ .object({
1105
+ title: z.string().min(0).max(500),
1106
+ status: z
1107
+ .enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"])
1108
+ .nullish(),
1109
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]),
1110
+ body: z.string().min(1),
1111
+ affectedComponents: z.array(AffectedComponent).nullish(),
1112
+ scheduled: z.boolean().nullish(),
1113
+ scheduledFor: z.string().datetime({ offset: true }).nullish(),
1114
+ scheduledUntil: z.string().datetime({ offset: true }).nullish(),
1115
+ autoResolve: z.boolean().nullish(),
1116
+ notifySubscribers: z.boolean().nullish(),
1117
+ })
1118
+ .strict();
1119
+ const UpdateStatusPageIncidentRequest = z
1120
+ .object({
1121
+ title: z.string().min(0).max(500).nullable(),
1122
+ status: z
1123
+ .enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"])
1124
+ .nullable(),
1125
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]).nullable(),
1126
+ affectedComponents: z.array(AffectedComponent).nullable(),
1127
+ postmortemBody: z.string().nullable(),
1128
+ postmortemUrl: z
1129
+ .string()
1130
+ .min(0)
1131
+ .max(2048)
1132
+ .regex(/^https?:\/\/.*/)
1133
+ .nullable(),
1134
+ })
1135
+ .partial()
1136
+ .strict();
1137
+ const PublishStatusPageIncidentRequest = z
1138
+ .object({
1139
+ title: z.string().min(0).max(500).nullable(),
1140
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]).nullable(),
1141
+ status: z
1142
+ .enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"])
1143
+ .nullable(),
1144
+ body: z.string().nullable(),
1145
+ affectedComponents: z.array(AffectedComponent).nullable(),
1146
+ notifySubscribers: z.boolean().nullable(),
1147
+ })
1148
+ .partial()
1149
+ .strict();
1150
+ const CreateStatusPageIncidentUpdateRequest = z
1151
+ .object({
1152
+ status: z.enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"]),
1153
+ body: z.string().min(1),
1154
+ notifySubscribers: z.boolean().nullish(),
1155
+ affectedComponents: z.array(AffectedComponent).nullish(),
1156
+ })
1157
+ .strict();
1158
+ const PageSection = z
1159
+ .object({
1160
+ groupId: z.string().uuid().nullish(),
1161
+ componentId: z.string().uuid().nullish(),
1162
+ pageOrder: z.number().int(),
1163
+ })
1164
+ .strict();
1165
+ const GroupComponentOrder = z
1166
+ .object({
1167
+ groupId: z.string().uuid(),
1168
+ positions: z.array(ComponentPosition).min(1),
1169
+ })
1170
+ .strict();
1171
+ const ReorderPageLayoutRequest = z
1172
+ .object({
1173
+ sections: z.array(PageSection).min(1),
1174
+ groupOrders: z.array(GroupComponentOrder).nullish(),
1175
+ })
1176
+ .strict();
1177
+ const AdminAddSubscriberRequest = z
1178
+ .object({ email: z.string().min(1).email() })
1179
+ .strict();
1180
+ const CreateTagRequest = z
1181
+ .object({
1182
+ name: z.string().min(0).max(100),
1183
+ color: z
1184
+ .string()
1185
+ .regex(/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/)
1186
+ .nullish(),
1187
+ })
1188
+ .strict();
1189
+ const UpdateTagRequest = z
1190
+ .object({
1191
+ name: z.string().min(0).max(100).nullable(),
1192
+ color: z
1193
+ .string()
1194
+ .regex(/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/)
1195
+ .nullable(),
1196
+ })
1197
+ .partial()
1198
+ .strict();
1199
+ const CreateWebhookEndpointRequest = z
1200
+ .object({
1201
+ url: z.string().min(0).max(2048),
1202
+ description: z.string().min(0).max(255).nullish(),
1203
+ subscribedEvents: z
1204
+ .array(z.enum([
1205
+ "monitor.created",
1206
+ "monitor.updated",
1207
+ "monitor.deleted",
1208
+ "incident.created",
1209
+ "incident.resolved",
1210
+ "incident.reopened",
1211
+ "service.status_changed",
1212
+ "service.component_changed",
1213
+ "service.incident_created",
1214
+ "service.incident_updated",
1215
+ "service.incident_resolved",
1216
+ ]))
1217
+ .min(1),
1218
+ })
1219
+ .strict();
1220
+ const UpdateWebhookEndpointRequest = z
1221
+ .object({
1222
+ url: z.string().min(0).max(2048).nullable(),
1223
+ description: z.string().min(0).max(255).nullable(),
1224
+ subscribedEvents: z
1225
+ .array(z.enum([
1226
+ "monitor.created",
1227
+ "monitor.updated",
1228
+ "monitor.deleted",
1229
+ "incident.created",
1230
+ "incident.resolved",
1231
+ "incident.reopened",
1232
+ "service.status_changed",
1233
+ "service.component_changed",
1234
+ "service.incident_created",
1235
+ "service.incident_updated",
1236
+ "service.incident_resolved",
1237
+ ]))
1238
+ .nullable(),
1239
+ enabled: z.boolean().nullable(),
1240
+ })
1241
+ .partial()
1242
+ .strict();
1243
+ const TestWebhookEndpointRequest = z
1244
+ .object({ eventType: z.string().nullable() })
1245
+ .partial()
1246
+ .strict();
1247
+ const CreateWorkspaceRequest = z.object({ name: z.string().min(1) }).strict();
1248
+ const UpdateWorkspaceRequest = z
1249
+ .object({ name: z.string().min(0).max(200) })
1250
+ .strict();
1251
+ const AlertChannelDisplayConfig = z
1252
+ .object({
1253
+ recipients: z.array(z.string()).nullable(),
1254
+ region: z.string().nullable(),
1255
+ severityOverride: z.string().nullable(),
1256
+ mentionRoleId: z.string().nullable(),
1257
+ customHeaders: z.record(z.string(), z.string().nullable()).nullable(),
1258
+ })
1259
+ .partial()
1260
+ .strict();
1261
+ const AlertChannelDto = z
1262
+ .object({
1263
+ id: z.string().uuid(),
1264
+ name: z.string(),
1265
+ channelType: z.enum([
1266
+ "email",
1267
+ "webhook",
1268
+ "slack",
1269
+ "pagerduty",
1270
+ "opsgenie",
1271
+ "teams",
1272
+ "discord",
1273
+ ]),
1274
+ displayConfig: AlertChannelDisplayConfig.nullish(),
1275
+ createdAt: z.string().datetime({ offset: true }),
1276
+ updatedAt: z.string().datetime({ offset: true }),
1277
+ configHash: z.string().nullish(),
1278
+ lastDeliveryAt: z.string().datetime({ offset: true }).nullish(),
1279
+ lastDeliveryStatus: z.string().nullish(),
1280
+ })
1281
+ .strict();
1282
+ const AlertDeliveryDto = z
1283
+ .object({
1284
+ id: z.string().uuid(),
1285
+ incidentId: z.string().uuid(),
1286
+ dispatchId: z.string().uuid().nullish(),
1287
+ channelId: z.string().uuid(),
1288
+ channel: z.string(),
1289
+ channelType: z.string(),
1290
+ status: z.enum([
1291
+ "PENDING",
1292
+ "DELIVERED",
1293
+ "RETRY_PENDING",
1294
+ "FAILED",
1295
+ "CANCELLED",
1296
+ ]),
1297
+ eventType: z.enum([
1298
+ "INCIDENT_CREATED",
1299
+ "INCIDENT_RESOLVED",
1300
+ "INCIDENT_REOPENED",
1301
+ ]),
1302
+ stepNumber: z.number().int(),
1303
+ fireCount: z.number().int(),
1304
+ attemptCount: z.number().int(),
1305
+ lastAttemptAt: z.string().datetime({ offset: true }).nullish(),
1306
+ nextRetryAt: z.string().datetime({ offset: true }).nullish(),
1307
+ deliveredAt: z.string().datetime({ offset: true }).nullish(),
1308
+ errorMessage: z.string().nullish(),
1309
+ createdAt: z.string().datetime({ offset: true }),
1310
+ })
1311
+ .strict();
1312
+ const ApiKeyCreateResponse = z
1313
+ .object({
1314
+ id: z.number().int(),
1315
+ name: z.string().min(1),
1316
+ key: z.string().min(1),
1317
+ createdAt: z.string().datetime({ offset: true }),
1318
+ expiresAt: z.string().datetime({ offset: true }).nullish(),
1319
+ })
1320
+ .strict();
1321
+ const ApiKeyDto = z
1322
+ .object({
1323
+ id: z.number().int(),
1324
+ name: z.string().min(1),
1325
+ key: z.string().min(1),
1326
+ createdAt: z.string().datetime({ offset: true }),
1327
+ updatedAt: z.string().datetime({ offset: true }),
1328
+ lastUsedAt: z.string().datetime({ offset: true }).nullish(),
1329
+ revokedAt: z.string().datetime({ offset: true }).nullish(),
1330
+ expiresAt: z.string().datetime({ offset: true }).nullish(),
1331
+ })
1332
+ .strict();
1333
+ const AssertionResultDto = z
1334
+ .object({
1335
+ type: z.string(),
1336
+ passed: z.boolean(),
1337
+ severity: z.enum(["fail", "warn"]),
1338
+ message: z.string().nullish(),
1339
+ expected: z.string().nullish(),
1340
+ actual: z.string().nullish(),
1341
+ })
1342
+ .strict();
1343
+ const AssertionTestResultDto = z
1344
+ .object({
1345
+ assertionType: z.enum([
1346
+ "status_code",
1347
+ "response_time",
1348
+ "body_contains",
1349
+ "json_path",
1350
+ "header_value",
1351
+ "regex_body",
1352
+ "dns_resolves",
1353
+ "dns_response_time",
1354
+ "dns_expected_ips",
1355
+ "dns_expected_cname",
1356
+ "dns_record_contains",
1357
+ "dns_record_equals",
1358
+ "dns_txt_contains",
1359
+ "dns_min_answers",
1360
+ "dns_max_answers",
1361
+ "dns_response_time_warn",
1362
+ "dns_ttl_low",
1363
+ "dns_ttl_high",
1364
+ "mcp_connects",
1365
+ "mcp_response_time",
1366
+ "mcp_has_capability",
1367
+ "mcp_tool_available",
1368
+ "mcp_min_tools",
1369
+ "mcp_protocol_version",
1370
+ "mcp_response_time_warn",
1371
+ "mcp_tool_count_changed",
1372
+ "ssl_expiry",
1373
+ "response_size",
1374
+ "redirect_count",
1375
+ "redirect_target",
1376
+ "response_time_warn",
1377
+ "tcp_connects",
1378
+ "tcp_response_time",
1379
+ "tcp_response_time_warn",
1380
+ "icmp_reachable",
1381
+ "icmp_response_time",
1382
+ "icmp_response_time_warn",
1383
+ "icmp_packet_loss",
1384
+ "heartbeat_received",
1385
+ "heartbeat_max_interval",
1386
+ "heartbeat_interval_drift",
1387
+ "heartbeat_payload_contains",
1388
+ ]),
1389
+ passed: z.boolean(),
1390
+ severity: z.enum(["fail", "warn"]),
1391
+ message: z.string(),
1392
+ expected: z.string().nullish(),
1393
+ actual: z.string().nullish(),
1394
+ })
1395
+ .strict();
1396
+ const AuditEventDto = z
1397
+ .object({
1398
+ id: z.number().int(),
1399
+ actorId: z.number().int().nullish(),
1400
+ actorEmail: z.string().nullish(),
1401
+ action: z.string(),
1402
+ resourceType: z.string().nullish(),
1403
+ resourceId: z.string().nullish(),
1404
+ resourceName: z.string().nullish(),
1405
+ metadata: z.record(z.string(), z.object({}).partial().strict().nullable()).nullish(),
1406
+ createdAt: z.string().datetime({ offset: true }),
1407
+ })
1408
+ .strict();
1409
+ const KeyInfo = z
1410
+ .object({
1411
+ id: z.number().int(),
1412
+ name: z.string(),
1413
+ createdAt: z.string().datetime({ offset: true }),
1414
+ expiresAt: z.string().datetime({ offset: true }).nullish(),
1415
+ lastUsedAt: z.string().datetime({ offset: true }).nullish(),
1416
+ })
1417
+ .strict();
1418
+ const OrgInfo = z.object({ id: z.number().int(), name: z.string() }).strict();
1419
+ const EntitlementDto = z
1420
+ .object({
1421
+ key: z.string(),
1422
+ value: z.number().int(),
1423
+ defaultValue: z.number().int(),
1424
+ overridden: z.boolean(),
1425
+ })
1426
+ .strict();
1427
+ const PlanInfo = z
1428
+ .object({
1429
+ tier: z.enum(["FREE", "STARTER", "PRO", "TEAM", "BUSINESS", "ENTERPRISE"]),
1430
+ subscriptionStatus: z.string().nullish(),
1431
+ trialActive: z.boolean(),
1432
+ trialExpiresAt: z.string().datetime({ offset: true }).nullish(),
1433
+ entitlements: z.record(z.string(), EntitlementDto),
1434
+ usage: z.record(z.string(), z.number().int()),
1435
+ })
1436
+ .strict();
1437
+ const RateLimitInfo = z
1438
+ .object({
1439
+ requestsPerMinute: z.number().int(),
1440
+ remaining: z.number().int(),
1441
+ windowMs: z.number().int(),
1442
+ })
1443
+ .strict();
1444
+ const AuthMeResponse = z
1445
+ .object({
1446
+ key: KeyInfo,
1447
+ organization: OrgInfo,
1448
+ plan: PlanInfo,
1449
+ rateLimits: RateLimitInfo,
1450
+ })
1451
+ .strict();
1452
+ const ComponentUptimeDayDto = z
1453
+ .object({
1454
+ date: z.string().datetime({ offset: true }),
1455
+ partialOutageSeconds: z.number().int(),
1456
+ majorOutageSeconds: z.number().int(),
1457
+ degradedSeconds: z.number().int(),
1458
+ uptimePercentage: z.number(),
1459
+ eventsJson: z.string().nullish(),
1460
+ source: z.string(),
1461
+ })
1462
+ .strict();
1463
+ const BatchComponentUptimeDto = z
1464
+ .object({ components: z.record(z.string(), z.array(ComponentUptimeDayDto)) })
1465
+ .strict();
1466
+ const FailureDetail = z
1467
+ .object({ monitorId: z.string().uuid(), reason: z.string() })
1468
+ .strict();
1469
+ const BulkMonitorActionResult = z
1470
+ .object({
1471
+ succeeded: z.array(z.string().uuid()),
1472
+ failed: z.array(FailureDetail),
1473
+ })
1474
+ .strict();
1475
+ const CategoryDto = z
1476
+ .object({ category: z.string(), serviceCount: z.number().int() })
1477
+ .strict();
1478
+ const ChartBucketDto = z
1479
+ .object({
1480
+ bucket: z.string().datetime({ offset: true }),
1481
+ uptimePercent: z.number().nullish(),
1482
+ avgLatencyMs: z.number().nullish(),
1483
+ p95LatencyMs: z.number().nullish(),
1484
+ p99LatencyMs: z.number().nullish(),
1485
+ })
1486
+ .strict();
1487
+ const TlsInfoDto = z
1488
+ .object({
1489
+ subjectCn: z.string().nullable(),
1490
+ subjectSan: z.array(z.string()).nullable(),
1491
+ issuerCn: z.string().nullable(),
1492
+ issuerOrg: z.string().nullable(),
1493
+ notBefore: z.string().nullable(),
1494
+ notAfter: z.string().nullable(),
1495
+ serialNumber: z.string().nullable(),
1496
+ tlsVersion: z.string().nullable(),
1497
+ cipherSuite: z.string().nullable(),
1498
+ chainValid: z.boolean().nullable(),
1499
+ })
1500
+ .partial()
1501
+ .strict();
1502
+ const Http = z
1503
+ .object({
1504
+ check_type: z.literal("http"),
1505
+ timing: z.record(z.string(), z.object({}).partial().strict().nullable()).nullish(),
1506
+ bodyTruncated: z.boolean().nullish(),
1507
+ })
1508
+ .strict();
1509
+ const Tcp = z
1510
+ .object({
1511
+ check_type: z.literal("tcp"),
1512
+ host: z.string(),
1513
+ port: z.number().int(),
1514
+ connected: z.boolean(),
1515
+ })
1516
+ .strict();
1517
+ const Icmp = z
1518
+ .object({
1519
+ check_type: z.literal("icmp"),
1520
+ host: z.string(),
1521
+ packetsSent: z.number().int().nullish(),
1522
+ packetsReceived: z.number().int().nullish(),
1523
+ packetLoss: z.number().nullish(),
1524
+ avgRttMs: z.number().nullish(),
1525
+ minRttMs: z.number().nullish(),
1526
+ maxRttMs: z.number().nullish(),
1527
+ jitterMs: z.number().nullish(),
1528
+ })
1529
+ .strict();
1530
+ const Dns = z
1531
+ .object({
1532
+ check_type: z.literal("dns"),
1533
+ hostname: z.string().nullish(),
1534
+ requestedTypes: z.array(z.string().nullable()).nullish(),
1535
+ usedResolver: z.string().nullish(),
1536
+ records: z
1537
+ .record(z.string(), z
1538
+ .array(z.record(z.string(), z.object({}).partial().strict().nullable()).nullable())
1539
+ .nullable())
1540
+ .nullish(),
1541
+ attempts: z
1542
+ .array(z.record(z.string(), z.object({}).partial().strict().nullable()).nullable())
1543
+ .nullish(),
1544
+ failureKind: z.string().nullish(),
1545
+ })
1546
+ .strict();
1547
+ const McpServer = z
1548
+ .object({
1549
+ check_type: z.literal("mcp_server"),
1550
+ url: z.string().nullish(),
1551
+ protocolVersion: z.string().nullish(),
1552
+ serverInfo: z.record(z.string(), z.object({}).partial().strict().nullable()).nullish(),
1553
+ toolCount: z.number().int().nullish(),
1554
+ resourceCount: z.number().int().nullish(),
1555
+ promptCount: z.number().int().nullish(),
1556
+ })
1557
+ .strict();
1558
+ const CheckTypeDetailsDto = z.discriminatedUnion("check_type", [
1559
+ Http,
1560
+ Tcp,
1561
+ Icmp,
1562
+ Dns,
1563
+ McpServer,
1564
+ ]);
1565
+ const CheckResultDetailsDto = z
1566
+ .object({
1567
+ statusCode: z.number().int().nullable(),
1568
+ responseHeaders: z
1569
+ .record(z.string(), z.array(z.string().nullable()).nullable())
1570
+ .nullable(),
1571
+ responseBodySnapshot: z.string().nullable(),
1572
+ assertionResults: z.array(AssertionResultDto).nullable(),
1573
+ tlsInfo: TlsInfoDto.nullable(),
1574
+ redirectCount: z.number().int().nullable(),
1575
+ redirectTarget: z.string().nullable(),
1576
+ responseSizeBytes: z.number().int().nullable(),
1577
+ checkDetails: CheckTypeDetailsDto.nullable(),
1578
+ })
1579
+ .partial()
1580
+ .strict();
1581
+ const CheckResultDto = z
1582
+ .object({
1583
+ id: z.string().uuid(),
1584
+ timestamp: z.string().datetime({ offset: true }),
1585
+ region: z.string(),
1586
+ responseTimeMs: z.number().int().nullish(),
1587
+ passed: z.boolean(),
1588
+ failureReason: z.string().nullish(),
1589
+ severityHint: z.string().nullish(),
1590
+ details: CheckResultDetailsDto.nullish(),
1591
+ checkId: z.string().uuid().nullish(),
1592
+ })
1593
+ .strict();
1594
+ const ComponentImpact = z
1595
+ .object({
1596
+ componentId: z.string().uuid(),
1597
+ componentName: z.string(),
1598
+ groupName: z.string().nullish(),
1599
+ uptimePercentage: z.number(),
1600
+ partialOutageSeconds: z.number().int(),
1601
+ majorOutageSeconds: z.number().int(),
1602
+ })
1603
+ .strict();
1604
+ const ComponentsSummaryDto = z
1605
+ .object({
1606
+ totalCount: z.number().int(),
1607
+ includedCount: z.number().int(),
1608
+ groupComponentCounts: z.record(z.string(), z.number().int()),
1609
+ })
1610
+ .strict();
1611
+ const ComponentStatusDto = z
1612
+ .object({ id: z.string(), name: z.string(), status: z.string() })
1613
+ .strict();
1614
+ const ComponentUptimeSummaryDto = z
1615
+ .object({
1616
+ day: z.number().nullish(),
1617
+ week: z.number().nullish(),
1618
+ month: z.number().nullish(),
1619
+ source: z.string(),
1620
+ })
1621
+ .strict();
1622
+ const CursorPageCheckResultDto = z
1623
+ .object({
1624
+ data: z.array(CheckResultDto),
1625
+ nextCursor: z.string().nullish(),
1626
+ hasMore: z.boolean(),
1627
+ })
1628
+ .strict();
1629
+ const ServiceCatalogDto = z
1630
+ .object({
1631
+ id: z.string().uuid(),
1632
+ slug: z.string(),
1633
+ name: z.string(),
1634
+ category: z.string().nullish(),
1635
+ officialStatusUrl: z.string().nullish(),
1636
+ developerContext: z.string().nullish(),
1637
+ logoUrl: z.string().nullish(),
1638
+ adapterType: z.string(),
1639
+ pollingIntervalSeconds: z.number().int(),
1640
+ enabled: z.boolean(),
1641
+ published: z.boolean(),
1642
+ overallStatus: z.string().nullish(),
1643
+ createdAt: z.string().datetime({ offset: true }),
1644
+ updatedAt: z.string().datetime({ offset: true }),
1645
+ componentCount: z.number().int(),
1646
+ activeIncidentCount: z.number().int(),
1647
+ dataCompleteness: z.string(),
1648
+ uptime30d: z.number().nullish(),
1649
+ })
1650
+ .strict();
1651
+ const CursorPageServiceCatalogDto = z
1652
+ .object({
1653
+ data: z.array(ServiceCatalogDto),
1654
+ nextCursor: z.string().nullish(),
1655
+ hasMore: z.boolean(),
1656
+ })
1657
+ .strict();
1658
+ const ServicePollResultDto = z
1659
+ .object({
1660
+ serviceId: z.string().uuid(),
1661
+ timestamp: z.string().datetime({ offset: true }),
1662
+ overallStatus: z.string().nullish(),
1663
+ responseTimeMs: z.number().int().nullish(),
1664
+ httpStatusCode: z.number().int().nullish(),
1665
+ passed: z.boolean(),
1666
+ failureReason: z.string().nullish(),
1667
+ componentCount: z.number().int(),
1668
+ degradedCount: z.number().int(),
1669
+ })
1670
+ .strict();
1671
+ const CursorPageServicePollResultDto = z
1672
+ .object({
1673
+ data: z.array(ServicePollResultDto),
1674
+ nextCursor: z.string().nullish(),
1675
+ hasMore: z.boolean(),
1676
+ })
1677
+ .strict();
1678
+ const MonitorsSummaryDto = z
1679
+ .object({
1680
+ total: z.number().int(),
1681
+ up: z.number().int(),
1682
+ down: z.number().int(),
1683
+ degraded: z.number().int(),
1684
+ paused: z.number().int(),
1685
+ avgUptime24h: z.number().nullish(),
1686
+ avgUptime30d: z.number().nullish(),
1687
+ })
1688
+ .strict();
1689
+ const IncidentsSummaryDto = z
1690
+ .object({
1691
+ active: z.number().int(),
1692
+ resolvedToday: z.number().int(),
1693
+ mttr30d: z.number().nullish(),
1694
+ })
1695
+ .strict();
1696
+ const DashboardOverviewDto = z
1697
+ .object({ monitors: MonitorsSummaryDto, incidents: IncidentsSummaryDto })
1698
+ .strict();
1699
+ const DayIncident = z
1700
+ .object({
1701
+ id: z.string().uuid(),
1702
+ title: z.string(),
1703
+ status: z.enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"]),
1704
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]),
1705
+ scheduled: z.boolean(),
1706
+ startedAt: z.string().datetime({ offset: true }).nullish(),
1707
+ resolvedAt: z.string().datetime({ offset: true }).nullish(),
1708
+ affectedComponentNames: z.array(z.string()),
1709
+ })
1710
+ .strict();
1711
+ const DekRotationResultDto = z
1712
+ .object({
1713
+ previousDekVersion: z.number().int(),
1714
+ newDekVersion: z.number().int(),
1715
+ secretsReEncrypted: z.number().int(),
1716
+ channelsReEncrypted: z.number().int(),
1717
+ rotatedAt: z.string().datetime({ offset: true }),
1718
+ })
1719
+ .strict();
1720
+ const DeleteChannelResult = z
1721
+ .object({
1722
+ affectedPolicies: z.number().int(),
1723
+ disabledPolicies: z.number().int(),
1724
+ })
1725
+ .strict();
1726
+ const DeliveryAttemptDto = z
1727
+ .object({
1728
+ id: z.string().uuid(),
1729
+ deliveryId: z.string().uuid(),
1730
+ attemptNumber: z.number().int(),
1731
+ status: z.string(),
1732
+ responseStatusCode: z.number().int().nullish(),
1733
+ requestPayload: z.string().nullish(),
1734
+ responseBody: z.string().nullish(),
1735
+ errorMessage: z.string().nullish(),
1736
+ responseTimeMs: z.number().int().nullish(),
1737
+ externalId: z.string().nullish(),
1738
+ requestHeaders: z.record(z.string(), z.string().nullable()).nullish(),
1739
+ attemptedAt: z.string().datetime({ offset: true }),
1740
+ })
1741
+ .strict();
1742
+ const DeployLockDto = z
1743
+ .object({
1744
+ id: z.string().uuid(),
1745
+ lockedBy: z.string().min(1),
1746
+ lockedAt: z.string().datetime({ offset: true }),
1747
+ expiresAt: z.string().datetime({ offset: true }),
1748
+ })
1749
+ .strict();
1750
+ const EnvironmentDto = z
1751
+ .object({
1752
+ id: z.string().uuid(),
1753
+ orgId: z.number().int(),
1754
+ name: z.string().min(1),
1755
+ slug: z.string().min(1),
1756
+ variables: z.record(z.string(), z.string()),
1757
+ createdAt: z.string().datetime({ offset: true }),
1758
+ updatedAt: z.string().datetime({ offset: true }),
1759
+ monitorCount: z.number().int(),
1760
+ isDefault: z.boolean(),
1761
+ })
1762
+ .strict();
1763
+ const GlobalStatusSummaryDto = z
1764
+ .object({
1765
+ totalServices: z.number().int(),
1766
+ operationalCount: z.number().int(),
1767
+ degradedCount: z.number().int(),
1768
+ partialOutageCount: z.number().int(),
1769
+ majorOutageCount: z.number().int(),
1770
+ maintenanceCount: z.number().int(),
1771
+ unknownCount: z.number().int(),
1772
+ activeIncidentCount: z.number().int(),
1773
+ servicesWithIssues: z.array(ServiceCatalogDto),
1774
+ })
1775
+ .strict();
1776
+ const HeartbeatPingResponse = z.object({ ok: z.boolean() }).strict();
1777
+ const IncidentDto = z
1778
+ .object({
1779
+ id: z.string().uuid(),
1780
+ monitorId: z.string().uuid().nullish(),
1781
+ organizationId: z.number().int(),
1782
+ source: z.enum([
1783
+ "AUTOMATIC",
1784
+ "MANUAL",
1785
+ "MONITORS",
1786
+ "STATUS_DATA",
1787
+ "RESOURCE_GROUP",
1788
+ ]),
1789
+ status: z.enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"]),
1790
+ severity: z.enum(["DOWN", "DEGRADED", "MAINTENANCE"]),
1791
+ title: z.string().nullish(),
1792
+ triggeredByRule: z.string().nullish(),
1793
+ affectedRegions: z.array(z.string()),
1794
+ reopenCount: z.number().int(),
1795
+ createdByUserId: z.number().int().nullish(),
1796
+ statusPageVisible: z.boolean(),
1797
+ serviceIncidentId: z.string().uuid().nullish(),
1798
+ serviceId: z.string().uuid().nullish(),
1799
+ externalRef: z.string().nullish(),
1800
+ affectedComponents: z.array(z.string()).nullish(),
1801
+ shortlink: z.string().nullish(),
1802
+ resolutionReason: z
1803
+ .enum(["MANUAL", "AUTO_RECOVERED", "AUTO_RESOLVED"])
1804
+ .nullish(),
1805
+ startedAt: z.string().datetime({ offset: true }).nullish(),
1806
+ confirmedAt: z.string().datetime({ offset: true }).nullish(),
1807
+ resolvedAt: z.string().datetime({ offset: true }).nullish(),
1808
+ cooldownUntil: z.string().datetime({ offset: true }).nullish(),
1809
+ createdAt: z.string().datetime({ offset: true }),
1810
+ updatedAt: z.string().datetime({ offset: true }),
1811
+ monitorName: z.string().nullish(),
1812
+ serviceName: z.string().nullish(),
1813
+ serviceSlug: z.string().nullish(),
1814
+ monitorType: z.string().nullish(),
1815
+ resourceGroupId: z.string().uuid().nullish(),
1816
+ resourceGroupName: z.string().nullish(),
1817
+ })
1818
+ .strict();
1819
+ const IncidentUpdateDto = z
1820
+ .object({
1821
+ id: z.string().uuid(),
1822
+ incidentId: z.string().uuid(),
1823
+ oldStatus: z
1824
+ .enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"])
1825
+ .nullish(),
1826
+ newStatus: z
1827
+ .enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"])
1828
+ .nullish(),
1829
+ body: z.string().nullish(),
1830
+ createdBy: z.enum(["SYSTEM", "USER"]).nullish(),
1831
+ notifySubscribers: z.boolean(),
1832
+ createdAt: z.string().datetime({ offset: true }),
1833
+ })
1834
+ .strict();
1835
+ const LinkedStatusPageIncidentDto = z
1836
+ .object({
1837
+ id: z.string().uuid(),
1838
+ statusPageId: z.string().uuid(),
1839
+ statusPageName: z.string(),
1840
+ statusPageSlug: z.string(),
1841
+ title: z.string(),
1842
+ status: z.enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"]),
1843
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]),
1844
+ scheduled: z.boolean(),
1845
+ publishedAt: z.string().datetime({ offset: true }).nullish(),
1846
+ })
1847
+ .strict();
1848
+ const IncidentDetailDto = z
1849
+ .object({
1850
+ incident: IncidentDto,
1851
+ updates: z.array(IncidentUpdateDto),
1852
+ statusPageIncidents: z.array(LinkedStatusPageIncidentDto).nullish(),
1853
+ })
1854
+ .strict();
1855
+ const IncidentFilterParams = z
1856
+ .object({
1857
+ status: z
1858
+ .enum(["WATCHING", "TRIGGERED", "CONFIRMED", "RESOLVED"])
1859
+ .nullish(),
1860
+ severity: z.enum(["DOWN", "DEGRADED", "MAINTENANCE"]).nullish(),
1861
+ source: z
1862
+ .enum([
1863
+ "AUTOMATIC",
1864
+ "MANUAL",
1865
+ "MONITORS",
1866
+ "STATUS_DATA",
1867
+ "RESOURCE_GROUP",
1868
+ ])
1869
+ .nullish(),
1870
+ monitorId: z.string().uuid().nullish(),
1871
+ serviceId: z.string().uuid().nullish(),
1872
+ resourceGroupId: z.string().uuid().nullish(),
1873
+ tagId: z.string().uuid().nullish(),
1874
+ environmentId: z.string().uuid().nullish(),
1875
+ startedFrom: z.string().datetime({ offset: true }).nullish(),
1876
+ startedTo: z.string().datetime({ offset: true }).nullish(),
1877
+ page: z.number().int().gte(0),
1878
+ size: z.number().int().gte(1).lte(200),
1879
+ })
1880
+ .strict();
1881
+ const IncidentPolicyDto = z
1882
+ .object({
1883
+ id: z.string().uuid(),
1884
+ monitorId: z.string().uuid(),
1885
+ triggerRules: z.array(TriggerRule),
1886
+ confirmation: ConfirmationPolicy,
1887
+ recovery: RecoveryPolicy,
1888
+ createdAt: z.string().datetime({ offset: true }),
1889
+ updatedAt: z.string().datetime({ offset: true }),
1890
+ monitorRegionCount: z.number().int().nullish(),
1891
+ checkFrequencySeconds: z.number().int().nullish(),
1892
+ })
1893
+ .strict();
1894
+ const IncidentRef = z
1895
+ .object({ id: z.string().uuid(), title: z.string(), impact: z.string() })
1896
+ .strict();
1897
+ const IntegrationFieldDto = z
1898
+ .object({
1899
+ key: z.string(),
1900
+ label: z.string(),
1901
+ type: z.string(),
1902
+ required: z.boolean(),
1903
+ sensitive: z.boolean(),
1904
+ placeholder: z.string().nullish(),
1905
+ helpText: z.string().nullish(),
1906
+ options: z.array(z.string()).nullish(),
1907
+ default: z.string().nullish(),
1908
+ })
1909
+ .strict();
1910
+ const IntegrationConfigSchemaDto = z
1911
+ .object({
1912
+ connectionFields: z.array(IntegrationFieldDto),
1913
+ channelFields: z.array(IntegrationFieldDto),
1914
+ })
1915
+ .strict();
1916
+ const IntegrationDto = z
1917
+ .object({
1918
+ type: z.string(),
1919
+ name: z.string(),
1920
+ description: z.string(),
1921
+ logoUrl: z.string(),
1922
+ authType: z.string(),
1923
+ tierAvailability: z.enum([
1924
+ "FREE",
1925
+ "STARTER",
1926
+ "PRO",
1927
+ "TEAM",
1928
+ "BUSINESS",
1929
+ "ENTERPRISE",
1930
+ ]),
1931
+ lifecycle: z.string(),
1932
+ setupGuideUrl: z.string(),
1933
+ configSchema: IntegrationConfigSchemaDto,
1934
+ })
1935
+ .strict();
1936
+ const InviteDto = z
1937
+ .object({
1938
+ inviteId: z.number().int(),
1939
+ email: z.string(),
1940
+ roleOffered: z.enum(["OWNER", "ADMIN", "MEMBER"]),
1941
+ expiresAt: z.string().datetime({ offset: true }),
1942
+ consumedAt: z.string().datetime({ offset: true }).nullish(),
1943
+ revokedAt: z.string().datetime({ offset: true }).nullish(),
1944
+ })
1945
+ .strict();
1946
+ const MaintenanceComponentRef = z
1947
+ .object({ id: z.string().uuid(), name: z.string(), status: z.string() })
1948
+ .strict();
1949
+ const MaintenanceUpdateDto = z
1950
+ .object({
1951
+ id: z.string().uuid(),
1952
+ status: z.string(),
1953
+ body: z.string().nullish(),
1954
+ displayAt: z.string().datetime({ offset: true }).nullish(),
1955
+ })
1956
+ .strict();
1957
+ const MaintenanceWindowDto = z
1958
+ .object({
1959
+ id: z.string().uuid(),
1960
+ monitorId: z.string().uuid().nullish(),
1961
+ organizationId: z.number().int(),
1962
+ startsAt: z.string().datetime({ offset: true }),
1963
+ endsAt: z.string().datetime({ offset: true }),
1964
+ repeatRule: z.string().nullish(),
1965
+ reason: z.string().nullish(),
1966
+ suppressAlerts: z.boolean(),
1967
+ createdAt: z.string().datetime({ offset: true }),
1968
+ })
1969
+ .strict();
1970
+ const MemberDto = z
1971
+ .object({
1972
+ userId: z.number().int(),
1973
+ email: z.string(),
1974
+ name: z.string().nullish(),
1975
+ orgRole: z.enum(["OWNER", "ADMIN", "MEMBER"]),
1976
+ status: z.enum([
1977
+ "INVITED",
1978
+ "ACTIVE",
1979
+ "SUSPENDED",
1980
+ "LEFT",
1981
+ "REMOVED",
1982
+ "DECLINED",
1983
+ ]),
1984
+ createdAt: z.string().datetime({ offset: true }),
1985
+ })
1986
+ .strict();
1987
+ const MonitorAssertionDto = z
1988
+ .object({
1989
+ id: z.string().uuid(),
1990
+ monitorId: z.string().uuid(),
1991
+ assertionType: z.enum([
1992
+ "status_code",
1993
+ "response_time",
1994
+ "body_contains",
1995
+ "json_path",
1996
+ "header_value",
1997
+ "regex_body",
1998
+ "dns_resolves",
1999
+ "dns_response_time",
2000
+ "dns_expected_ips",
2001
+ "dns_expected_cname",
2002
+ "dns_record_contains",
2003
+ "dns_record_equals",
2004
+ "dns_txt_contains",
2005
+ "dns_min_answers",
2006
+ "dns_max_answers",
2007
+ "dns_response_time_warn",
2008
+ "dns_ttl_low",
2009
+ "dns_ttl_high",
2010
+ "mcp_connects",
2011
+ "mcp_response_time",
2012
+ "mcp_has_capability",
2013
+ "mcp_tool_available",
2014
+ "mcp_min_tools",
2015
+ "mcp_protocol_version",
2016
+ "mcp_response_time_warn",
2017
+ "mcp_tool_count_changed",
2018
+ "ssl_expiry",
2019
+ "response_size",
2020
+ "redirect_count",
2021
+ "redirect_target",
2022
+ "response_time_warn",
2023
+ "tcp_connects",
2024
+ "tcp_response_time",
2025
+ "tcp_response_time_warn",
2026
+ "icmp_reachable",
2027
+ "icmp_response_time",
2028
+ "icmp_response_time_warn",
2029
+ "icmp_packet_loss",
2030
+ "heartbeat_received",
2031
+ "heartbeat_max_interval",
2032
+ "heartbeat_interval_drift",
2033
+ "heartbeat_payload_contains",
2034
+ ]),
2035
+ config: z.union([
2036
+ BodyContainsAssertion,
2037
+ DnsExpectedCnameAssertion,
2038
+ DnsExpectedIpsAssertion,
2039
+ DnsMaxAnswersAssertion,
2040
+ DnsMinAnswersAssertion,
2041
+ DnsRecordContainsAssertion,
2042
+ DnsRecordEqualsAssertion,
2043
+ DnsResolvesAssertion,
2044
+ DnsResponseTimeAssertion,
2045
+ DnsResponseTimeWarnAssertion,
2046
+ DnsTtlHighAssertion,
2047
+ DnsTtlLowAssertion,
2048
+ DnsTxtContainsAssertion,
2049
+ HeaderValueAssertion,
2050
+ HeartbeatIntervalDriftAssertion,
2051
+ HeartbeatMaxIntervalAssertion,
2052
+ HeartbeatPayloadContainsAssertion,
2053
+ HeartbeatReceivedAssertion,
2054
+ IcmpPacketLossAssertion,
2055
+ IcmpReachableAssertion,
2056
+ IcmpResponseTimeAssertion,
2057
+ IcmpResponseTimeWarnAssertion,
2058
+ JsonPathAssertion,
2059
+ McpConnectsAssertion,
2060
+ McpHasCapabilityAssertion,
2061
+ McpMinToolsAssertion,
2062
+ McpProtocolVersionAssertion,
2063
+ McpResponseTimeAssertion,
2064
+ McpResponseTimeWarnAssertion,
2065
+ McpToolAvailableAssertion,
2066
+ McpToolCountChangedAssertion,
2067
+ RedirectCountAssertion,
2068
+ RedirectTargetAssertion,
2069
+ RegexBodyAssertion,
2070
+ ResponseSizeAssertion,
2071
+ ResponseTimeAssertion,
2072
+ ResponseTimeWarnAssertion,
2073
+ SslExpiryAssertion,
2074
+ StatusCodeAssertion,
2075
+ TcpConnectsAssertion,
2076
+ TcpResponseTimeAssertion,
2077
+ TcpResponseTimeWarnAssertion,
2078
+ ]),
2079
+ severity: z.enum(["fail", "warn"]),
2080
+ })
2081
+ .strict();
2082
+ const MonitorAuthDto = z
2083
+ .object({
2084
+ id: z.string().uuid(),
2085
+ monitorId: z.string().uuid(),
2086
+ authType: z.enum(["bearer", "basic", "header", "api_key"]),
2087
+ config: z.discriminatedUnion("type", [ApiKeyAuthConfig, BasicAuthConfig, BearerAuthConfig, HeaderAuthConfig]),
2088
+ })
2089
+ .strict();
2090
+ const TagDto = z
2091
+ .object({
2092
+ id: z.string().uuid(),
2093
+ organizationId: z.number().int(),
2094
+ name: z.string().min(1),
2095
+ color: z.string().min(1),
2096
+ createdAt: z.string().datetime({ offset: true }),
2097
+ updatedAt: z.string().datetime({ offset: true }),
2098
+ })
2099
+ .strict();
2100
+ const Summary = z
2101
+ .object({
2102
+ id: z.string().uuid(),
2103
+ name: z.string().min(1),
2104
+ slug: z.string().min(1),
2105
+ })
2106
+ .strict();
2107
+ const MonitorDto = z
2108
+ .object({
2109
+ id: z.string().uuid(),
2110
+ organizationId: z.number().int(),
2111
+ name: z.string().min(1),
2112
+ type: z.enum(["HTTP", "DNS", "MCP_SERVER", "TCP", "ICMP", "HEARTBEAT"]),
2113
+ config: z.union([
2114
+ DnsMonitorConfig,
2115
+ HeartbeatMonitorConfig,
2116
+ HttpMonitorConfig,
2117
+ IcmpMonitorConfig,
2118
+ McpServerMonitorConfig,
2119
+ TcpMonitorConfig,
2120
+ ]),
2121
+ frequencySeconds: z.number().int(),
2122
+ enabled: z.boolean(),
2123
+ regions: z.array(z.string()),
2124
+ managedBy: z.enum(["DASHBOARD", "CLI", "TERRAFORM"]),
2125
+ createdAt: z.string().datetime({ offset: true }),
2126
+ updatedAt: z.string().datetime({ offset: true }),
2127
+ assertions: z.array(MonitorAssertionDto).nullish(),
2128
+ tags: z.array(TagDto).nullish(),
2129
+ pingUrl: z.string().nullish(),
2130
+ environment: Summary.nullish(),
2131
+ auth: MonitorAuthConfig.nullish(),
2132
+ incidentPolicy: IncidentPolicyDto.nullish(),
2133
+ alertChannelIds: z.array(z.string().uuid()).nullish(),
2134
+ })
2135
+ .strict();
2136
+ const MonitorReference = z
2137
+ .object({ id: z.string().uuid(), name: z.string() })
2138
+ .strict();
2139
+ const MonitorTestResultDto = z
2140
+ .object({
2141
+ passed: z.boolean(),
2142
+ error: z.string().nullish(),
2143
+ statusCode: z.number().int().nullish(),
2144
+ responseTimeMs: z.number().int().nullish(),
2145
+ responseHeaders: z
2146
+ .record(z.string(), z.array(z.string().nullable()).nullable())
2147
+ .nullish(),
2148
+ bodyPreview: z.string().nullish(),
2149
+ responseSizeBytes: z.number().int().nullish(),
2150
+ redirectCount: z.number().int().nullish(),
2151
+ finalUrl: z.string().nullish(),
2152
+ assertionResults: z.array(AssertionTestResultDto),
2153
+ warnings: z.array(z.string()).nullish(),
2154
+ })
2155
+ .strict();
2156
+ const MonitorVersionDto = z
2157
+ .object({
2158
+ id: z.string().uuid(),
2159
+ monitorId: z.string().uuid(),
2160
+ version: z.number().int(),
2161
+ snapshot: MonitorDto,
2162
+ changedById: z.number().int().nullish(),
2163
+ changedVia: z.enum(["API", "DASHBOARD", "CLI", "TERRAFORM"]),
2164
+ changeSummary: z.string().nullish(),
2165
+ createdAt: z.string().datetime({ offset: true }),
2166
+ })
2167
+ .strict();
2168
+ const NotificationDispatchDto = z
2169
+ .object({
2170
+ id: z.string().uuid(),
2171
+ incidentId: z.string().uuid(),
2172
+ policyId: z.string().uuid(),
2173
+ policyName: z.string().nullish(),
2174
+ status: z.enum([
2175
+ "PENDING",
2176
+ "DISPATCHING",
2177
+ "DELIVERED",
2178
+ "ESCALATING",
2179
+ "ACKNOWLEDGED",
2180
+ "COMPLETED",
2181
+ ]),
2182
+ completionReason: z.enum(["EXHAUSTED", "RESOLVED", "NO_STEPS"]).nullish(),
2183
+ currentStep: z.number().int(),
2184
+ totalSteps: z.number().int().nullish(),
2185
+ acknowledgedAt: z.string().datetime({ offset: true }).nullish(),
2186
+ nextEscalationAt: z.string().datetime({ offset: true }).nullish(),
2187
+ lastNotifiedAt: z.string().datetime({ offset: true }).nullish(),
2188
+ deliveries: z.array(AlertDeliveryDto),
2189
+ createdAt: z.string().datetime({ offset: true }),
2190
+ updatedAt: z.string().datetime({ offset: true }),
2191
+ })
2192
+ .strict();
2193
+ const NotificationDto = z
2194
+ .object({
2195
+ id: z.number().int(),
2196
+ type: z.string(),
2197
+ title: z.string(),
2198
+ body: z.string().nullish(),
2199
+ resourceType: z.string().nullish(),
2200
+ resourceId: z.string().nullish(),
2201
+ read: z.boolean(),
2202
+ createdAt: z.string().datetime({ offset: true }),
2203
+ })
2204
+ .strict();
2205
+ const NotificationPolicyDto = z
2206
+ .object({
2207
+ id: z.string().uuid(),
2208
+ organizationId: z.number().int(),
2209
+ name: z.string().min(1),
2210
+ matchRules: z.array(MatchRule),
2211
+ escalation: EscalationChain,
2212
+ enabled: z.boolean(),
2213
+ priority: z.number().int(),
2214
+ createdAt: z.string().datetime({ offset: true }),
2215
+ updatedAt: z.string().datetime({ offset: true }),
2216
+ })
2217
+ .strict();
2218
+ const OrganizationDto = z
2219
+ .object({
2220
+ id: z.number().int(),
2221
+ name: z.string(),
2222
+ email: z.string().nullable(),
2223
+ size: z.string().nullish(),
2224
+ industry: z.string().nullish(),
2225
+ websiteUrl: z.string().nullish(),
2226
+ })
2227
+ .strict();
2228
+ const Pageable = z
2229
+ .object({
2230
+ page: z.number().int().gte(0),
2231
+ size: z.number().int().gte(1),
2232
+ sort: z.array(z.string()),
2233
+ })
2234
+ .strict();
2235
+ const PollChartBucketDto = z
2236
+ .object({
2237
+ bucket: z.string().datetime({ offset: true }),
2238
+ uptimePercent: z.number().nullish(),
2239
+ avgResponseTimeMs: z.number().nullish(),
2240
+ totalPolls: z.number().int(),
2241
+ })
2242
+ .strict();
2243
+ const RegionStatusDto = z
2244
+ .object({
2245
+ region: z.string(),
2246
+ passed: z.boolean(),
2247
+ responseTimeMs: z.number().int().nullish(),
2248
+ timestamp: z.string().datetime({ offset: true }),
2249
+ severityHint: z.string().nullish(),
2250
+ })
2251
+ .strict();
2252
+ const ResourceGroupHealthDto = z
2253
+ .object({
2254
+ status: z.enum(["operational", "maintenance", "degraded", "down"]),
2255
+ totalMembers: z.number().int(),
2256
+ operationalCount: z.number().int(),
2257
+ activeIncidents: z.number().int(),
2258
+ thresholdStatus: z.enum(["healthy", "degraded", "down"]).nullish(),
2259
+ failingCount: z.number().int().nullish(),
2260
+ })
2261
+ .strict();
2262
+ const ResourceGroupMemberDto = z
2263
+ .object({
2264
+ id: z.string().uuid(),
2265
+ groupId: z.string().uuid(),
2266
+ memberType: z.string(),
2267
+ monitorId: z.string().uuid().nullish(),
2268
+ serviceId: z.string().uuid().nullish(),
2269
+ name: z.string().nullish(),
2270
+ slug: z.string().nullish(),
2271
+ subscriptionId: z.string().uuid().nullish(),
2272
+ status: z.enum(["operational", "maintenance", "degraded", "down"]),
2273
+ effectiveFrequency: z.string().nullish(),
2274
+ createdAt: z.string().datetime({ offset: true }),
2275
+ uptime24h: z.number().nullish(),
2276
+ chartData: z.array(z.number()).nullish(),
2277
+ avgLatencyMs: z.number().nullish(),
2278
+ p95LatencyMs: z.number().nullish(),
2279
+ lastCheckedAt: z.string().datetime({ offset: true }).nullish(),
2280
+ monitorType: z.string().nullish(),
2281
+ environmentName: z.string().nullish(),
2282
+ })
2283
+ .strict();
2284
+ const ResourceGroupDto = z
2285
+ .object({
2286
+ id: z.string().uuid(),
2287
+ organizationId: z.number().int(),
2288
+ name: z.string().min(1),
2289
+ slug: z.string().min(1),
2290
+ description: z.string().nullish(),
2291
+ alertPolicyId: z.string().uuid().nullish(),
2292
+ defaultFrequency: z.number().int().nullish(),
2293
+ defaultRegions: z.array(z.string()).nullish(),
2294
+ defaultRetryStrategy: RetryStrategy.nullish(),
2295
+ defaultAlertChannels: z.array(z.string().uuid()).nullish(),
2296
+ defaultEnvironmentId: z.string().uuid().nullish(),
2297
+ healthThresholdType: z.enum(["COUNT", "PERCENTAGE"]).nullish(),
2298
+ healthThresholdValue: z.number().nullish(),
2299
+ suppressMemberAlerts: z.boolean(),
2300
+ confirmationDelaySeconds: z.number().int().nullish(),
2301
+ recoveryCooldownMinutes: z.number().int().nullish(),
2302
+ health: ResourceGroupHealthDto,
2303
+ members: z.array(ResourceGroupMemberDto).nullish(),
2304
+ createdAt: z.string().datetime({ offset: true }),
2305
+ updatedAt: z.string().datetime({ offset: true }),
2306
+ })
2307
+ .strict();
2308
+ const ResultSummaryDto = z
2309
+ .object({
2310
+ currentStatus: z.enum(["up", "degraded", "down", "unknown"]),
2311
+ latestPerRegion: z.array(RegionStatusDto),
2312
+ chartData: z.array(ChartBucketDto),
2313
+ uptime24h: z.number().nullish(),
2314
+ uptimeWindow: z.number().nullish(),
2315
+ })
2316
+ .strict();
2317
+ const ScheduledMaintenanceDto = z
2318
+ .object({
2319
+ id: z.string().uuid(),
2320
+ externalId: z.string(),
2321
+ title: z.string(),
2322
+ status: z.string(),
2323
+ impact: z.string().nullish(),
2324
+ shortlink: z.string().nullish(),
2325
+ scheduledFor: z.string().datetime({ offset: true }).nullish(),
2326
+ scheduledUntil: z.string().datetime({ offset: true }).nullish(),
2327
+ startedAt: z.string().datetime({ offset: true }).nullish(),
2328
+ completedAt: z.string().datetime({ offset: true }).nullish(),
2329
+ affectedComponents: z.array(MaintenanceComponentRef),
2330
+ updates: z.array(MaintenanceUpdateDto),
2331
+ })
2332
+ .strict();
2333
+ const SecretDto = z
2334
+ .object({
2335
+ id: z.string().uuid(),
2336
+ key: z.string(),
2337
+ dekVersion: z.number().int(),
2338
+ valueHash: z.string(),
2339
+ createdAt: z.string().datetime({ offset: true }),
2340
+ updatedAt: z.string().datetime({ offset: true }),
2341
+ usedByMonitors: z.array(MonitorReference).nullish(),
2342
+ })
2343
+ .strict();
2344
+ const SeoMetadataDto = z
2345
+ .object({
2346
+ shortDescription: z.string().nullable(),
2347
+ description: z.string().nullable(),
2348
+ about: z.string().nullable(),
2349
+ })
2350
+ .partial()
2351
+ .strict();
2352
+ const ServiceComponentDto = z
2353
+ .object({
2354
+ id: z.string().uuid(),
2355
+ externalId: z.string(),
2356
+ name: z.string(),
2357
+ status: z.string(),
2358
+ description: z.string().nullish(),
2359
+ groupId: z.string().uuid().nullish(),
2360
+ position: z.number().int().nullish(),
2361
+ showcase: z.boolean(),
2362
+ onlyShowIfDegraded: z.boolean(),
2363
+ startDate: z.string().datetime({ offset: true }).nullish(),
2364
+ vendorCreatedAt: z.string().datetime({ offset: true }).nullish(),
2365
+ lifecycleStatus: z.string(),
2366
+ dataType: z.string(),
2367
+ hasUptime: z.boolean(),
2368
+ region: z.string().nullish(),
2369
+ groupName: z.string().nullish(),
2370
+ displayAggregatedUptime: z.boolean(),
2371
+ childCount: z.number().int().nullish(),
2372
+ uptime: ComponentUptimeSummaryDto.nullish(),
2373
+ statusChangedAt: z.string().datetime({ offset: true }).nullish(),
2374
+ firstSeenAt: z.string().datetime({ offset: true }),
2375
+ lastSeenAt: z.string().datetime({ offset: true }),
2376
+ isGroup: z.boolean(),
2377
+ })
2378
+ .strict();
2379
+ const ServiceDayDetailDto = z
2380
+ .object({
2381
+ date: z.string(),
2382
+ overallUptimePercentage: z.number().nullish(),
2383
+ totalPartialOutageSeconds: z.number().int(),
2384
+ totalMajorOutageSeconds: z.number().int(),
2385
+ totalDegradedSeconds: z.number().int(),
2386
+ components: z.array(ComponentImpact),
2387
+ incidents: z.array(DayIncident),
2388
+ })
2389
+ .strict();
2390
+ const ServiceStatusDto = z
2391
+ .object({
2392
+ overallStatus: z.string(),
2393
+ lastPolledAt: z.string().datetime({ offset: true }).nullish(),
2394
+ })
2395
+ .strict();
2396
+ const ServiceIncidentDto = z
2397
+ .object({
2398
+ id: z.string().uuid(),
2399
+ serviceId: z.string().uuid(),
2400
+ serviceSlug: z.string().nullish(),
2401
+ serviceName: z.string().nullish(),
2402
+ externalId: z.string().nullish(),
2403
+ title: z.string(),
2404
+ status: z.string(),
2405
+ impact: z.string().nullish(),
2406
+ startedAt: z.string().datetime({ offset: true }).nullish(),
2407
+ resolvedAt: z.string().datetime({ offset: true }).nullish(),
2408
+ updatedAt: z.string().datetime({ offset: true }).nullish(),
2409
+ shortlink: z.string().nullish(),
2410
+ detectedAt: z.string().datetime({ offset: true }).nullish(),
2411
+ vendorCreatedAt: z.string().datetime({ offset: true }).nullish(),
2412
+ })
2413
+ .strict();
2414
+ const ServiceDetailDto = z
2415
+ .object({
2416
+ id: z.string().uuid(),
2417
+ slug: z.string(),
2418
+ name: z.string(),
2419
+ category: z.string().nullish(),
2420
+ officialStatusUrl: z.string().nullish(),
2421
+ developerContext: z.string().nullish(),
2422
+ logoUrl: z.string().nullish(),
2423
+ adapterType: z.string(),
2424
+ pollingIntervalSeconds: z.number().int(),
2425
+ enabled: z.boolean(),
2426
+ createdAt: z.string().datetime({ offset: true }),
2427
+ updatedAt: z.string().datetime({ offset: true }),
2428
+ currentStatus: ServiceStatusDto.nullish(),
2429
+ recentIncidents: z.array(ServiceIncidentDto),
2430
+ components: z.array(ServiceComponentDto),
2431
+ componentsSummary: ComponentsSummaryDto.nullish(),
2432
+ uptime: ComponentUptimeSummaryDto.nullish(),
2433
+ activeMaintenances: z.array(ScheduledMaintenanceDto),
2434
+ dataCompleteness: z.string(),
2435
+ seoMetadata: SeoMetadataDto.nullish(),
2436
+ relatedServices: z.array(ServiceCatalogDto).nullish(),
2437
+ })
2438
+ .strict();
2439
+ const ServiceIncidentUpdateDto = z
2440
+ .object({
2441
+ status: z.string(),
2442
+ body: z.string().nullish(),
2443
+ displayAt: z.string().datetime({ offset: true }).nullish(),
2444
+ })
2445
+ .strict();
2446
+ const ServiceIncidentDetailDto = z
2447
+ .object({
2448
+ id: z.string().uuid(),
2449
+ title: z.string(),
2450
+ status: z.string(),
2451
+ impact: z.string().nullish(),
2452
+ startedAt: z.string().datetime({ offset: true }).nullish(),
2453
+ resolvedAt: z.string().datetime({ offset: true }).nullish(),
2454
+ detectedAt: z.string().datetime({ offset: true }).nullish(),
2455
+ shortlink: z.string().nullish(),
2456
+ affectedComponents: z.array(z.string()).nullish(),
2457
+ updates: z.array(ServiceIncidentUpdateDto),
2458
+ })
2459
+ .strict();
2460
+ const ServiceLiveStatusDto = z
2461
+ .object({
2462
+ overallStatus: z.string().nullish(),
2463
+ componentStatuses: z.array(ComponentStatusDto),
2464
+ activeIncidentCount: z.number().int(),
2465
+ lastPolledAt: z.string().nullish(),
2466
+ })
2467
+ .strict();
2468
+ const ServicePollSummaryDto = z
2469
+ .object({
2470
+ uptimePercentage: z.number().nullish(),
2471
+ totalPolls: z.number().int(),
2472
+ passedPolls: z.number().int(),
2473
+ avgResponseTimeMs: z.number().nullish(),
2474
+ p95ResponseTimeMs: z.number().nullish(),
2475
+ window: z.string(),
2476
+ chartData: z.array(PollChartBucketDto),
2477
+ })
2478
+ .strict();
2479
+ const ServiceSubscriptionDto = z
2480
+ .object({
2481
+ subscriptionId: z.string().uuid(),
2482
+ serviceId: z.string().uuid(),
2483
+ slug: z.string().min(1),
2484
+ name: z.string().min(1),
2485
+ category: z.string().nullish(),
2486
+ officialStatusUrl: z.string().nullish(),
2487
+ adapterType: z.string().min(1),
2488
+ pollingIntervalSeconds: z.number().int(),
2489
+ enabled: z.boolean(),
2490
+ logoUrl: z.string().nullish(),
2491
+ overallStatus: z.string().nullish(),
2492
+ componentId: z.string().uuid().nullish(),
2493
+ component: ServiceComponentDto.nullish(),
2494
+ alertSensitivity: z.enum(["ALL", "INCIDENTS_ONLY", "MAJOR_ONLY"]),
2495
+ subscribedAt: z.string().datetime({ offset: true }),
2496
+ })
2497
+ .strict();
2498
+ const UptimeBucketDto = z
2499
+ .object({
2500
+ timestamp: z.string().datetime({ offset: true }),
2501
+ uptimePct: z.number().nullish(),
2502
+ totalPolls: z.number().int(),
2503
+ })
2504
+ .strict();
2505
+ const ServiceUptimeResponse = z
2506
+ .object({
2507
+ overallUptimePct: z.number().nullish(),
2508
+ period: z.string(),
2509
+ granularity: z.string(),
2510
+ buckets: z.array(UptimeBucketDto),
2511
+ source: z.string().nullish(),
2512
+ })
2513
+ .strict();
2514
+ const SingleValueResponseAlertChannelDto = z
2515
+ .object({ data: AlertChannelDto })
2516
+ .strict();
2517
+ const SingleValueResponseAlertDeliveryDto = z
2518
+ .object({ data: AlertDeliveryDto })
2519
+ .strict();
2520
+ const SingleValueResponseApiKeyCreateResponse = z
2521
+ .object({ data: ApiKeyCreateResponse })
2522
+ .strict();
2523
+ const SingleValueResponseApiKeyDto = z.object({ data: ApiKeyDto }).strict();
2524
+ const SingleValueResponseAuthMeResponse = z
2525
+ .object({ data: AuthMeResponse })
2526
+ .strict();
2527
+ const SingleValueResponseBatchComponentUptimeDto = z
2528
+ .object({ data: BatchComponentUptimeDto })
2529
+ .strict();
2530
+ const SingleValueResponseBulkMonitorActionResult = z
2531
+ .object({ data: BulkMonitorActionResult })
2532
+ .strict();
2533
+ const SingleValueResponseDashboardOverviewDto = z
2534
+ .object({ data: DashboardOverviewDto })
2535
+ .strict();
2536
+ const SingleValueResponseDekRotationResultDto = z
2537
+ .object({ data: DekRotationResultDto })
2538
+ .strict();
2539
+ const SingleValueResponseDeployLockDto = z
2540
+ .object({ data: DeployLockDto })
2541
+ .strict();
2542
+ const SingleValueResponseEnvironmentDto = z
2543
+ .object({ data: EnvironmentDto })
2544
+ .strict();
2545
+ const SingleValueResponseGlobalStatusSummaryDto = z
2546
+ .object({ data: GlobalStatusSummaryDto })
2547
+ .strict();
2548
+ const SingleValueResponseIncidentDetailDto = z
2549
+ .object({ data: IncidentDetailDto })
2550
+ .strict();
2551
+ const SingleValueResponseIncidentPolicyDto = z
2552
+ .object({ data: IncidentPolicyDto })
2553
+ .strict();
2554
+ const SingleValueResponseInviteDto = z.object({ data: InviteDto }).strict();
2555
+ const SingleValueResponseListUUID = z
2556
+ .object({ data: z.array(z.string().uuid()) })
2557
+ .strict();
2558
+ const SingleValueResponseLong = z.object({ data: z.number().int() }).strict();
2559
+ const SingleValueResponseMaintenanceWindowDto = z
2560
+ .object({ data: MaintenanceWindowDto })
2561
+ .strict();
2562
+ const SingleValueResponseMonitorAssertionDto = z
2563
+ .object({ data: MonitorAssertionDto })
2564
+ .strict();
2565
+ const SingleValueResponseMonitorAuthDto = z
2566
+ .object({ data: MonitorAuthDto })
2567
+ .strict();
2568
+ const SingleValueResponseMonitorDto = z.object({ data: MonitorDto }).strict();
2569
+ const SingleValueResponseMonitorTestResultDto = z
2570
+ .object({ data: MonitorTestResultDto })
2571
+ .strict();
2572
+ const SingleValueResponseMonitorVersionDto = z
2573
+ .object({ data: MonitorVersionDto })
2574
+ .strict();
2575
+ const SingleValueResponseNotificationDispatchDto = z
2576
+ .object({ data: NotificationDispatchDto })
2577
+ .strict();
2578
+ const SingleValueResponseNotificationPolicyDto = z
2579
+ .object({ data: NotificationPolicyDto })
2580
+ .strict();
2581
+ const SingleValueResponseOrganizationDto = z
2582
+ .object({ data: OrganizationDto })
2583
+ .strict();
2584
+ const SingleValueResponseResourceGroupDto = z
2585
+ .object({ data: ResourceGroupDto })
2586
+ .strict();
2587
+ const SingleValueResponseResourceGroupHealthDto = z
2588
+ .object({ data: ResourceGroupHealthDto })
2589
+ .strict();
2590
+ const SingleValueResponseResourceGroupMemberDto = z
2591
+ .object({ data: ResourceGroupMemberDto })
2592
+ .strict();
2593
+ const SingleValueResponseResultSummaryDto = z
2594
+ .object({ data: ResultSummaryDto })
2595
+ .strict();
2596
+ const SingleValueResponseSecretDto = z.object({ data: SecretDto }).strict();
2597
+ const SingleValueResponseServiceDayDetailDto = z
2598
+ .object({ data: ServiceDayDetailDto })
2599
+ .strict();
2600
+ const SingleValueResponseServiceDetailDto = z
2601
+ .object({ data: ServiceDetailDto })
2602
+ .strict();
2603
+ const SingleValueResponseServiceIncidentDetailDto = z
2604
+ .object({ data: ServiceIncidentDetailDto })
2605
+ .strict();
2606
+ const SingleValueResponseServiceLiveStatusDto = z
2607
+ .object({ data: ServiceLiveStatusDto })
2608
+ .strict();
2609
+ const SingleValueResponseServicePollSummaryDto = z
2610
+ .object({ data: ServicePollSummaryDto })
2611
+ .strict();
2612
+ const SingleValueResponseServiceSubscriptionDto = z
2613
+ .object({ data: ServiceSubscriptionDto })
2614
+ .strict();
2615
+ const SingleValueResponseServiceUptimeResponse = z
2616
+ .object({ data: ServiceUptimeResponse })
2617
+ .strict();
2618
+ const StatusPageComponentDto = z
2619
+ .object({
2620
+ id: z.string().uuid(),
2621
+ statusPageId: z.string().uuid(),
2622
+ groupId: z.string().uuid().nullish(),
2623
+ name: z.string().min(1),
2624
+ description: z.string().nullish(),
2625
+ type: z.enum(["MONITOR", "GROUP", "STATIC"]),
2626
+ monitorId: z.string().uuid().nullish(),
2627
+ resourceGroupId: z.string().uuid().nullish(),
2628
+ currentStatus: z.enum([
2629
+ "OPERATIONAL",
2630
+ "DEGRADED_PERFORMANCE",
2631
+ "PARTIAL_OUTAGE",
2632
+ "MAJOR_OUTAGE",
2633
+ "UNDER_MAINTENANCE",
2634
+ ]),
2635
+ showUptime: z.boolean(),
2636
+ displayOrder: z.number().int(),
2637
+ pageOrder: z.number().int(),
2638
+ excludeFromOverall: z.boolean(),
2639
+ startDate: z.string().datetime({ offset: true }).nullish(),
2640
+ createdAt: z.string().datetime({ offset: true }),
2641
+ updatedAt: z.string().datetime({ offset: true }),
2642
+ })
2643
+ .strict();
2644
+ const SingleValueResponseStatusPageComponentDto = z
2645
+ .object({ data: StatusPageComponentDto })
2646
+ .strict();
2647
+ const StatusPageComponentGroupDto = z
2648
+ .object({
2649
+ id: z.string().uuid(),
2650
+ statusPageId: z.string().uuid(),
2651
+ name: z.string(),
2652
+ description: z.string().nullish(),
2653
+ displayOrder: z.number().int(),
2654
+ pageOrder: z.number().int(),
2655
+ collapsed: z.boolean(),
2656
+ components: z.array(StatusPageComponentDto).nullish(),
2657
+ createdAt: z.string().datetime({ offset: true }),
2658
+ updatedAt: z.string().datetime({ offset: true }),
2659
+ })
2660
+ .strict();
2661
+ const SingleValueResponseStatusPageComponentGroupDto = z
2662
+ .object({ data: StatusPageComponentGroupDto })
2663
+ .strict();
2664
+ const StatusPageCustomDomainDto = z
2665
+ .object({
2666
+ id: z.string().uuid(),
2667
+ hostname: z.string(),
2668
+ status: z.enum([
2669
+ "PENDING_VERIFICATION",
2670
+ "VERIFICATION_FAILED",
2671
+ "VERIFIED",
2672
+ "SSL_PENDING",
2673
+ "ACTIVE",
2674
+ "FAILED",
2675
+ "REMOVED",
2676
+ ]),
2677
+ verificationMethod: z.enum(["CNAME", "TXT"]),
2678
+ verificationToken: z.string(),
2679
+ verificationCnameTarget: z.string(),
2680
+ verifiedAt: z.string().datetime({ offset: true }).nullish(),
2681
+ verificationError: z.string().nullish(),
2682
+ createdAt: z.string().datetime({ offset: true }),
2683
+ updatedAt: z.string().datetime({ offset: true }),
2684
+ primary: z.boolean(),
2685
+ })
2686
+ .strict();
2687
+ const SingleValueResponseStatusPageCustomDomainDto = z
2688
+ .object({ data: StatusPageCustomDomainDto })
2689
+ .strict();
2690
+ const StatusPageDto = z
2691
+ .object({
2692
+ id: z.string().uuid(),
2693
+ organizationId: z.number().int(),
2694
+ workspaceId: z.number().int(),
2695
+ name: z.string().min(1),
2696
+ slug: z.string().min(1),
2697
+ description: z.string().nullish(),
2698
+ branding: StatusPageBranding,
2699
+ visibility: z.enum(["PUBLIC", "PASSWORD", "IP_RESTRICTED"]),
2700
+ enabled: z.boolean(),
2701
+ incidentMode: z.enum(["MANUAL", "REVIEW", "AUTOMATIC"]),
2702
+ componentCount: z.number().int().nullish(),
2703
+ subscriberCount: z.number().int().nullish(),
2704
+ overallStatus: z
2705
+ .enum([
2706
+ "OPERATIONAL",
2707
+ "DEGRADED_PERFORMANCE",
2708
+ "PARTIAL_OUTAGE",
2709
+ "MAJOR_OUTAGE",
2710
+ "UNDER_MAINTENANCE",
2711
+ ])
2712
+ .nullish(),
2713
+ createdAt: z.string().datetime({ offset: true }),
2714
+ updatedAt: z.string().datetime({ offset: true }),
2715
+ })
2716
+ .strict();
2717
+ const SingleValueResponseStatusPageDto = z
2718
+ .object({ data: StatusPageDto })
2719
+ .strict();
2720
+ const StatusPageIncidentComponentDto = z
2721
+ .object({
2722
+ statusPageComponentId: z.string().uuid(),
2723
+ componentStatus: z.enum([
2724
+ "OPERATIONAL",
2725
+ "DEGRADED_PERFORMANCE",
2726
+ "PARTIAL_OUTAGE",
2727
+ "MAJOR_OUTAGE",
2728
+ "UNDER_MAINTENANCE",
2729
+ ]),
2730
+ componentName: z.string(),
2731
+ })
2732
+ .strict();
2733
+ const StatusPageIncidentUpdateDto = z
2734
+ .object({
2735
+ id: z.string().uuid(),
2736
+ status: z.enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"]),
2737
+ body: z.string(),
2738
+ createdBy: z.enum(["USER", "SYSTEM"]).nullish(),
2739
+ createdByUserId: z.number().int().nullish(),
2740
+ notifySubscribers: z.boolean(),
2741
+ createdAt: z.string().datetime({ offset: true }),
2742
+ })
2743
+ .strict();
2744
+ const StatusPageIncidentDto = z
2745
+ .object({
2746
+ id: z.string().uuid(),
2747
+ statusPageId: z.string().uuid(),
2748
+ title: z.string().min(1),
2749
+ status: z.enum(["INVESTIGATING", "IDENTIFIED", "MONITORING", "RESOLVED"]),
2750
+ impact: z.enum(["NONE", "MINOR", "MAJOR", "CRITICAL"]),
2751
+ scheduled: z.boolean(),
2752
+ scheduledFor: z.string().datetime({ offset: true }).nullish(),
2753
+ scheduledUntil: z.string().datetime({ offset: true }).nullish(),
2754
+ autoResolve: z.boolean(),
2755
+ incidentId: z.string().uuid().nullish(),
2756
+ startedAt: z.string().datetime({ offset: true }),
2757
+ publishedAt: z.string().datetime({ offset: true }).nullish(),
2758
+ resolvedAt: z.string().datetime({ offset: true }).nullish(),
2759
+ createdByUserId: z.number().int().nullish(),
2760
+ postmortemBody: z.string().nullish(),
2761
+ postmortemUrl: z.string().nullish(),
2762
+ affectedComponents: z.array(StatusPageIncidentComponentDto).nullish(),
2763
+ updates: z.array(StatusPageIncidentUpdateDto).nullish(),
2764
+ createdAt: z.string().datetime({ offset: true }),
2765
+ updatedAt: z.string().datetime({ offset: true }),
2766
+ })
2767
+ .strict();
2768
+ const SingleValueResponseStatusPageIncidentDto = z
2769
+ .object({ data: StatusPageIncidentDto })
2770
+ .strict();
2771
+ const StatusPageSubscriberDto = z
2772
+ .object({
2773
+ id: z.string().uuid(),
2774
+ email: z.string(),
2775
+ confirmed: z.boolean(),
2776
+ createdAt: z.string().datetime({ offset: true }),
2777
+ })
2778
+ .strict();
2779
+ const SingleValueResponseStatusPageSubscriberDto = z
2780
+ .object({ data: StatusPageSubscriberDto })
2781
+ .strict();
2782
+ const SingleValueResponseString = z.object({ data: z.string() }).strict();
2783
+ const SingleValueResponseTagDto = z.object({ data: TagDto }).strict();
2784
+ const TestChannelResult = z
2785
+ .object({ success: z.boolean(), message: z.string() })
2786
+ .strict();
2787
+ const SingleValueResponseTestChannelResult = z
2788
+ .object({ data: TestChannelResult })
2789
+ .strict();
2790
+ const TestMatchResult = z
2791
+ .object({
2792
+ matched: z.boolean(),
2793
+ matchedRules: z.array(z.string()),
2794
+ unmatchedRules: z.array(z.string()),
2795
+ })
2796
+ .strict();
2797
+ const SingleValueResponseTestMatchResult = z
2798
+ .object({ data: TestMatchResult })
2799
+ .strict();
2800
+ const UptimeDto = z
2801
+ .object({
2802
+ uptimePercentage: z.number().nullish(),
2803
+ totalChecks: z.number().int(),
2804
+ passedChecks: z.number().int(),
2805
+ avgLatencyMs: z.number().nullish(),
2806
+ p95LatencyMs: z.number().nullish(),
2807
+ })
2808
+ .strict();
2809
+ const SingleValueResponseUptimeDto = z.object({ data: UptimeDto }).strict();
2810
+ const WebhookEndpointDto = z
2811
+ .object({
2812
+ id: z.string().uuid(),
2813
+ url: z.string(),
2814
+ description: z.string().nullish(),
2815
+ subscribedEvents: z.array(z.string()),
2816
+ enabled: z.boolean(),
2817
+ consecutiveFailures: z.number().int(),
2818
+ disabledReason: z.string().nullish(),
2819
+ disabledAt: z.string().datetime({ offset: true }).nullish(),
2820
+ createdAt: z.string().datetime({ offset: true }),
2821
+ updatedAt: z.string().datetime({ offset: true }),
2822
+ })
2823
+ .strict();
2824
+ const SingleValueResponseWebhookEndpointDto = z
2825
+ .object({ data: WebhookEndpointDto })
2826
+ .strict();
2827
+ const WebhookSigningSecretDto = z
2828
+ .object({ configured: z.boolean(), maskedSecret: z.string().nullish() })
2829
+ .strict();
2830
+ const SingleValueResponseWebhookSigningSecretDto = z
2831
+ .object({ data: WebhookSigningSecretDto })
2832
+ .strict();
2833
+ const WebhookTestResult = z
2834
+ .object({
2835
+ success: z.boolean(),
2836
+ statusCode: z.number().int().nullish(),
2837
+ message: z.string(),
2838
+ durationMs: z.number().int().nullish(),
2839
+ })
2840
+ .strict();
2841
+ const SingleValueResponseWebhookTestResult = z
2842
+ .object({ data: WebhookTestResult })
2843
+ .strict();
2844
+ const WorkspaceDto = z
2845
+ .object({
2846
+ id: z.number().int(),
2847
+ createdAt: z.string().datetime({ offset: true }),
2848
+ updatedAt: z.string().datetime({ offset: true }),
2849
+ name: z.string().min(1),
2850
+ orgId: z.number().int(),
2851
+ })
2852
+ .strict();
2853
+ const SingleValueResponseWorkspaceDto = z
2854
+ .object({ data: WorkspaceDto })
2855
+ .strict();
2856
+ const StatusPageComponentUptimeDayDto = z
2857
+ .object({
2858
+ date: z.string().datetime({ offset: true }),
2859
+ partialOutageSeconds: z.number().int(),
2860
+ majorOutageSeconds: z.number().int(),
2861
+ uptimePercentage: z.number(),
2862
+ incidents: z.array(IncidentRef).nullish(),
2863
+ })
2864
+ .strict();
2865
+ const TableValueResultAlertChannelDto = z
2866
+ .object({
2867
+ data: z.array(AlertChannelDto),
2868
+ hasNext: z.boolean(),
2869
+ hasPrev: z.boolean(),
2870
+ totalElements: z.number().int().nullish(),
2871
+ totalPages: z.number().int().nullish(),
2872
+ })
2873
+ .strict();
2874
+ const TableValueResultAlertDeliveryDto = z
2875
+ .object({
2876
+ data: z.array(AlertDeliveryDto),
2877
+ hasNext: z.boolean(),
2878
+ hasPrev: z.boolean(),
2879
+ totalElements: z.number().int().nullish(),
2880
+ totalPages: z.number().int().nullish(),
2881
+ })
2882
+ .strict();
2883
+ const TableValueResultApiKeyDto = z
2884
+ .object({
2885
+ data: z.array(ApiKeyDto),
2886
+ hasNext: z.boolean(),
2887
+ hasPrev: z.boolean(),
2888
+ totalElements: z.number().int().nullish(),
2889
+ totalPages: z.number().int().nullish(),
2890
+ })
2891
+ .strict();
2892
+ const TableValueResultAuditEventDto = z
2893
+ .object({
2894
+ data: z.array(AuditEventDto),
2895
+ hasNext: z.boolean(),
2896
+ hasPrev: z.boolean(),
2897
+ totalElements: z.number().int().nullish(),
2898
+ totalPages: z.number().int().nullish(),
2899
+ })
2900
+ .strict();
2901
+ const TableValueResultCategoryDto = z
2902
+ .object({
2903
+ data: z.array(CategoryDto),
2904
+ hasNext: z.boolean(),
2905
+ hasPrev: z.boolean(),
2906
+ totalElements: z.number().int().nullish(),
2907
+ totalPages: z.number().int().nullish(),
2908
+ })
2909
+ .strict();
2910
+ const TableValueResultComponentUptimeDayDto = z
2911
+ .object({
2912
+ data: z.array(ComponentUptimeDayDto),
2913
+ hasNext: z.boolean(),
2914
+ hasPrev: z.boolean(),
2915
+ totalElements: z.number().int().nullish(),
2916
+ totalPages: z.number().int().nullish(),
2917
+ })
2918
+ .strict();
2919
+ const TableValueResultDeliveryAttemptDto = z
2920
+ .object({
2921
+ data: z.array(DeliveryAttemptDto),
2922
+ hasNext: z.boolean(),
2923
+ hasPrev: z.boolean(),
2924
+ totalElements: z.number().int().nullish(),
2925
+ totalPages: z.number().int().nullish(),
2926
+ })
2927
+ .strict();
2928
+ const TableValueResultEnvironmentDto = z
2929
+ .object({
2930
+ data: z.array(EnvironmentDto),
2931
+ hasNext: z.boolean(),
2932
+ hasPrev: z.boolean(),
2933
+ totalElements: z.number().int().nullish(),
2934
+ totalPages: z.number().int().nullish(),
2935
+ })
2936
+ .strict();
2937
+ const TableValueResultIncidentDto = z
2938
+ .object({
2939
+ data: z.array(IncidentDto),
2940
+ hasNext: z.boolean(),
2941
+ hasPrev: z.boolean(),
2942
+ totalElements: z.number().int().nullish(),
2943
+ totalPages: z.number().int().nullish(),
2944
+ })
2945
+ .strict();
2946
+ const TableValueResultIntegrationDto = z
2947
+ .object({
2948
+ data: z.array(IntegrationDto),
2949
+ hasNext: z.boolean(),
2950
+ hasPrev: z.boolean(),
2951
+ totalElements: z.number().int().nullish(),
2952
+ totalPages: z.number().int().nullish(),
2953
+ })
2954
+ .strict();
2955
+ const TableValueResultInviteDto = z
2956
+ .object({
2957
+ data: z.array(InviteDto),
2958
+ hasNext: z.boolean(),
2959
+ hasPrev: z.boolean(),
2960
+ totalElements: z.number().int().nullish(),
2961
+ totalPages: z.number().int().nullish(),
2962
+ })
2963
+ .strict();
2964
+ const TableValueResultMaintenanceWindowDto = z
2965
+ .object({
2966
+ data: z.array(MaintenanceWindowDto),
2967
+ hasNext: z.boolean(),
2968
+ hasPrev: z.boolean(),
2969
+ totalElements: z.number().int().nullish(),
2970
+ totalPages: z.number().int().nullish(),
2971
+ })
2972
+ .strict();
2973
+ const TableValueResultMemberDto = z
2974
+ .object({
2975
+ data: z.array(MemberDto),
2976
+ hasNext: z.boolean(),
2977
+ hasPrev: z.boolean(),
2978
+ totalElements: z.number().int().nullish(),
2979
+ totalPages: z.number().int().nullish(),
2980
+ })
2981
+ .strict();
2982
+ const TableValueResultMonitorDto = z
2983
+ .object({
2984
+ data: z.array(MonitorDto),
2985
+ hasNext: z.boolean(),
2986
+ hasPrev: z.boolean(),
2987
+ totalElements: z.number().int().nullish(),
2988
+ totalPages: z.number().int().nullish(),
2989
+ })
2990
+ .strict();
2991
+ const TableValueResultMonitorVersionDto = z
2992
+ .object({
2993
+ data: z.array(MonitorVersionDto),
2994
+ hasNext: z.boolean(),
2995
+ hasPrev: z.boolean(),
2996
+ totalElements: z.number().int().nullish(),
2997
+ totalPages: z.number().int().nullish(),
2998
+ })
2999
+ .strict();
3000
+ const TableValueResultNotificationDispatchDto = z
3001
+ .object({
3002
+ data: z.array(NotificationDispatchDto),
3003
+ hasNext: z.boolean(),
3004
+ hasPrev: z.boolean(),
3005
+ totalElements: z.number().int().nullish(),
3006
+ totalPages: z.number().int().nullish(),
3007
+ })
3008
+ .strict();
3009
+ const TableValueResultNotificationDto = z
3010
+ .object({
3011
+ data: z.array(NotificationDto),
3012
+ hasNext: z.boolean(),
3013
+ hasPrev: z.boolean(),
3014
+ totalElements: z.number().int().nullish(),
3015
+ totalPages: z.number().int().nullish(),
3016
+ })
3017
+ .strict();
3018
+ const TableValueResultNotificationPolicyDto = z
3019
+ .object({
3020
+ data: z.array(NotificationPolicyDto),
3021
+ hasNext: z.boolean(),
3022
+ hasPrev: z.boolean(),
3023
+ totalElements: z.number().int().nullish(),
3024
+ totalPages: z.number().int().nullish(),
3025
+ })
3026
+ .strict();
3027
+ const TableValueResultResourceGroupDto = z
3028
+ .object({
3029
+ data: z.array(ResourceGroupDto),
3030
+ hasNext: z.boolean(),
3031
+ hasPrev: z.boolean(),
3032
+ totalElements: z.number().int().nullish(),
3033
+ totalPages: z.number().int().nullish(),
3034
+ })
3035
+ .strict();
3036
+ const TableValueResultScheduledMaintenanceDto = z
3037
+ .object({
3038
+ data: z.array(ScheduledMaintenanceDto),
3039
+ hasNext: z.boolean(),
3040
+ hasPrev: z.boolean(),
3041
+ totalElements: z.number().int().nullish(),
3042
+ totalPages: z.number().int().nullish(),
3043
+ })
3044
+ .strict();
3045
+ const TableValueResultSecretDto = z
3046
+ .object({
3047
+ data: z.array(SecretDto),
3048
+ hasNext: z.boolean(),
3049
+ hasPrev: z.boolean(),
3050
+ totalElements: z.number().int().nullish(),
3051
+ totalPages: z.number().int().nullish(),
3052
+ })
3053
+ .strict();
3054
+ const TableValueResultServiceComponentDto = z
3055
+ .object({
3056
+ data: z.array(ServiceComponentDto),
3057
+ hasNext: z.boolean(),
3058
+ hasPrev: z.boolean(),
3059
+ totalElements: z.number().int().nullish(),
3060
+ totalPages: z.number().int().nullish(),
3061
+ })
3062
+ .strict();
3063
+ const TableValueResultServiceIncidentDto = z
3064
+ .object({
3065
+ data: z.array(ServiceIncidentDto),
3066
+ hasNext: z.boolean(),
3067
+ hasPrev: z.boolean(),
3068
+ totalElements: z.number().int().nullish(),
3069
+ totalPages: z.number().int().nullish(),
3070
+ })
3071
+ .strict();
3072
+ const TableValueResultServiceSubscriptionDto = z
3073
+ .object({
3074
+ data: z.array(ServiceSubscriptionDto),
3075
+ hasNext: z.boolean(),
3076
+ hasPrev: z.boolean(),
3077
+ totalElements: z.number().int().nullish(),
3078
+ totalPages: z.number().int().nullish(),
3079
+ })
3080
+ .strict();
3081
+ const TableValueResultStatusPageComponentDto = z
3082
+ .object({
3083
+ data: z.array(StatusPageComponentDto),
3084
+ hasNext: z.boolean(),
3085
+ hasPrev: z.boolean(),
3086
+ totalElements: z.number().int().nullish(),
3087
+ totalPages: z.number().int().nullish(),
3088
+ })
3089
+ .strict();
3090
+ const TableValueResultStatusPageComponentGroupDto = z
3091
+ .object({
3092
+ data: z.array(StatusPageComponentGroupDto),
3093
+ hasNext: z.boolean(),
3094
+ hasPrev: z.boolean(),
3095
+ totalElements: z.number().int().nullish(),
3096
+ totalPages: z.number().int().nullish(),
3097
+ })
3098
+ .strict();
3099
+ const TableValueResultStatusPageComponentUptimeDayDto = z
3100
+ .object({
3101
+ data: z.array(StatusPageComponentUptimeDayDto),
3102
+ hasNext: z.boolean(),
3103
+ hasPrev: z.boolean(),
3104
+ totalElements: z.number().int().nullish(),
3105
+ totalPages: z.number().int().nullish(),
3106
+ })
3107
+ .strict();
3108
+ const TableValueResultStatusPageCustomDomainDto = z
3109
+ .object({
3110
+ data: z.array(StatusPageCustomDomainDto),
3111
+ hasNext: z.boolean(),
3112
+ hasPrev: z.boolean(),
3113
+ totalElements: z.number().int().nullish(),
3114
+ totalPages: z.number().int().nullish(),
3115
+ })
3116
+ .strict();
3117
+ const TableValueResultStatusPageDto = z
3118
+ .object({
3119
+ data: z.array(StatusPageDto),
3120
+ hasNext: z.boolean(),
3121
+ hasPrev: z.boolean(),
3122
+ totalElements: z.number().int().nullish(),
3123
+ totalPages: z.number().int().nullish(),
3124
+ })
3125
+ .strict();
3126
+ const TableValueResultStatusPageIncidentDto = z
3127
+ .object({
3128
+ data: z.array(StatusPageIncidentDto),
3129
+ hasNext: z.boolean(),
3130
+ hasPrev: z.boolean(),
3131
+ totalElements: z.number().int().nullish(),
3132
+ totalPages: z.number().int().nullish(),
3133
+ })
3134
+ .strict();
3135
+ const TableValueResultStatusPageSubscriberDto = z
3136
+ .object({
3137
+ data: z.array(StatusPageSubscriberDto),
3138
+ hasNext: z.boolean(),
3139
+ hasPrev: z.boolean(),
3140
+ totalElements: z.number().int().nullish(),
3141
+ totalPages: z.number().int().nullish(),
3142
+ })
3143
+ .strict();
3144
+ const TableValueResultTagDto = z
3145
+ .object({
3146
+ data: z.array(TagDto),
3147
+ hasNext: z.boolean(),
3148
+ hasPrev: z.boolean(),
3149
+ totalElements: z.number().int().nullish(),
3150
+ totalPages: z.number().int().nullish(),
3151
+ })
3152
+ .strict();
3153
+ const WebhookDeliveryDto = z
3154
+ .object({
3155
+ id: z.string().uuid(),
3156
+ endpointId: z.string().uuid(),
3157
+ eventId: z.string(),
3158
+ eventType: z.string(),
3159
+ status: z.string(),
3160
+ attemptCount: z.number().int(),
3161
+ maxAttempts: z.number().int(),
3162
+ responseStatus: z.number().int().nullish(),
3163
+ responseLatencyMs: z.number().int().nullish(),
3164
+ errorMessage: z.string().nullish(),
3165
+ deliveredAt: z.string().datetime({ offset: true }).nullish(),
3166
+ failedAt: z.string().datetime({ offset: true }).nullish(),
3167
+ nextRetryAt: z.string().datetime({ offset: true }).nullish(),
3168
+ createdAt: z.string().datetime({ offset: true }),
3169
+ })
3170
+ .strict();
3171
+ const TableValueResultWebhookDeliveryDto = z
3172
+ .object({
3173
+ data: z.array(WebhookDeliveryDto),
3174
+ hasNext: z.boolean(),
3175
+ hasPrev: z.boolean(),
3176
+ totalElements: z.number().int().nullish(),
3177
+ totalPages: z.number().int().nullish(),
3178
+ })
3179
+ .strict();
3180
+ const TableValueResultWebhookEndpointDto = z
3181
+ .object({
3182
+ data: z.array(WebhookEndpointDto),
3183
+ hasNext: z.boolean(),
3184
+ hasPrev: z.boolean(),
3185
+ totalElements: z.number().int().nullish(),
3186
+ totalPages: z.number().int().nullish(),
3187
+ })
3188
+ .strict();
3189
+ const TableValueResultWorkspaceDto = z
3190
+ .object({
3191
+ data: z.array(WorkspaceDto),
3192
+ hasNext: z.boolean(),
3193
+ hasPrev: z.boolean(),
3194
+ totalElements: z.number().int().nullish(),
3195
+ totalPages: z.number().int().nullish(),
3196
+ })
3197
+ .strict();
3198
+ const WebhookEventCatalogEntry = z
3199
+ .object({ type: z.string(), surface: z.string(), description: z.string() })
3200
+ .strict();
3201
+ const WebhookEventCatalogResponse = z
3202
+ .object({ data: z.array(WebhookEventCatalogEntry) })
3203
+ .strict();
3204
+ export const schemas = {
3205
+ pageable,
3206
+ ErrorResponse,
3207
+ DiscordChannelConfig,
3208
+ EmailChannelConfig,
3209
+ OpsGenieChannelConfig,
3210
+ PagerDutyChannelConfig,
3211
+ SlackChannelConfig,
3212
+ TeamsChannelConfig,
3213
+ WebhookChannelConfig,
3214
+ CreateAlertChannelRequest,
3215
+ UpdateAlertChannelRequest,
3216
+ TestAlertChannelRequest,
3217
+ CreateApiKeyRequest,
3218
+ UpdateApiKeyRequest,
3219
+ AcquireDeployLockRequest,
3220
+ CreateEnvironmentRequest,
3221
+ UpdateEnvironmentRequest,
3222
+ params,
3223
+ CreateManualIncidentRequest,
3224
+ ResolveIncidentRequest,
3225
+ AddIncidentUpdateRequest,
3226
+ CreateInviteRequest,
3227
+ CreateMaintenanceWindowRequest,
3228
+ UpdateMaintenanceWindowRequest,
3229
+ ChangeRoleRequest,
3230
+ ChangeStatusRequest,
3231
+ DnsMonitorConfig,
3232
+ HeartbeatMonitorConfig,
3233
+ HttpMonitorConfig,
3234
+ IcmpMonitorConfig,
3235
+ McpServerMonitorConfig,
3236
+ TcpMonitorConfig,
3237
+ BodyContainsAssertion,
3238
+ DnsExpectedCnameAssertion,
3239
+ DnsExpectedIpsAssertion,
3240
+ DnsMaxAnswersAssertion,
3241
+ DnsMinAnswersAssertion,
3242
+ DnsRecordContainsAssertion,
3243
+ DnsRecordEqualsAssertion,
3244
+ DnsResolvesAssertion,
3245
+ DnsResponseTimeAssertion,
3246
+ DnsResponseTimeWarnAssertion,
3247
+ DnsTtlHighAssertion,
3248
+ DnsTtlLowAssertion,
3249
+ DnsTxtContainsAssertion,
3250
+ HeaderValueAssertion,
3251
+ HeartbeatIntervalDriftAssertion,
3252
+ HeartbeatMaxIntervalAssertion,
3253
+ HeartbeatPayloadContainsAssertion,
3254
+ HeartbeatReceivedAssertion,
3255
+ IcmpPacketLossAssertion,
3256
+ IcmpReachableAssertion,
3257
+ IcmpResponseTimeAssertion,
3258
+ IcmpResponseTimeWarnAssertion,
3259
+ JsonPathAssertion,
3260
+ McpConnectsAssertion,
3261
+ McpHasCapabilityAssertion,
3262
+ McpMinToolsAssertion,
3263
+ McpProtocolVersionAssertion,
3264
+ McpResponseTimeAssertion,
3265
+ McpResponseTimeWarnAssertion,
3266
+ McpToolAvailableAssertion,
3267
+ McpToolCountChangedAssertion,
3268
+ RedirectCountAssertion,
3269
+ RedirectTargetAssertion,
3270
+ RegexBodyAssertion,
3271
+ ResponseSizeAssertion,
3272
+ ResponseTimeAssertion,
3273
+ ResponseTimeWarnAssertion,
3274
+ SslExpiryAssertion,
3275
+ StatusCodeAssertion,
3276
+ TcpConnectsAssertion,
3277
+ TcpResponseTimeAssertion,
3278
+ TcpResponseTimeWarnAssertion,
3279
+ CreateAssertionRequest,
3280
+ BearerAuthConfig,
3281
+ BasicAuthConfig,
3282
+ HeaderAuthConfig,
3283
+ ApiKeyAuthConfig,
3284
+ MonitorAuthConfig,
3285
+ TriggerRule,
3286
+ ConfirmationPolicy,
3287
+ RecoveryPolicy,
3288
+ UpdateIncidentPolicyRequest,
3289
+ NewTagRequest,
3290
+ AddMonitorTagsRequest,
3291
+ CreateMonitorRequest,
3292
+ UpdateMonitorRequest,
3293
+ RemoveMonitorTagsRequest,
3294
+ SetAlertChannelsRequest,
3295
+ UpdateAssertionRequest,
3296
+ UpdateMonitorAuthRequest,
3297
+ SetMonitorAuthRequest,
3298
+ BulkMonitorActionRequest,
3299
+ MonitorTestRequest,
3300
+ MatchRule,
3301
+ EscalationStep,
3302
+ EscalationChain,
3303
+ CreateNotificationPolicyRequest,
3304
+ UpdateNotificationPolicyRequest,
3305
+ TestNotificationPolicyRequest,
3306
+ UpdateOrgDetailsRequest,
3307
+ RetryStrategy,
3308
+ CreateResourceGroupRequest,
3309
+ UpdateResourceGroupRequest,
3310
+ AddResourceGroupMemberRequest,
3311
+ CreateSecretRequest,
3312
+ UpdateSecretRequest,
3313
+ UpdateAlertSensitivityRequest,
3314
+ ServiceSubscribeRequest,
3315
+ StatusPageBranding,
3316
+ CreateStatusPageRequest,
3317
+ UpdateStatusPageRequest,
3318
+ CreateStatusPageComponentRequest,
3319
+ UpdateStatusPageComponentRequest,
3320
+ ComponentPosition,
3321
+ ReorderComponentsRequest,
3322
+ AddCustomDomainRequest,
3323
+ CreateStatusPageComponentGroupRequest,
3324
+ UpdateStatusPageComponentGroupRequest,
3325
+ AffectedComponent,
3326
+ CreateStatusPageIncidentRequest,
3327
+ UpdateStatusPageIncidentRequest,
3328
+ PublishStatusPageIncidentRequest,
3329
+ CreateStatusPageIncidentUpdateRequest,
3330
+ PageSection,
3331
+ GroupComponentOrder,
3332
+ ReorderPageLayoutRequest,
3333
+ AdminAddSubscriberRequest,
3334
+ CreateTagRequest,
3335
+ UpdateTagRequest,
3336
+ CreateWebhookEndpointRequest,
3337
+ UpdateWebhookEndpointRequest,
3338
+ TestWebhookEndpointRequest,
3339
+ CreateWorkspaceRequest,
3340
+ UpdateWorkspaceRequest,
3341
+ AlertChannelDisplayConfig,
3342
+ AlertChannelDto,
3343
+ AlertDeliveryDto,
3344
+ ApiKeyCreateResponse,
3345
+ ApiKeyDto,
3346
+ AssertionResultDto,
3347
+ AssertionTestResultDto,
3348
+ AuditEventDto,
3349
+ KeyInfo,
3350
+ OrgInfo,
3351
+ EntitlementDto,
3352
+ PlanInfo,
3353
+ RateLimitInfo,
3354
+ AuthMeResponse,
3355
+ ComponentUptimeDayDto,
3356
+ BatchComponentUptimeDto,
3357
+ FailureDetail,
3358
+ BulkMonitorActionResult,
3359
+ CategoryDto,
3360
+ ChartBucketDto,
3361
+ TlsInfoDto,
3362
+ Http,
3363
+ Tcp,
3364
+ Icmp,
3365
+ Dns,
3366
+ McpServer,
3367
+ CheckTypeDetailsDto,
3368
+ CheckResultDetailsDto,
3369
+ CheckResultDto,
3370
+ ComponentImpact,
3371
+ ComponentsSummaryDto,
3372
+ ComponentStatusDto,
3373
+ ComponentUptimeSummaryDto,
3374
+ CursorPageCheckResultDto,
3375
+ ServiceCatalogDto,
3376
+ CursorPageServiceCatalogDto,
3377
+ ServicePollResultDto,
3378
+ CursorPageServicePollResultDto,
3379
+ MonitorsSummaryDto,
3380
+ IncidentsSummaryDto,
3381
+ DashboardOverviewDto,
3382
+ DayIncident,
3383
+ DekRotationResultDto,
3384
+ DeleteChannelResult,
3385
+ DeliveryAttemptDto,
3386
+ DeployLockDto,
3387
+ EnvironmentDto,
3388
+ GlobalStatusSummaryDto,
3389
+ HeartbeatPingResponse,
3390
+ IncidentDto,
3391
+ IncidentUpdateDto,
3392
+ LinkedStatusPageIncidentDto,
3393
+ IncidentDetailDto,
3394
+ IncidentFilterParams,
3395
+ IncidentPolicyDto,
3396
+ IncidentRef,
3397
+ IntegrationFieldDto,
3398
+ IntegrationConfigSchemaDto,
3399
+ IntegrationDto,
3400
+ InviteDto,
3401
+ MaintenanceComponentRef,
3402
+ MaintenanceUpdateDto,
3403
+ MaintenanceWindowDto,
3404
+ MemberDto,
3405
+ MonitorAssertionDto,
3406
+ MonitorAuthDto,
3407
+ TagDto,
3408
+ Summary,
3409
+ MonitorDto,
3410
+ MonitorReference,
3411
+ MonitorTestResultDto,
3412
+ MonitorVersionDto,
3413
+ NotificationDispatchDto,
3414
+ NotificationDto,
3415
+ NotificationPolicyDto,
3416
+ OrganizationDto,
3417
+ Pageable,
3418
+ PollChartBucketDto,
3419
+ RegionStatusDto,
3420
+ ResourceGroupHealthDto,
3421
+ ResourceGroupMemberDto,
3422
+ ResourceGroupDto,
3423
+ ResultSummaryDto,
3424
+ ScheduledMaintenanceDto,
3425
+ SecretDto,
3426
+ SeoMetadataDto,
3427
+ ServiceComponentDto,
3428
+ ServiceDayDetailDto,
3429
+ ServiceStatusDto,
3430
+ ServiceIncidentDto,
3431
+ ServiceDetailDto,
3432
+ ServiceIncidentUpdateDto,
3433
+ ServiceIncidentDetailDto,
3434
+ ServiceLiveStatusDto,
3435
+ ServicePollSummaryDto,
3436
+ ServiceSubscriptionDto,
3437
+ UptimeBucketDto,
3438
+ ServiceUptimeResponse,
3439
+ SingleValueResponseAlertChannelDto,
3440
+ SingleValueResponseAlertDeliveryDto,
3441
+ SingleValueResponseApiKeyCreateResponse,
3442
+ SingleValueResponseApiKeyDto,
3443
+ SingleValueResponseAuthMeResponse,
3444
+ SingleValueResponseBatchComponentUptimeDto,
3445
+ SingleValueResponseBulkMonitorActionResult,
3446
+ SingleValueResponseDashboardOverviewDto,
3447
+ SingleValueResponseDekRotationResultDto,
3448
+ SingleValueResponseDeployLockDto,
3449
+ SingleValueResponseEnvironmentDto,
3450
+ SingleValueResponseGlobalStatusSummaryDto,
3451
+ SingleValueResponseIncidentDetailDto,
3452
+ SingleValueResponseIncidentPolicyDto,
3453
+ SingleValueResponseInviteDto,
3454
+ SingleValueResponseListUUID,
3455
+ SingleValueResponseLong,
3456
+ SingleValueResponseMaintenanceWindowDto,
3457
+ SingleValueResponseMonitorAssertionDto,
3458
+ SingleValueResponseMonitorAuthDto,
3459
+ SingleValueResponseMonitorDto,
3460
+ SingleValueResponseMonitorTestResultDto,
3461
+ SingleValueResponseMonitorVersionDto,
3462
+ SingleValueResponseNotificationDispatchDto,
3463
+ SingleValueResponseNotificationPolicyDto,
3464
+ SingleValueResponseOrganizationDto,
3465
+ SingleValueResponseResourceGroupDto,
3466
+ SingleValueResponseResourceGroupHealthDto,
3467
+ SingleValueResponseResourceGroupMemberDto,
3468
+ SingleValueResponseResultSummaryDto,
3469
+ SingleValueResponseSecretDto,
3470
+ SingleValueResponseServiceDayDetailDto,
3471
+ SingleValueResponseServiceDetailDto,
3472
+ SingleValueResponseServiceIncidentDetailDto,
3473
+ SingleValueResponseServiceLiveStatusDto,
3474
+ SingleValueResponseServicePollSummaryDto,
3475
+ SingleValueResponseServiceSubscriptionDto,
3476
+ SingleValueResponseServiceUptimeResponse,
3477
+ StatusPageComponentDto,
3478
+ SingleValueResponseStatusPageComponentDto,
3479
+ StatusPageComponentGroupDto,
3480
+ SingleValueResponseStatusPageComponentGroupDto,
3481
+ StatusPageCustomDomainDto,
3482
+ SingleValueResponseStatusPageCustomDomainDto,
3483
+ StatusPageDto,
3484
+ SingleValueResponseStatusPageDto,
3485
+ StatusPageIncidentComponentDto,
3486
+ StatusPageIncidentUpdateDto,
3487
+ StatusPageIncidentDto,
3488
+ SingleValueResponseStatusPageIncidentDto,
3489
+ StatusPageSubscriberDto,
3490
+ SingleValueResponseStatusPageSubscriberDto,
3491
+ SingleValueResponseString,
3492
+ SingleValueResponseTagDto,
3493
+ TestChannelResult,
3494
+ SingleValueResponseTestChannelResult,
3495
+ TestMatchResult,
3496
+ SingleValueResponseTestMatchResult,
3497
+ UptimeDto,
3498
+ SingleValueResponseUptimeDto,
3499
+ WebhookEndpointDto,
3500
+ SingleValueResponseWebhookEndpointDto,
3501
+ WebhookSigningSecretDto,
3502
+ SingleValueResponseWebhookSigningSecretDto,
3503
+ WebhookTestResult,
3504
+ SingleValueResponseWebhookTestResult,
3505
+ WorkspaceDto,
3506
+ SingleValueResponseWorkspaceDto,
3507
+ StatusPageComponentUptimeDayDto,
3508
+ TableValueResultAlertChannelDto,
3509
+ TableValueResultAlertDeliveryDto,
3510
+ TableValueResultApiKeyDto,
3511
+ TableValueResultAuditEventDto,
3512
+ TableValueResultCategoryDto,
3513
+ TableValueResultComponentUptimeDayDto,
3514
+ TableValueResultDeliveryAttemptDto,
3515
+ TableValueResultEnvironmentDto,
3516
+ TableValueResultIncidentDto,
3517
+ TableValueResultIntegrationDto,
3518
+ TableValueResultInviteDto,
3519
+ TableValueResultMaintenanceWindowDto,
3520
+ TableValueResultMemberDto,
3521
+ TableValueResultMonitorDto,
3522
+ TableValueResultMonitorVersionDto,
3523
+ TableValueResultNotificationDispatchDto,
3524
+ TableValueResultNotificationDto,
3525
+ TableValueResultNotificationPolicyDto,
3526
+ TableValueResultResourceGroupDto,
3527
+ TableValueResultScheduledMaintenanceDto,
3528
+ TableValueResultSecretDto,
3529
+ TableValueResultServiceComponentDto,
3530
+ TableValueResultServiceIncidentDto,
3531
+ TableValueResultServiceSubscriptionDto,
3532
+ TableValueResultStatusPageComponentDto,
3533
+ TableValueResultStatusPageComponentGroupDto,
3534
+ TableValueResultStatusPageComponentUptimeDayDto,
3535
+ TableValueResultStatusPageCustomDomainDto,
3536
+ TableValueResultStatusPageDto,
3537
+ TableValueResultStatusPageIncidentDto,
3538
+ TableValueResultStatusPageSubscriberDto,
3539
+ TableValueResultTagDto,
3540
+ WebhookDeliveryDto,
3541
+ TableValueResultWebhookDeliveryDto,
3542
+ TableValueResultWebhookEndpointDto,
3543
+ TableValueResultWorkspaceDto,
3544
+ WebhookEventCatalogEntry,
3545
+ WebhookEventCatalogResponse,
3546
+ };
3547
+ //# sourceMappingURL=schemas.js.map