@uptimerobot/cli 1.0.0 → 1.1.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 (41) hide show
  1. package/README.md +23 -2
  2. package/dist/commands/integrations/create/discord.js +10 -0
  3. package/dist/commands/integrations/create/google-chat.js +10 -0
  4. package/dist/commands/integrations/create/mattermost.js +10 -0
  5. package/dist/commands/integrations/create/msteams.js +10 -0
  6. package/dist/commands/integrations/create/pagerduty.js +10 -0
  7. package/dist/commands/integrations/create/push-bullet.js +10 -0
  8. package/dist/commands/integrations/create/pushover.js +10 -0
  9. package/dist/commands/integrations/create/slack.js +10 -0
  10. package/dist/commands/integrations/create/splunk.js +10 -0
  11. package/dist/commands/integrations/create/telegram.js +10 -0
  12. package/dist/commands/integrations/create/webhook.js +10 -0
  13. package/dist/commands/integrations/create/zapier.js +10 -0
  14. package/dist/commands/integrations/update/discord.js +10 -0
  15. package/dist/commands/integrations/update/google-chat.js +10 -0
  16. package/dist/commands/integrations/update/mattermost.js +10 -0
  17. package/dist/commands/integrations/update/msteams.js +10 -0
  18. package/dist/commands/integrations/update/pagerduty.js +10 -0
  19. package/dist/commands/integrations/update/push-bullet.js +10 -0
  20. package/dist/commands/integrations/update/pushover.js +10 -0
  21. package/dist/commands/integrations/update/slack.js +10 -0
  22. package/dist/commands/integrations/update/splunk.js +10 -0
  23. package/dist/commands/integrations/update/telegram.js +10 -0
  24. package/dist/commands/integrations/update/webhook.js +10 -0
  25. package/dist/commands/integrations/update/zapier.js +10 -0
  26. package/dist/commands/monitors/create/third-party-service.js +10 -0
  27. package/dist/commands/monitors/create.js +10 -0
  28. package/dist/commands/monitors/storm-protection/update.js +10 -0
  29. package/dist/commands/monitors/storm-protection.js +10 -0
  30. package/dist/commands/monitors/third-party-service/incidents/activity-log.js +10 -0
  31. package/dist/commands/monitors/third-party-service/incidents/get.js +10 -0
  32. package/dist/commands/monitors/third-party-service/incidents/list.js +10 -0
  33. package/dist/commands/monitors/third-party-service/status.js +10 -0
  34. package/dist/commands/status-pages/announcements/delete.js +10 -0
  35. package/dist/commands/third-party-providers/get.js +10 -0
  36. package/dist/commands/third-party-providers/list.js +10 -0
  37. package/dist/generated/operations.js +10509 -4625
  38. package/dist/lib/cli-errors.js +21 -3
  39. package/dist/output/columns.js +24 -0
  40. package/openapi/openapi.yaml +2908 -274
  41. package/package.json +15 -1
@@ -21,6 +21,14 @@ paths:
21
21
  application/json:
22
22
  schema:
23
23
  $ref: '#/components/schemas/BulkOperationResponseDto'
24
+ default:
25
+ description: >-
26
+ An error response. `code` is a member of the published error code
27
+ vocabulary.
28
+ content:
29
+ application/json:
30
+ schema:
31
+ $ref: '#/components/schemas/ApiErrorResponseDto'
24
32
  security:
25
33
  - bearer: []
26
34
  summary: Pause monitors by group and/or tag
@@ -47,6 +55,14 @@ paths:
47
55
  application/json:
48
56
  schema:
49
57
  $ref: '#/components/schemas/BulkOperationResponseDto'
58
+ default:
59
+ description: >-
60
+ An error response. `code` is a member of the published error code
61
+ vocabulary.
62
+ content:
63
+ application/json:
64
+ schema:
65
+ $ref: '#/components/schemas/ApiErrorResponseDto'
50
66
  security:
51
67
  - bearer: []
52
68
  summary: Start monitors by group and/or tag
@@ -73,6 +89,14 @@ paths:
73
89
  application/json:
74
90
  schema:
75
91
  $ref: '#/components/schemas/BulkOperationResponseDto'
92
+ default:
93
+ description: >-
94
+ An error response. `code` is a member of the published error code
95
+ vocabulary.
96
+ content:
97
+ application/json:
98
+ schema:
99
+ $ref: '#/components/schemas/ApiErrorResponseDto'
76
100
  security:
77
101
  - bearer: []
78
102
  summary: Update monitors by group and/or tag
@@ -122,6 +146,16 @@ paths:
122
146
  schema:
123
147
  example: '2024-12-31T23:59:59Z'
124
148
  type: string
149
+ - name: status
150
+ required: false
151
+ in: query
152
+ description: >-
153
+ Filter incidents by status. "open" returns only currently ongoing
154
+ incidents, regardless of started_after/started_before.
155
+ schema:
156
+ enum:
157
+ - open
158
+ type: string
125
159
  responses:
126
160
  '200':
127
161
  description: ''
@@ -129,6 +163,14 @@ paths:
129
163
  application/json:
130
164
  schema:
131
165
  $ref: '#/components/schemas/IncidentSummaryPaginationDto'
166
+ default:
167
+ description: >-
168
+ An error response. `code` is a member of the published error code
169
+ vocabulary.
170
+ content:
171
+ application/json:
172
+ schema:
173
+ $ref: '#/components/schemas/ApiErrorResponseDto'
132
174
  security:
133
175
  - bearer: []
134
176
  summary: List incidents
@@ -152,6 +194,14 @@ paths:
152
194
  application/json:
153
195
  schema:
154
196
  $ref: '#/components/schemas/IncidentDetailDto'
197
+ default:
198
+ description: >-
199
+ An error response. `code` is a member of the published error code
200
+ vocabulary.
201
+ content:
202
+ application/json:
203
+ schema:
204
+ $ref: '#/components/schemas/ApiErrorResponseDto'
155
205
  security:
156
206
  - bearer: []
157
207
  summary: Get an incident by ID
@@ -197,8 +247,24 @@ paths:
197
247
  $ref: '#/components/schemas/PublicIncidentCommentsPaginationDto'
198
248
  '401':
199
249
  description: Unauthorized - missing or invalid authentication
250
+ content:
251
+ application/json:
252
+ schema:
253
+ $ref: '#/components/schemas/ApiErrorResponseDto'
200
254
  '404':
201
255
  description: Incident not found
256
+ content:
257
+ application/json:
258
+ schema:
259
+ $ref: '#/components/schemas/ApiErrorResponseDto'
260
+ default:
261
+ description: >-
262
+ An error response. `code` is a member of the published error code
263
+ vocabulary.
264
+ content:
265
+ application/json:
266
+ schema:
267
+ $ref: '#/components/schemas/ApiErrorResponseDto'
202
268
  security:
203
269
  - bearer: []
204
270
  summary: List incident comments
@@ -225,12 +291,36 @@ paths:
225
291
  description: Comment created successfully
226
292
  '400':
227
293
  description: Invalid request body
294
+ content:
295
+ application/json:
296
+ schema:
297
+ $ref: '#/components/schemas/ApiErrorResponseDto'
228
298
  '401':
229
299
  description: Unauthorized - missing or invalid authentication
300
+ content:
301
+ application/json:
302
+ schema:
303
+ $ref: '#/components/schemas/ApiErrorResponseDto'
230
304
  '403':
231
305
  description: Forbidden - no write permission
306
+ content:
307
+ application/json:
308
+ schema:
309
+ $ref: '#/components/schemas/ApiErrorResponseDto'
232
310
  '404':
233
311
  description: Incident not found
312
+ content:
313
+ application/json:
314
+ schema:
315
+ $ref: '#/components/schemas/ApiErrorResponseDto'
316
+ default:
317
+ description: >-
318
+ An error response. `code` is a member of the published error code
319
+ vocabulary.
320
+ content:
321
+ application/json:
322
+ schema:
323
+ $ref: '#/components/schemas/ApiErrorResponseDto'
234
324
  security:
235
325
  - bearer: []
236
326
  summary: Create incident comment
@@ -240,7 +330,8 @@ paths:
240
330
  get:
241
331
  description: >-
242
332
  Returns the activity log for an incident, including status updates,
243
- comments, and notifications. Sorted by date descending.
333
+ comments, and notifications. Sorted by date descending, newest first.
334
+ Values can be paginated with the cursor parameter.
244
335
  operationId: IncidentsController_getActivityLog
245
336
  parameters:
246
337
  - name: id
@@ -249,6 +340,30 @@ paths:
249
340
  description: ID of the incident
250
341
  schema:
251
342
  type: string
343
+ - name: cursor
344
+ required: false
345
+ in: query
346
+ description: >-
347
+ Cursor to paginate through further notification entries (comments,
348
+ status updates and system events are only returned on the first
349
+ page)
350
+ schema:
351
+ pattern: /^[A-Za-z0-9_-]+$/
352
+ example: MjAyNi0wOS0xMiAxMDowMjowMXw0MjAwMDAwMDAwMDAwMDExfDQ0fDIwMA
353
+ type: string
354
+ - name: limit
355
+ required: false
356
+ in: query
357
+ description: >-
358
+ Maximum number of notification entries per page (1-200, default 50).
359
+ The first page also carries every comment, status update and system
360
+ event on top of those, so it can hold more than `limit` entries.
361
+ schema:
362
+ minimum: 1
363
+ maximum: 200
364
+ default: 50
365
+ example: 50
366
+ type: number
252
367
  responses:
253
368
  '200':
254
369
  description: ''
@@ -256,6 +371,14 @@ paths:
256
371
  application/json:
257
372
  schema:
258
373
  $ref: '#/components/schemas/ActivityLogResponseDto'
374
+ default:
375
+ description: >-
376
+ An error response. `code` is a member of the published error code
377
+ vocabulary.
378
+ content:
379
+ application/json:
380
+ schema:
381
+ $ref: '#/components/schemas/ApiErrorResponseDto'
259
382
  security:
260
383
  - bearer: []
261
384
  summary: Get incident activity log
@@ -264,8 +387,9 @@ paths:
264
387
  /incidents/{id}/alerts:
265
388
  get:
266
389
  description: >-
267
- Returns all alerts that were sent for a specific incident, including
268
- recipient information and delivery status.
390
+ Returns alerts that were sent for a specific incident, including
391
+ recipient information and delivery status. Sorted by date descending,
392
+ newest first. Values can be paginated with the cursor parameter.
269
393
  operationId: IncidentsController_getAlerts
270
394
  parameters:
271
395
  - name: id
@@ -274,6 +398,24 @@ paths:
274
398
  description: ID of the incident
275
399
  schema:
276
400
  type: string
401
+ - name: cursor
402
+ required: false
403
+ in: query
404
+ description: Cursor to paginate through sent alerts
405
+ schema:
406
+ pattern: /^[A-Za-z0-9_-]+$/
407
+ example: MjAyNi0wOS0xMiAxMDowMjowMXw0MjAwMDAwMDAwMDAwMDExfDQ0fDIwMA
408
+ type: string
409
+ - name: limit
410
+ required: false
411
+ in: query
412
+ description: Number of sent alerts to return (1-200, default 50)
413
+ schema:
414
+ minimum: 1
415
+ maximum: 200
416
+ default: 50
417
+ example: 50
418
+ type: number
277
419
  responses:
278
420
  '200':
279
421
  description: ''
@@ -281,6 +423,14 @@ paths:
281
423
  application/json:
282
424
  schema:
283
425
  $ref: '#/components/schemas/PublicSentAlertsResponseDto'
426
+ default:
427
+ description: >-
428
+ An error response. `code` is a member of the published error code
429
+ vocabulary.
430
+ content:
431
+ application/json:
432
+ schema:
433
+ $ref: '#/components/schemas/ApiErrorResponseDto'
284
434
  security:
285
435
  - bearer: []
286
436
  summary: Get incident sent alerts
@@ -316,6 +466,14 @@ paths:
316
466
  application/json:
317
467
  schema:
318
468
  $ref: '#/components/schemas/IncidentCommentDto'
469
+ default:
470
+ description: >-
471
+ An error response. `code` is a member of the published error code
472
+ vocabulary.
473
+ content:
474
+ application/json:
475
+ schema:
476
+ $ref: '#/components/schemas/ApiErrorResponseDto'
319
477
  security:
320
478
  - bearer: []
321
479
  summary: Update an incident comment
@@ -342,10 +500,30 @@ paths:
342
500
  description: Comment deleted successfully
343
501
  '401':
344
502
  description: Unauthorized - missing or invalid authentication
503
+ content:
504
+ application/json:
505
+ schema:
506
+ $ref: '#/components/schemas/ApiErrorResponseDto'
345
507
  '403':
346
508
  description: Forbidden - no write permission
509
+ content:
510
+ application/json:
511
+ schema:
512
+ $ref: '#/components/schemas/ApiErrorResponseDto'
347
513
  '404':
348
514
  description: Incident or comment not found
515
+ content:
516
+ application/json:
517
+ schema:
518
+ $ref: '#/components/schemas/ApiErrorResponseDto'
519
+ default:
520
+ description: >-
521
+ An error response. `code` is a member of the published error code
522
+ vocabulary.
523
+ content:
524
+ application/json:
525
+ schema:
526
+ $ref: '#/components/schemas/ApiErrorResponseDto'
349
527
  security:
350
528
  - bearer: []
351
529
  summary: Delete incident comment
@@ -374,14 +552,38 @@ paths:
374
552
  $ref: '#/components/schemas/MonitorGroupDto'
375
553
  '400':
376
554
  description: Validation error (invalid name, monitorIds, or groupIds)
555
+ content:
556
+ application/json:
557
+ schema:
558
+ $ref: '#/components/schemas/ApiErrorResponseDto'
377
559
  '401':
378
560
  description: Unauthorized - invalid or missing authentication
561
+ content:
562
+ application/json:
563
+ schema:
564
+ $ref: '#/components/schemas/ApiErrorResponseDto'
379
565
  '403':
380
566
  description: >-
381
567
  Forbidden - no write permission or monitor-groups feature not
382
568
  available
569
+ content:
570
+ application/json:
571
+ schema:
572
+ $ref: '#/components/schemas/ApiErrorResponseDto'
383
573
  '429':
384
574
  description: Rate limit exceeded
575
+ content:
576
+ application/json:
577
+ schema:
578
+ $ref: '#/components/schemas/ApiErrorResponseDto'
579
+ default:
580
+ description: >-
581
+ An error response. `code` is a member of the published error code
582
+ vocabulary.
583
+ content:
584
+ application/json:
585
+ schema:
586
+ $ref: '#/components/schemas/ApiErrorResponseDto'
385
587
  security:
386
588
  - bearer: []
387
589
  summary: Create a monitor group
@@ -393,6 +595,17 @@ paths:
393
595
  with the cursor parameter.
394
596
  operationId: MonitorGroupsController_list
395
597
  parameters:
598
+ - name: limit
599
+ required: false
600
+ in: query
601
+ description: >-
602
+ Maximum number of monitor groups to return per page. Default: 50,
603
+ Min: 1, Max: 200.
604
+ schema:
605
+ minimum: 1
606
+ maximum: 200
607
+ example: 50
608
+ type: number
396
609
  - name: cursor
397
610
  required: false
398
611
  in: query
@@ -406,6 +619,14 @@ paths:
406
619
  application/json:
407
620
  schema:
408
621
  $ref: '#/components/schemas/MonitorGroupPaginationDto'
622
+ default:
623
+ description: >-
624
+ An error response. `code` is a member of the published error code
625
+ vocabulary.
626
+ content:
627
+ application/json:
628
+ schema:
629
+ $ref: '#/components/schemas/ApiErrorResponseDto'
409
630
  security:
410
631
  - bearer: []
411
632
  summary: List monitor groups
@@ -429,6 +650,14 @@ paths:
429
650
  application/json:
430
651
  schema:
431
652
  $ref: '#/components/schemas/MonitorGroupDto'
653
+ default:
654
+ description: >-
655
+ An error response. `code` is a member of the published error code
656
+ vocabulary.
657
+ content:
658
+ application/json:
659
+ schema:
660
+ $ref: '#/components/schemas/ApiErrorResponseDto'
432
661
  security:
433
662
  - bearer: []
434
663
  summary: Get a monitor group by ID
@@ -457,6 +686,14 @@ paths:
457
686
  application/json:
458
687
  schema:
459
688
  $ref: '#/components/schemas/MonitorGroupDto'
689
+ default:
690
+ description: >-
691
+ An error response. `code` is a member of the published error code
692
+ vocabulary.
693
+ content:
694
+ application/json:
695
+ schema:
696
+ $ref: '#/components/schemas/ApiErrorResponseDto'
460
697
  security:
461
698
  - bearer: []
462
699
  summary: Update a monitor group
@@ -489,19 +726,102 @@ paths:
489
726
  description: Monitor group deleted successfully
490
727
  '400':
491
728
  description: Cannot delete default group or invalid new group
729
+ content:
730
+ application/json:
731
+ schema:
732
+ $ref: '#/components/schemas/ApiErrorResponseDto'
492
733
  '401':
493
734
  description: Unauthorized - invalid or missing authentication
735
+ content:
736
+ application/json:
737
+ schema:
738
+ $ref: '#/components/schemas/ApiErrorResponseDto'
494
739
  '403':
495
740
  description: >-
496
741
  Forbidden - no write permission or monitor-groups feature not
497
742
  available
743
+ content:
744
+ application/json:
745
+ schema:
746
+ $ref: '#/components/schemas/ApiErrorResponseDto'
498
747
  '404':
499
748
  description: Monitor group not found
749
+ content:
750
+ application/json:
751
+ schema:
752
+ $ref: '#/components/schemas/ApiErrorResponseDto'
753
+ default:
754
+ description: >-
755
+ An error response. `code` is a member of the published error code
756
+ vocabulary.
757
+ content:
758
+ application/json:
759
+ schema:
760
+ $ref: '#/components/schemas/ApiErrorResponseDto'
500
761
  security:
501
762
  - bearer: []
502
763
  summary: Delete a monitor group
503
764
  tags:
504
765
  - Monitor Groups
766
+ /monitors/storm-protection:
767
+ get:
768
+ description: >-
769
+ Get the account-wide storm protection (alert grouping) settings. Returns
770
+ defaults when not yet configured.
771
+ operationId: StormProtectionController_get
772
+ parameters: []
773
+ responses:
774
+ '200':
775
+ description: ''
776
+ content:
777
+ application/json:
778
+ schema:
779
+ $ref: '#/components/schemas/StormProtectionSettingsResponseDto'
780
+ default:
781
+ description: >-
782
+ An error response. `code` is a member of the published error code
783
+ vocabulary.
784
+ content:
785
+ application/json:
786
+ schema:
787
+ $ref: '#/components/schemas/ApiErrorResponseDto'
788
+ security:
789
+ - bearer: []
790
+ summary: Get storm protection settings
791
+ tags:
792
+ - Storm Protection
793
+ patch:
794
+ description: >-
795
+ Update the account-wide storm protection (alert grouping) settings.
796
+ Partial update — only provided fields are changed.
797
+ operationId: StormProtectionController_update
798
+ parameters: []
799
+ requestBody:
800
+ required: true
801
+ content:
802
+ application/json:
803
+ schema:
804
+ $ref: '#/components/schemas/UpdateStormProtectionDto'
805
+ responses:
806
+ '200':
807
+ description: ''
808
+ content:
809
+ application/json:
810
+ schema:
811
+ $ref: '#/components/schemas/StormProtectionSettingsResponseDto'
812
+ default:
813
+ description: >-
814
+ An error response. `code` is a member of the published error code
815
+ vocabulary.
816
+ content:
817
+ application/json:
818
+ schema:
819
+ $ref: '#/components/schemas/ApiErrorResponseDto'
820
+ security:
821
+ - bearer: []
822
+ summary: Update storm protection settings
823
+ tags:
824
+ - Storm Protection
505
825
  /monitors:
506
826
  get:
507
827
  description: >-
@@ -588,6 +908,14 @@ paths:
588
908
  application/json:
589
909
  schema:
590
910
  $ref: '#/components/schemas/MonitorPaginationDto'
911
+ default:
912
+ description: >-
913
+ An error response. `code` is a member of the published error code
914
+ vocabulary.
915
+ content:
916
+ application/json:
917
+ schema:
918
+ $ref: '#/components/schemas/ApiErrorResponseDto'
591
919
  security:
592
920
  - bearer: []
593
921
  summary: List monitors
@@ -620,6 +948,7 @@ paths:
620
948
  - $ref: '#/components/schemas/CreateApiMonitorDto'
621
949
  - $ref: '#/components/schemas/CreateUdpMonitorDto'
622
950
  - $ref: '#/components/schemas/CreateVisualComparisonMonitorDto'
951
+ - $ref: '#/components/schemas/CreateThirdPartyServiceMonitorDto'
623
952
  discriminator:
624
953
  propertyName: type
625
954
  mapping:
@@ -632,6 +961,7 @@ paths:
632
961
  API: '#/components/schemas/CreateApiMonitorDto'
633
962
  UDP: '#/components/schemas/CreateUdpMonitorDto'
634
963
  VISUAL_COMPARISON: '#/components/schemas/CreateVisualComparisonMonitorDto'
964
+ THIRD_PARTY_SERVICE: '#/components/schemas/CreateThirdPartyServiceMonitorDto'
635
965
  examples:
636
966
  HTTP Monitor:
637
967
  value:
@@ -756,6 +1086,12 @@ paths:
756
1086
  visualComparison:
757
1087
  sensitivityThreshold: 10
758
1088
  viewport: desktop
1089
+ Third Party Service:
1090
+ value:
1091
+ type: THIRD_PARTY_SERVICE
1092
+ config:
1093
+ thirdPartyService:
1094
+ providerId: 4317
759
1095
  responses:
760
1096
  '201':
761
1097
  description: ''
@@ -763,6 +1099,14 @@ paths:
763
1099
  application/json:
764
1100
  schema:
765
1101
  $ref: '#/components/schemas/MonitorDto'
1102
+ default:
1103
+ description: >-
1104
+ An error response. `code` is a member of the published error code
1105
+ vocabulary.
1106
+ content:
1107
+ application/json:
1108
+ schema:
1109
+ $ref: '#/components/schemas/ApiErrorResponseDto'
766
1110
  security:
767
1111
  - bearer: []
768
1112
  summary: Create a monitor
@@ -824,6 +1168,14 @@ paths:
824
1168
  application/json:
825
1169
  schema:
826
1170
  $ref: '#/components/schemas/UptimeStatsDto'
1171
+ default:
1172
+ description: >-
1173
+ An error response. `code` is a member of the published error code
1174
+ vocabulary.
1175
+ content:
1176
+ application/json:
1177
+ schema:
1178
+ $ref: '#/components/schemas/ApiErrorResponseDto'
827
1179
  security:
828
1180
  - bearer: []
829
1181
  summary: Get aggregated uptime statistics
@@ -865,6 +1217,14 @@ paths:
865
1217
  application/json:
866
1218
  schema:
867
1219
  $ref: '#/components/schemas/MonitorUptimeStatsDto'
1220
+ default:
1221
+ description: >-
1222
+ An error response. `code` is a member of the published error code
1223
+ vocabulary.
1224
+ content:
1225
+ application/json:
1226
+ schema:
1227
+ $ref: '#/components/schemas/ApiErrorResponseDto'
868
1228
  security:
869
1229
  - bearer: []
870
1230
  summary: Get monitor uptime statistics
@@ -916,6 +1276,14 @@ paths:
916
1276
  application/json:
917
1277
  schema:
918
1278
  $ref: '#/components/schemas/MonitorResponseTimeStatsByRegionDto'
1279
+ default:
1280
+ description: >-
1281
+ An error response. `code` is a member of the published error code
1282
+ vocabulary.
1283
+ content:
1284
+ application/json:
1285
+ schema:
1286
+ $ref: '#/components/schemas/ApiErrorResponseDto'
919
1287
  security:
920
1288
  - bearer: []
921
1289
  summary: Get monitor response time statistics by region
@@ -983,15 +1351,27 @@ paths:
983
1351
  application/json:
984
1352
  schema:
985
1353
  $ref: '#/components/schemas/MonitorResponseTimeStatsDto'
1354
+ default:
1355
+ description: >-
1356
+ An error response. `code` is a member of the published error code
1357
+ vocabulary.
1358
+ content:
1359
+ application/json:
1360
+ schema:
1361
+ $ref: '#/components/schemas/ApiErrorResponseDto'
986
1362
  security:
987
1363
  - bearer: []
988
1364
  summary: Get monitor response time statistics
989
1365
  tags:
990
1366
  - Monitors
991
- /monitors/{id}:
1367
+ /monitors/{id}/third-party-service/status:
992
1368
  get:
993
- description: Get a monitor details by ID
994
- operationId: MonitorsController_get
1369
+ description: >-
1370
+ Returns the fine-grained 4-state (operational, minor, major,
1371
+ maintenance) for a third party service monitor. Distinct from the coarse
1372
+ monitor status field, which cannot tell a partial degradation from a
1373
+ full outage.
1374
+ operationId: MonitorsController_getThirdPartyServiceStatus
995
1375
  parameters:
996
1376
  - name: id
997
1377
  required: true
@@ -1004,49 +1384,237 @@ paths:
1004
1384
  content:
1005
1385
  application/json:
1006
1386
  schema:
1007
- $ref: '#/components/schemas/MonitorDto'
1387
+ $ref: '#/components/schemas/MonitorThirdPartyServiceStatusDto'
1388
+ default:
1389
+ description: >-
1390
+ An error response. `code` is a member of the published error code
1391
+ vocabulary.
1392
+ content:
1393
+ application/json:
1394
+ schema:
1395
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1008
1396
  security:
1009
1397
  - bearer: []
1010
- summary: Get a monitor by ID
1398
+ summary: Get the current status of a third party service
1011
1399
  tags:
1012
1400
  - Monitors
1013
- patch:
1014
- operationId: MonitorsController_update
1401
+ /monitors/{id}/third-party-service/incidents:
1402
+ get:
1403
+ description: >-
1404
+ Returns every incident (resolved and unresolved) recorded for the
1405
+ provider a third party service monitor tracks, newest first, with
1406
+ verbatim provider updates. An empty history returns an empty array with
1407
+ a 200, never an error.
1408
+ operationId: MonitorsController_getThirdPartyServiceIncidents
1015
1409
  parameters:
1016
1410
  - name: id
1017
1411
  required: true
1018
1412
  in: path
1019
1413
  schema:
1020
1414
  type: number
1021
- requestBody:
1022
- required: true
1023
- content:
1024
- application/json:
1025
- schema:
1026
- $ref: '#/components/schemas/UpdateMonitorDto'
1027
1415
  responses:
1028
1416
  '200':
1029
1417
  description: ''
1030
1418
  content:
1031
1419
  application/json:
1032
1420
  schema:
1033
- $ref: '#/components/schemas/MonitorDto'
1421
+ $ref: '#/components/schemas/MonitorThirdPartyServiceIncidentsDto'
1422
+ default:
1423
+ description: >-
1424
+ An error response. `code` is a member of the published error code
1425
+ vocabulary.
1426
+ content:
1427
+ application/json:
1428
+ schema:
1429
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1034
1430
  security:
1035
1431
  - bearer: []
1036
- summary: Update a monitor
1432
+ summary: Get the incident history of a third party service
1037
1433
  tags:
1038
1434
  - Monitors
1039
- delete:
1040
- operationId: MonitorsController_delete
1435
+ /monitors/{id}/third-party-service/incidents/{incidentId}:
1436
+ get:
1437
+ description: >-
1438
+ Returns one incident from the incident history of a third party service
1439
+ monitor, resolved or not, with its verbatim provider updates.
1440
+ affectedComponents lists the affected components the monitor tracks, or
1441
+ every affected component when the monitor tracks the whole provider.
1442
+ operationId: MonitorsController_getThirdPartyServiceIncident
1041
1443
  parameters:
1042
1444
  - name: id
1043
1445
  required: true
1044
1446
  in: path
1447
+ description: The monitor ID
1045
1448
  schema:
1449
+ minimum: 1
1450
+ maximum: 2147483647
1451
+ example: 42
1046
1452
  type: number
1047
- responses:
1048
- '200':
1049
- description: ''
1453
+ - name: incidentId
1454
+ required: true
1455
+ in: path
1456
+ description: >-
1457
+ The incident ID from the incident history of the third party
1458
+ service. A string, since it can exceed the safe integer range.
1459
+ schema:
1460
+ pattern: /^\d{1,20}$/
1461
+ example: '355758443503112192'
1462
+ type: string
1463
+ responses:
1464
+ '200':
1465
+ description: ''
1466
+ content:
1467
+ application/json:
1468
+ schema:
1469
+ $ref: '#/components/schemas/MonitorThirdPartyServiceIncidentDetailDto'
1470
+ default:
1471
+ description: >-
1472
+ An error response. `code` is a member of the published error code
1473
+ vocabulary.
1474
+ content:
1475
+ application/json:
1476
+ schema:
1477
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1478
+ security:
1479
+ - bearer: []
1480
+ summary: Get one incident of a third party service
1481
+ tags:
1482
+ - Monitors
1483
+ /monitors/{id}/third-party-service/incidents/{incidentId}/activity-log:
1484
+ get:
1485
+ description: >-
1486
+ Returns the notifications this account sent about one incident of a
1487
+ third party service, with the channel, the alert contact and whether
1488
+ delivery succeeded. channelIdentifier is shown only for email, SMS and
1489
+ voice channels; for every other channel, such as webhooks, Slack or
1490
+ mobile push, whose value can carry a credential, it is the literal
1491
+ string "[REDACTED]". An incident with no notifications returns an empty
1492
+ array with a 200.
1493
+ operationId: MonitorsController_getThirdPartyServiceIncidentActivityLog
1494
+ parameters:
1495
+ - name: id
1496
+ required: true
1497
+ in: path
1498
+ description: The monitor ID
1499
+ schema:
1500
+ minimum: 1
1501
+ maximum: 2147483647
1502
+ example: 42
1503
+ type: number
1504
+ - name: incidentId
1505
+ required: true
1506
+ in: path
1507
+ description: >-
1508
+ The incident ID from the incident history of the third party
1509
+ service. A string, since it can exceed the safe integer range.
1510
+ schema:
1511
+ pattern: /^\d{1,20}$/
1512
+ example: '355758443503112192'
1513
+ type: string
1514
+ responses:
1515
+ '200':
1516
+ description: ''
1517
+ content:
1518
+ application/json:
1519
+ schema:
1520
+ $ref: >-
1521
+ #/components/schemas/MonitorThirdPartyServiceIncidentActivityLogDto
1522
+ default:
1523
+ description: >-
1524
+ An error response. `code` is a member of the published error code
1525
+ vocabulary.
1526
+ content:
1527
+ application/json:
1528
+ schema:
1529
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1530
+ security:
1531
+ - bearer: []
1532
+ summary: Get the activity log of a third party service incident
1533
+ tags:
1534
+ - Monitors
1535
+ /monitors/{id}:
1536
+ get:
1537
+ description: Get a monitor details by ID
1538
+ operationId: MonitorsController_get
1539
+ parameters:
1540
+ - name: id
1541
+ required: true
1542
+ in: path
1543
+ schema:
1544
+ type: number
1545
+ responses:
1546
+ '200':
1547
+ description: ''
1548
+ content:
1549
+ application/json:
1550
+ schema:
1551
+ $ref: '#/components/schemas/MonitorDto'
1552
+ default:
1553
+ description: >-
1554
+ An error response. `code` is a member of the published error code
1555
+ vocabulary.
1556
+ content:
1557
+ application/json:
1558
+ schema:
1559
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1560
+ security:
1561
+ - bearer: []
1562
+ summary: Get a monitor by ID
1563
+ tags:
1564
+ - Monitors
1565
+ patch:
1566
+ operationId: MonitorsController_update
1567
+ parameters:
1568
+ - name: id
1569
+ required: true
1570
+ in: path
1571
+ schema:
1572
+ type: number
1573
+ requestBody:
1574
+ required: true
1575
+ content:
1576
+ application/json:
1577
+ schema:
1578
+ $ref: '#/components/schemas/UpdateMonitorDto'
1579
+ responses:
1580
+ '200':
1581
+ description: ''
1582
+ content:
1583
+ application/json:
1584
+ schema:
1585
+ $ref: '#/components/schemas/MonitorDto'
1586
+ default:
1587
+ description: >-
1588
+ An error response. `code` is a member of the published error code
1589
+ vocabulary.
1590
+ content:
1591
+ application/json:
1592
+ schema:
1593
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1594
+ security:
1595
+ - bearer: []
1596
+ summary: Update a monitor
1597
+ tags:
1598
+ - Monitors
1599
+ delete:
1600
+ operationId: MonitorsController_delete
1601
+ parameters:
1602
+ - name: id
1603
+ required: true
1604
+ in: path
1605
+ schema:
1606
+ type: number
1607
+ responses:
1608
+ '200':
1609
+ description: ''
1610
+ default:
1611
+ description: >-
1612
+ An error response. `code` is a member of the published error code
1613
+ vocabulary.
1614
+ content:
1615
+ application/json:
1616
+ schema:
1617
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1050
1618
  security:
1051
1619
  - bearer: []
1052
1620
  summary: Delete a monitor
@@ -1076,6 +1644,14 @@ paths:
1076
1644
  responses:
1077
1645
  '201':
1078
1646
  description: ''
1647
+ default:
1648
+ description: >-
1649
+ An error response. `code` is a member of the published error code
1650
+ vocabulary.
1651
+ content:
1652
+ application/json:
1653
+ schema:
1654
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1079
1655
  security:
1080
1656
  - bearer: []
1081
1657
  summary: Reset stats for a monitor
@@ -1110,6 +1686,14 @@ paths:
1110
1686
  application/json:
1111
1687
  schema:
1112
1688
  $ref: '#/components/schemas/MonitorDto'
1689
+ default:
1690
+ description: >-
1691
+ An error response. `code` is a member of the published error code
1692
+ vocabulary.
1693
+ content:
1694
+ application/json:
1695
+ schema:
1696
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1113
1697
  security:
1114
1698
  - bearer: []
1115
1699
  summary: Pause a monitor
@@ -1144,6 +1728,14 @@ paths:
1144
1728
  application/json:
1145
1729
  schema:
1146
1730
  $ref: '#/components/schemas/MonitorDto'
1731
+ default:
1732
+ description: >-
1733
+ An error response. `code` is a member of the published error code
1734
+ vocabulary.
1735
+ content:
1736
+ application/json:
1737
+ schema:
1738
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1147
1739
  security:
1148
1740
  - bearer: []
1149
1741
  summary: Start a monitor
@@ -1154,6 +1746,17 @@ paths:
1154
1746
  description: List Public Status Pages
1155
1747
  operationId: PspController_list
1156
1748
  parameters:
1749
+ - name: limit
1750
+ required: false
1751
+ in: query
1752
+ description: >-
1753
+ Maximum number of status pages to return per page. Default: 50, Min:
1754
+ 1, Max: 200.
1755
+ schema:
1756
+ minimum: 1
1757
+ maximum: 200
1758
+ example: 50
1759
+ type: number
1157
1760
  - name: cursor
1158
1761
  required: false
1159
1762
  in: query
@@ -1167,6 +1770,14 @@ paths:
1167
1770
  application/json:
1168
1771
  schema:
1169
1772
  $ref: '#/components/schemas/PspPaginationDto'
1773
+ default:
1774
+ description: >-
1775
+ An error response. `code` is a member of the published error code
1776
+ vocabulary.
1777
+ content:
1778
+ application/json:
1779
+ schema:
1780
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1170
1781
  security:
1171
1782
  - bearer: []
1172
1783
  summary: List PSPs
@@ -1174,13 +1785,24 @@ paths:
1174
1785
  - Public Status Pages
1175
1786
  post:
1176
1787
  description: >-
1177
- Create a Public Status Page. Use multipart/form-data content type when
1178
- uploading a logo.
1788
+ Create a Public Status Page.
1789
+
1790
+
1791
+ Send `application/json` unless you are uploading a logo — it is the only
1792
+ content type that can express nested objects and arrays without
1793
+ ambiguity. Reserve `multipart/form-data` for requests that carry a
1794
+ `logo` file. In multipart, send arrays as a repeated field
1795
+ (`monitorIds=1&monitorIds=2`) or with the bracket suffix
1796
+ (`monitorIds[]=1`), and send `monitorIds[]=` with no value for an empty
1797
+ array.
1179
1798
  operationId: PspController_create
1180
1799
  parameters: []
1181
1800
  requestBody:
1182
1801
  required: true
1183
1802
  content:
1803
+ application/json:
1804
+ schema:
1805
+ $ref: '#/components/schemas/CreatePsPDto'
1184
1806
  multipart/form-data:
1185
1807
  schema:
1186
1808
  $ref: '#/components/schemas/CreatePsPDto'
@@ -1191,6 +1813,14 @@ paths:
1191
1813
  application/json:
1192
1814
  schema:
1193
1815
  $ref: '#/components/schemas/PspDto'
1816
+ default:
1817
+ description: >-
1818
+ An error response. `code` is a member of the published error code
1819
+ vocabulary.
1820
+ content:
1821
+ application/json:
1822
+ schema:
1823
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1194
1824
  security:
1195
1825
  - bearer: []
1196
1826
  summary: Create a PSP
@@ -1213,6 +1843,14 @@ paths:
1213
1843
  application/json:
1214
1844
  schema:
1215
1845
  $ref: '#/components/schemas/PspDto'
1846
+ default:
1847
+ description: >-
1848
+ An error response. `code` is a member of the published error code
1849
+ vocabulary.
1850
+ content:
1851
+ application/json:
1852
+ schema:
1853
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1216
1854
  security:
1217
1855
  - bearer: []
1218
1856
  summary: Get a PSP by ID
@@ -1220,8 +1858,16 @@ paths:
1220
1858
  - Public Status Pages
1221
1859
  patch:
1222
1860
  description: >-
1223
- Update a Public Status Page. Use multipart/form-data content type when
1224
- uploading a logo or icon.
1861
+ Update a Public Status Page.
1862
+
1863
+
1864
+ Send `application/json` unless you are uploading a logo or icon — it is
1865
+ the only content type that can express nested objects and arrays without
1866
+ ambiguity. Reserve `multipart/form-data` for requests that carry a
1867
+ `logo` or `icon` file. In multipart, send arrays as a repeated field
1868
+ (`monitorIds=1&monitorIds=2`) or with the bracket suffix
1869
+ (`monitorIds[]=1`), and send `monitorIds[]=` with no value for an empty
1870
+ array.
1225
1871
  operationId: PspController_update
1226
1872
  parameters:
1227
1873
  - name: id
@@ -1232,6 +1878,9 @@ paths:
1232
1878
  requestBody:
1233
1879
  required: true
1234
1880
  content:
1881
+ application/json:
1882
+ schema:
1883
+ $ref: '#/components/schemas/UpdatePspDto'
1235
1884
  multipart/form-data:
1236
1885
  schema:
1237
1886
  $ref: '#/components/schemas/UpdatePspDto'
@@ -1242,6 +1891,14 @@ paths:
1242
1891
  application/json:
1243
1892
  schema:
1244
1893
  $ref: '#/components/schemas/PspDto'
1894
+ default:
1895
+ description: >-
1896
+ An error response. `code` is a member of the published error code
1897
+ vocabulary.
1898
+ content:
1899
+ application/json:
1900
+ schema:
1901
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1245
1902
  security:
1246
1903
  - bearer: []
1247
1904
  summary: Update a PSP
@@ -1259,6 +1916,14 @@ paths:
1259
1916
  responses:
1260
1917
  '200':
1261
1918
  description: ''
1919
+ default:
1920
+ description: >-
1921
+ An error response. `code` is a member of the published error code
1922
+ vocabulary.
1923
+ content:
1924
+ application/json:
1925
+ schema:
1926
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1262
1927
  security:
1263
1928
  - bearer: []
1264
1929
  summary: Delete a PSP
@@ -1277,6 +1942,17 @@ paths:
1277
1942
  description: ID of the Public Status Page
1278
1943
  schema:
1279
1944
  type: number
1945
+ - name: limit
1946
+ required: false
1947
+ in: query
1948
+ description: >-
1949
+ Maximum number of announcements to return per page. Default: 50,
1950
+ Min: 1, Max: 200.
1951
+ schema:
1952
+ minimum: 1
1953
+ maximum: 200
1954
+ example: 50
1955
+ type: number
1280
1956
  - name: status
1281
1957
  required: false
1282
1958
  in: query
@@ -1303,12 +1979,36 @@ paths:
1303
1979
  $ref: '#/components/schemas/PspAnnouncementPaginationResponseDto'
1304
1980
  '400':
1305
1981
  description: Invalid status value
1982
+ content:
1983
+ application/json:
1984
+ schema:
1985
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1306
1986
  '401':
1307
1987
  description: Unauthorized - missing or invalid authentication
1988
+ content:
1989
+ application/json:
1990
+ schema:
1991
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1308
1992
  '404':
1309
1993
  description: PSP not found
1994
+ content:
1995
+ application/json:
1996
+ schema:
1997
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1310
1998
  '429':
1311
1999
  description: Too Many Requests - rate limit exceeded
2000
+ content:
2001
+ application/json:
2002
+ schema:
2003
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2004
+ default:
2005
+ description: >-
2006
+ An error response. `code` is a member of the published error code
2007
+ vocabulary.
2008
+ content:
2009
+ application/json:
2010
+ schema:
2011
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1312
2012
  security:
1313
2013
  - bearer: []
1314
2014
  summary: List announcements
@@ -1339,12 +2039,36 @@ paths:
1339
2039
  $ref: '#/components/schemas/PspAnnouncementResponseDto'
1340
2040
  '400':
1341
2041
  description: Invalid request body
2042
+ content:
2043
+ application/json:
2044
+ schema:
2045
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1342
2046
  '401':
1343
2047
  description: Unauthorized - missing or invalid authentication
2048
+ content:
2049
+ application/json:
2050
+ schema:
2051
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1344
2052
  '403':
1345
2053
  description: Forbidden - no write permission
2054
+ content:
2055
+ application/json:
2056
+ schema:
2057
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1346
2058
  '404':
1347
2059
  description: PSP not found
2060
+ content:
2061
+ application/json:
2062
+ schema:
2063
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2064
+ default:
2065
+ description: >-
2066
+ An error response. `code` is a member of the published error code
2067
+ vocabulary.
2068
+ content:
2069
+ application/json:
2070
+ schema:
2071
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1348
2072
  security:
1349
2073
  - bearer: []
1350
2074
  summary: Create an announcement
@@ -1376,10 +2100,30 @@ paths:
1376
2100
  $ref: '#/components/schemas/PspAnnouncementResponseDto'
1377
2101
  '401':
1378
2102
  description: Unauthorized - missing or invalid authentication
2103
+ content:
2104
+ application/json:
2105
+ schema:
2106
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1379
2107
  '404':
1380
2108
  description: PSP or announcement not found
2109
+ content:
2110
+ application/json:
2111
+ schema:
2112
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1381
2113
  '429':
1382
2114
  description: Too Many Requests - rate limit exceeded
2115
+ content:
2116
+ application/json:
2117
+ schema:
2118
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2119
+ default:
2120
+ description: >-
2121
+ An error response. `code` is a member of the published error code
2122
+ vocabulary.
2123
+ content:
2124
+ application/json:
2125
+ schema:
2126
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1383
2127
  security:
1384
2128
  - bearer: []
1385
2129
  summary: Get an announcement by ID
@@ -1416,17 +2160,93 @@ paths:
1416
2160
  $ref: '#/components/schemas/PspAnnouncementResponseDto'
1417
2161
  '400':
1418
2162
  description: Invalid request body
2163
+ content:
2164
+ application/json:
2165
+ schema:
2166
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1419
2167
  '401':
1420
2168
  description: Unauthorized - missing or invalid authentication
2169
+ content:
2170
+ application/json:
2171
+ schema:
2172
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1421
2173
  '403':
1422
2174
  description: Forbidden - no write permission
2175
+ content:
2176
+ application/json:
2177
+ schema:
2178
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1423
2179
  '404':
1424
2180
  description: PSP or announcement not found
2181
+ content:
2182
+ application/json:
2183
+ schema:
2184
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2185
+ default:
2186
+ description: >-
2187
+ An error response. `code` is a member of the published error code
2188
+ vocabulary.
2189
+ content:
2190
+ application/json:
2191
+ schema:
2192
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1425
2193
  security:
1426
2194
  - bearer: []
1427
2195
  summary: Update an announcement
1428
2196
  tags:
1429
2197
  - PSP Announcements
2198
+ delete:
2199
+ description: >-
2200
+ Permanently delete an announcement from a Public Status Page. This
2201
+ cannot be undone.
2202
+ operationId: PspAnnouncementsController_delete
2203
+ parameters:
2204
+ - name: pspId
2205
+ required: true
2206
+ in: path
2207
+ description: ID of the Public Status Page
2208
+ schema:
2209
+ type: number
2210
+ - name: id
2211
+ required: true
2212
+ in: path
2213
+ description: ID of the announcement to delete
2214
+ schema:
2215
+ type: number
2216
+ responses:
2217
+ '200':
2218
+ description: The announcement has been successfully deleted
2219
+ '401':
2220
+ description: Unauthorized - missing or invalid authentication
2221
+ content:
2222
+ application/json:
2223
+ schema:
2224
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2225
+ '403':
2226
+ description: Forbidden - no write permission
2227
+ content:
2228
+ application/json:
2229
+ schema:
2230
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2231
+ '404':
2232
+ description: PSP or announcement not found
2233
+ content:
2234
+ application/json:
2235
+ schema:
2236
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2237
+ default:
2238
+ description: >-
2239
+ An error response. `code` is a member of the published error code
2240
+ vocabulary.
2241
+ content:
2242
+ application/json:
2243
+ schema:
2244
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2245
+ security:
2246
+ - bearer: []
2247
+ summary: Delete an announcement
2248
+ tags:
2249
+ - PSP Announcements
1430
2250
  /psps/{pspId}/announcements/{id}/pin:
1431
2251
  post:
1432
2252
  description: >-
@@ -1451,10 +2271,30 @@ paths:
1451
2271
  description: Announcement pinned successfully
1452
2272
  '401':
1453
2273
  description: Unauthorized - missing or invalid authentication
2274
+ content:
2275
+ application/json:
2276
+ schema:
2277
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1454
2278
  '403':
1455
2279
  description: Forbidden - no write permission
2280
+ content:
2281
+ application/json:
2282
+ schema:
2283
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1456
2284
  '404':
1457
2285
  description: PSP or announcement not found
2286
+ content:
2287
+ application/json:
2288
+ schema:
2289
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2290
+ default:
2291
+ description: >-
2292
+ An error response. `code` is a member of the published error code
2293
+ vocabulary.
2294
+ content:
2295
+ application/json:
2296
+ schema:
2297
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1458
2298
  security:
1459
2299
  - bearer: []
1460
2300
  summary: Pin an announcement
@@ -1484,10 +2324,30 @@ paths:
1484
2324
  description: Announcement unpinned successfully
1485
2325
  '401':
1486
2326
  description: Unauthorized - missing or invalid authentication
2327
+ content:
2328
+ application/json:
2329
+ schema:
2330
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1487
2331
  '403':
1488
2332
  description: Forbidden - no write permission
2333
+ content:
2334
+ application/json:
2335
+ schema:
2336
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1489
2337
  '404':
1490
2338
  description: PSP or announcement not found
2339
+ content:
2340
+ application/json:
2341
+ schema:
2342
+ $ref: '#/components/schemas/ApiErrorResponseDto'
2343
+ default:
2344
+ description: >-
2345
+ An error response. `code` is a member of the published error code
2346
+ vocabulary.
2347
+ content:
2348
+ application/json:
2349
+ schema:
2350
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1491
2351
  security:
1492
2352
  - bearer: []
1493
2353
  summary: Unpin an announcement
@@ -1498,6 +2358,17 @@ paths:
1498
2358
  description: List maintenance windows
1499
2359
  operationId: MaintenanceWindowsController_list
1500
2360
  parameters:
2361
+ - name: limit
2362
+ required: false
2363
+ in: query
2364
+ description: >-
2365
+ Maximum number of maintenance windows to return per page. Default:
2366
+ 50, Min: 1, Max: 200.
2367
+ schema:
2368
+ minimum: 1
2369
+ maximum: 200
2370
+ example: 50
2371
+ type: number
1501
2372
  - name: cursor
1502
2373
  required: false
1503
2374
  in: query
@@ -1510,6 +2381,14 @@ paths:
1510
2381
  application/json:
1511
2382
  schema:
1512
2383
  $ref: '#/components/schemas/MaintenanceWindowPaginationDto'
2384
+ default:
2385
+ description: >-
2386
+ An error response. `code` is a member of the published error code
2387
+ vocabulary.
2388
+ content:
2389
+ application/json:
2390
+ schema:
2391
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1513
2392
  security:
1514
2393
  - bearer: []
1515
2394
  summary: List maintenance windows
@@ -1532,6 +2411,14 @@ paths:
1532
2411
  application/json:
1533
2412
  schema:
1534
2413
  $ref: '#/components/schemas/MaintenanceWindowDto'
2414
+ default:
2415
+ description: >-
2416
+ An error response. `code` is a member of the published error code
2417
+ vocabulary.
2418
+ content:
2419
+ application/json:
2420
+ schema:
2421
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1535
2422
  security:
1536
2423
  - bearer: []
1537
2424
  summary: Create a maintenance window
@@ -1555,6 +2442,14 @@ paths:
1555
2442
  application/json:
1556
2443
  schema:
1557
2444
  $ref: '#/components/schemas/MaintenanceWindowDto'
2445
+ default:
2446
+ description: >-
2447
+ An error response. `code` is a member of the published error code
2448
+ vocabulary.
2449
+ content:
2450
+ application/json:
2451
+ schema:
2452
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1558
2453
  security:
1559
2454
  - bearer: []
1560
2455
  summary: Get a maintenance window by ID
@@ -1583,6 +2478,14 @@ paths:
1583
2478
  application/json:
1584
2479
  schema:
1585
2480
  $ref: '#/components/schemas/MaintenanceWindowDto'
2481
+ default:
2482
+ description: >-
2483
+ An error response. `code` is a member of the published error code
2484
+ vocabulary.
2485
+ content:
2486
+ application/json:
2487
+ schema:
2488
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1586
2489
  security:
1587
2490
  - bearer: []
1588
2491
  summary: Update a maintenance window
@@ -1600,6 +2503,14 @@ paths:
1600
2503
  responses:
1601
2504
  '204':
1602
2505
  description: ''
2506
+ default:
2507
+ description: >-
2508
+ An error response. `code` is a member of the published error code
2509
+ vocabulary.
2510
+ content:
2511
+ application/json:
2512
+ schema:
2513
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1603
2514
  security:
1604
2515
  - bearer: []
1605
2516
  summary: Delete a maintenance window
@@ -1617,6 +2528,14 @@ paths:
1617
2528
  application/json:
1618
2529
  schema:
1619
2530
  $ref: '#/components/schemas/UserDto'
2531
+ default:
2532
+ description: >-
2533
+ An error response. `code` is a member of the published error code
2534
+ vocabulary.
2535
+ content:
2536
+ application/json:
2537
+ schema:
2538
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1620
2539
  security:
1621
2540
  - bearer: []
1622
2541
  summary: Get current user
@@ -1636,6 +2555,14 @@ paths:
1636
2555
  type: array
1637
2556
  items:
1638
2557
  $ref: '#/components/schemas/AlertContactDto'
2558
+ default:
2559
+ description: >-
2560
+ An error response. `code` is a member of the published error code
2561
+ vocabulary.
2562
+ content:
2563
+ application/json:
2564
+ schema:
2565
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1639
2566
  security:
1640
2567
  - bearer: []
1641
2568
  summary: Get alert contacts
@@ -1657,6 +2584,14 @@ paths:
1657
2584
  type: array
1658
2585
  items:
1659
2586
  $ref: '#/components/schemas/AllAlertContactDto'
2587
+ default:
2588
+ description: >-
2589
+ An error response. `code` is a member of the published error code
2590
+ vocabulary.
2591
+ content:
2592
+ application/json:
2593
+ schema:
2594
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1660
2595
  security:
1661
2596
  - bearer: []
1662
2597
  summary: Get all alert contacts
@@ -1667,6 +2602,17 @@ paths:
1667
2602
  description: List Integrations
1668
2603
  operationId: IntegrationsController_list
1669
2604
  parameters:
2605
+ - name: limit
2606
+ required: false
2607
+ in: query
2608
+ description: >-
2609
+ Maximum number of integrations to return per page. Default: 50, Min:
2610
+ 1, Max: 200.
2611
+ schema:
2612
+ minimum: 1
2613
+ maximum: 200
2614
+ example: 50
2615
+ type: number
1670
2616
  - name: includeOrgMembers
1671
2617
  required: false
1672
2618
  in: query
@@ -1690,6 +2636,14 @@ paths:
1690
2636
  application/json:
1691
2637
  schema:
1692
2638
  $ref: '#/components/schemas/IntegrationPaginationDto'
2639
+ default:
2640
+ description: >-
2641
+ An error response. `code` is a member of the published error code
2642
+ vocabulary.
2643
+ content:
2644
+ application/json:
2645
+ schema:
2646
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1693
2647
  security:
1694
2648
  - bearer: []
1695
2649
  summary: List Integrations
@@ -1701,22 +2655,40 @@ paths:
1701
2655
  parameters: []
1702
2656
  requestBody:
1703
2657
  required: true
2658
+ description: >-
2659
+ Integration to create. The `type` field selects which shape `data`
2660
+ must take — each integration type requires a different set of fields.
1704
2661
  content:
1705
2662
  application/json:
1706
2663
  schema:
1707
2664
  oneOf:
1708
2665
  - $ref: '#/components/schemas/CreateSlackIntegrationDto'
1709
2666
  - $ref: '#/components/schemas/CreateTelegramIntegrationDto'
1710
- - $ref: '#/components/schemas/CreateMsTeamsIntegrationDto'
2667
+ - $ref: '#/components/schemas/CreateMSTeamsIntegrationDto'
1711
2668
  - $ref: '#/components/schemas/CreateWebhookIntegrationDto'
1712
2669
  - $ref: '#/components/schemas/CreateZapierIntegrationDto'
1713
2670
  - $ref: '#/components/schemas/CreatePagerdutyIntegrationDto'
1714
2671
  - $ref: '#/components/schemas/CreateGoogleChatIntegrationDto'
1715
2672
  - $ref: '#/components/schemas/CreateDiscordIntegrationDto'
1716
2673
  - $ref: '#/components/schemas/CreateSplunkIntegrationDto'
1717
- - $ref: '#/components/schemas/CreatePushbulletIntegrationDto'
2674
+ - $ref: '#/components/schemas/CreatePushBulletIntegrationDto'
1718
2675
  - $ref: '#/components/schemas/CreatePushoverIntegrationDto'
1719
2676
  - $ref: '#/components/schemas/CreateMattermostIntegrationDto'
2677
+ discriminator:
2678
+ propertyName: type
2679
+ mapping:
2680
+ Slack: '#/components/schemas/CreateSlackIntegrationDto'
2681
+ Telegram: '#/components/schemas/CreateTelegramIntegrationDto'
2682
+ MSTeams: '#/components/schemas/CreateMSTeamsIntegrationDto'
2683
+ Webhook: '#/components/schemas/CreateWebhookIntegrationDto'
2684
+ Zapier: '#/components/schemas/CreateZapierIntegrationDto'
2685
+ Pagerduty: '#/components/schemas/CreatePagerdutyIntegrationDto'
2686
+ GoogleChat: '#/components/schemas/CreateGoogleChatIntegrationDto'
2687
+ Discord: '#/components/schemas/CreateDiscordIntegrationDto'
2688
+ Splunk: '#/components/schemas/CreateSplunkIntegrationDto'
2689
+ PushBullet: '#/components/schemas/CreatePushBulletIntegrationDto'
2690
+ Pushover: '#/components/schemas/CreatePushoverIntegrationDto'
2691
+ Mattermost: '#/components/schemas/CreateMattermostIntegrationDto'
1720
2692
  responses:
1721
2693
  '201':
1722
2694
  description: ''
@@ -1724,6 +2696,14 @@ paths:
1724
2696
  application/json:
1725
2697
  schema:
1726
2698
  $ref: '#/components/schemas/IntegrationDto'
2699
+ default:
2700
+ description: >-
2701
+ An error response. `code` is a member of the published error code
2702
+ vocabulary.
2703
+ content:
2704
+ application/json:
2705
+ schema:
2706
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1727
2707
  security:
1728
2708
  - bearer: []
1729
2709
  summary: Create an Integration
@@ -1747,6 +2727,14 @@ paths:
1747
2727
  application/json:
1748
2728
  schema:
1749
2729
  $ref: '#/components/schemas/IntegrationDto'
2730
+ default:
2731
+ description: >-
2732
+ An error response. `code` is a member of the published error code
2733
+ vocabulary.
2734
+ content:
2735
+ application/json:
2736
+ schema:
2737
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1750
2738
  security:
1751
2739
  - bearer: []
1752
2740
  summary: Get an integration by ID
@@ -1764,23 +2752,41 @@ paths:
1764
2752
  type: number
1765
2753
  requestBody:
1766
2754
  required: true
2755
+ description: >-
2756
+ Integration fields to update. The `type` field selects which shape
2757
+ `data` must take — each integration type accepts a different set of
2758
+ fields.
1767
2759
  content:
1768
2760
  application/json:
1769
2761
  schema:
1770
2762
  oneOf:
1771
- - $ref: '#/components/schemas/UpdateSlackIntegrationSchema'
1772
- title: Slack
1773
- - $ref: '#/components/schemas/UpdateTelegramIntegrationSchema'
1774
- - $ref: '#/components/schemas/UpdateMsTeamsIntegrationSchema'
1775
- - $ref: '#/components/schemas/UpdateWebhookIntegrationSchema'
1776
- - $ref: '#/components/schemas/UpdateZapierIntegrationSchema'
1777
- - $ref: '#/components/schemas/UpdatePagerdutyIntegrationSchema'
1778
- - $ref: '#/components/schemas/UpdateGoogleChatIntegrationSchema'
1779
- - $ref: '#/components/schemas/UpdateDiscordIntegrationSchema'
1780
- - $ref: '#/components/schemas/UpdateSplunkIntegrationSchema'
1781
- - $ref: '#/components/schemas/UpdatePushbulletIntegrationSchema'
1782
- - $ref: '#/components/schemas/UpdatePushoverIntegrationSchema'
1783
- - $ref: '#/components/schemas/UpdateMattermostIntegrationSchema'
2763
+ - $ref: '#/components/schemas/UpdateSlackIntegrationDto'
2764
+ - $ref: '#/components/schemas/UpdateTelegramIntegrationDto'
2765
+ - $ref: '#/components/schemas/UpdateMSTeamsIntegrationDto'
2766
+ - $ref: '#/components/schemas/UpdateWebhookIntegrationDto'
2767
+ - $ref: '#/components/schemas/UpdateZapierIntegrationDto'
2768
+ - $ref: '#/components/schemas/UpdatePagerdutyIntegrationDto'
2769
+ - $ref: '#/components/schemas/UpdateGoogleChatIntegrationDto'
2770
+ - $ref: '#/components/schemas/UpdateDiscordIntegrationDto'
2771
+ - $ref: '#/components/schemas/UpdateSplunkIntegrationDto'
2772
+ - $ref: '#/components/schemas/UpdatePushBulletIntegrationDto'
2773
+ - $ref: '#/components/schemas/UpdatePushoverIntegrationDto'
2774
+ - $ref: '#/components/schemas/UpdateMattermostIntegrationDto'
2775
+ discriminator:
2776
+ propertyName: type
2777
+ mapping:
2778
+ Slack: '#/components/schemas/UpdateSlackIntegrationDto'
2779
+ Telegram: '#/components/schemas/UpdateTelegramIntegrationDto'
2780
+ MSTeams: '#/components/schemas/UpdateMSTeamsIntegrationDto'
2781
+ Webhook: '#/components/schemas/UpdateWebhookIntegrationDto'
2782
+ Zapier: '#/components/schemas/UpdateZapierIntegrationDto'
2783
+ Pagerduty: '#/components/schemas/UpdatePagerdutyIntegrationDto'
2784
+ GoogleChat: '#/components/schemas/UpdateGoogleChatIntegrationDto'
2785
+ Discord: '#/components/schemas/UpdateDiscordIntegrationDto'
2786
+ Splunk: '#/components/schemas/UpdateSplunkIntegrationDto'
2787
+ PushBullet: '#/components/schemas/UpdatePushBulletIntegrationDto'
2788
+ Pushover: '#/components/schemas/UpdatePushoverIntegrationDto'
2789
+ Mattermost: '#/components/schemas/UpdateMattermostIntegrationDto'
1784
2790
  responses:
1785
2791
  '200':
1786
2792
  description: ''
@@ -1788,6 +2794,14 @@ paths:
1788
2794
  application/json:
1789
2795
  schema:
1790
2796
  $ref: '#/components/schemas/IntegrationDto'
2797
+ default:
2798
+ description: >-
2799
+ An error response. `code` is a member of the published error code
2800
+ vocabulary.
2801
+ content:
2802
+ application/json:
2803
+ schema:
2804
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1791
2805
  security:
1792
2806
  - bearer: []
1793
2807
  summary: Update an Integration
@@ -1805,6 +2819,14 @@ paths:
1805
2819
  responses:
1806
2820
  '200':
1807
2821
  description: ''
2822
+ default:
2823
+ description: >-
2824
+ An error response. `code` is a member of the published error code
2825
+ vocabulary.
2826
+ content:
2827
+ application/json:
2828
+ schema:
2829
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1808
2830
  security:
1809
2831
  - bearer: []
1810
2832
  summary: Delete an Integration
@@ -1818,6 +2840,17 @@ paths:
1818
2840
  separately through /v3/integrations.
1819
2841
  operationId: AlertContactsController_list
1820
2842
  parameters:
2843
+ - name: limit
2844
+ required: false
2845
+ in: query
2846
+ description: >-
2847
+ Maximum number of alert contacts to return per page. Default: 50,
2848
+ Min: 1, Max: 200.
2849
+ schema:
2850
+ minimum: 1
2851
+ maximum: 200
2852
+ example: 50
2853
+ type: number
1821
2854
  - name: cursor
1822
2855
  required: false
1823
2856
  in: query
@@ -1831,6 +2864,14 @@ paths:
1831
2864
  application/json:
1832
2865
  schema:
1833
2866
  $ref: '#/components/schemas/AlertContactPaginationDto'
2867
+ default:
2868
+ description: >-
2869
+ An error response. `code` is a member of the published error code
2870
+ vocabulary.
2871
+ content:
2872
+ application/json:
2873
+ schema:
2874
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1834
2875
  security:
1835
2876
  - bearer: []
1836
2877
  summary: List personal alert contacts
@@ -1856,6 +2897,14 @@ paths:
1856
2897
  application/json:
1857
2898
  schema:
1858
2899
  $ref: '#/components/schemas/AlertContactDto'
2900
+ default:
2901
+ description: >-
2902
+ An error response. `code` is a member of the published error code
2903
+ vocabulary.
2904
+ content:
2905
+ application/json:
2906
+ schema:
2907
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1859
2908
  security:
1860
2909
  - bearer: []
1861
2910
  summary: Create a personal alert contact
@@ -1879,6 +2928,14 @@ paths:
1879
2928
  application/json:
1880
2929
  schema:
1881
2930
  $ref: '#/components/schemas/AlertContactDto'
2931
+ default:
2932
+ description: >-
2933
+ An error response. `code` is a member of the published error code
2934
+ vocabulary.
2935
+ content:
2936
+ application/json:
2937
+ schema:
2938
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1882
2939
  security:
1883
2940
  - bearer: []
1884
2941
  summary: Get a personal alert contact by ID
@@ -1907,6 +2964,14 @@ paths:
1907
2964
  application/json:
1908
2965
  schema:
1909
2966
  $ref: '#/components/schemas/AlertContactDto'
2967
+ default:
2968
+ description: >-
2969
+ An error response. `code` is a member of the published error code
2970
+ vocabulary.
2971
+ content:
2972
+ application/json:
2973
+ schema:
2974
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1910
2975
  security:
1911
2976
  - bearer: []
1912
2977
  summary: Update a personal alert contact
@@ -1925,6 +2990,14 @@ paths:
1925
2990
  responses:
1926
2991
  '200':
1927
2992
  description: ''
2993
+ default:
2994
+ description: >-
2995
+ An error response. `code` is a member of the published error code
2996
+ vocabulary.
2997
+ content:
2998
+ application/json:
2999
+ schema:
3000
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1928
3001
  security:
1929
3002
  - bearer: []
1930
3003
  summary: Delete a personal alert contact
@@ -1937,6 +3010,17 @@ paths:
1937
3010
  ascending order
1938
3011
  operationId: TagsController_getTags
1939
3012
  parameters:
3013
+ - name: limit
3014
+ required: false
3015
+ in: query
3016
+ description: >-
3017
+ Maximum number of tags to return per page. Default: 50, Min: 1, Max:
3018
+ 200.
3019
+ schema:
3020
+ minimum: 1
3021
+ maximum: 200
3022
+ example: 50
3023
+ type: number
1940
3024
  - name: cursor
1941
3025
  required: false
1942
3026
  in: query
@@ -1950,6 +3034,14 @@ paths:
1950
3034
  application/json:
1951
3035
  schema:
1952
3036
  $ref: '#/components/schemas/SimpleTagPaginationDto'
3037
+ default:
3038
+ description: >-
3039
+ An error response. `code` is a member of the published error code
3040
+ vocabulary.
3041
+ content:
3042
+ application/json:
3043
+ schema:
3044
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1953
3045
  security:
1954
3046
  - bearer: []
1955
3047
  summary: List user tags
@@ -1969,11 +3061,93 @@ paths:
1969
3061
  responses:
1970
3062
  '204':
1971
3063
  description: Tag deleted successfully
3064
+ default:
3065
+ description: >-
3066
+ An error response. `code` is a member of the published error code
3067
+ vocabulary.
3068
+ content:
3069
+ application/json:
3070
+ schema:
3071
+ $ref: '#/components/schemas/ApiErrorResponseDto'
1972
3072
  security:
1973
3073
  - bearer: []
1974
3074
  summary: Delete a tag
1975
3075
  tags:
1976
3076
  - Tags
3077
+ /third-party-providers:
3078
+ get:
3079
+ description: >-
3080
+ Search the third-party provider catalog by provider or component name.
3081
+ Each provider is identified by its numeric id, and isTracked tells
3082
+ whether the account already monitors it as a third-party service.
3083
+ Results are cached for a minute, so isTracked can lag by up to a minute
3084
+ after a third-party service is created or deleted.
3085
+ operationId: ThirdPartyProvidersController_search
3086
+ parameters:
3087
+ - name: search
3088
+ required: true
3089
+ in: query
3090
+ description: Free-text term matched against provider names and their components.
3091
+ schema:
3092
+ minLength: 1
3093
+ maxLength: 100
3094
+ example: github
3095
+ type: string
3096
+ responses:
3097
+ '200':
3098
+ description: ''
3099
+ content:
3100
+ application/json:
3101
+ schema:
3102
+ $ref: '#/components/schemas/ThirdPartyProviderSearchDto'
3103
+ default:
3104
+ description: >-
3105
+ An error response. `code` is a member of the published error code
3106
+ vocabulary.
3107
+ content:
3108
+ application/json:
3109
+ schema:
3110
+ $ref: '#/components/schemas/ApiErrorResponseDto'
3111
+ security:
3112
+ - bearer: []
3113
+ summary: Search third-party providers
3114
+ tags:
3115
+ - Third-party providers
3116
+ /third-party-providers/{id}:
3117
+ get:
3118
+ description: >-
3119
+ Returns one third-party provider by its numeric id, with its current
3120
+ state and its component tree. Components carry their own id, name and
3121
+ status, and list their children.
3122
+ operationId: ThirdPartyProvidersController_getById
3123
+ parameters:
3124
+ - name: id
3125
+ required: true
3126
+ in: path
3127
+ description: The numeric id of the third-party provider.
3128
+ schema:
3129
+ example: '7'
3130
+ type: string
3131
+ responses:
3132
+ '200':
3133
+ description: ''
3134
+ content:
3135
+ application/json:
3136
+ schema:
3137
+ $ref: '#/components/schemas/ThirdPartyProviderDetailDto'
3138
+ default:
3139
+ description: >-
3140
+ An error response. `code` is a member of the published error code
3141
+ vocabulary.
3142
+ content:
3143
+ application/json:
3144
+ schema:
3145
+ $ref: '#/components/schemas/ApiErrorResponseDto'
3146
+ security:
3147
+ - bearer: []
3148
+ summary: Get a third-party provider
3149
+ tags:
3150
+ - Third-party providers
1977
3151
  info:
1978
3152
  title: UptimeRobot API
1979
3153
  description: ''
@@ -1990,6 +3164,8 @@ tags:
1990
3164
  description: ''
1991
3165
  - name: Integrations
1992
3166
  description: ''
3167
+ - name: Storm Protection
3168
+ description: ''
1993
3169
  servers:
1994
3170
  - url: https://api.uptimerobot.com/v3
1995
3171
  components:
@@ -2002,6 +3178,371 @@ components:
2002
3178
  Enter your API token (without the "Bearer" prefix — it is added
2003
3179
  automatically).
2004
3180
  schemas:
3181
+ ApiErrorResponseDto:
3182
+ type: object
3183
+ properties:
3184
+ code:
3185
+ type: string
3186
+ description: >-
3187
+ A stable, machine-readable error code. Always a member of the
3188
+ published vocabulary.
3189
+ enum:
3190
+ - 000-001
3191
+ - 000-002
3192
+ - 000-003
3193
+ - 000-004
3194
+ - 000-005
3195
+ - 000-006
3196
+ - 000-007
3197
+ - 000-008
3198
+ - 000-009
3199
+ - 000-010
3200
+ - 000-011
3201
+ - 000-012
3202
+ - 000-013
3203
+ - 000-014
3204
+ - 000-015
3205
+ - 003-001
3206
+ - 003-002
3207
+ - 003-003
3208
+ - 003-004
3209
+ - 003-005
3210
+ - 003-006
3211
+ - 003-007
3212
+ - 003-008
3213
+ - 003-009
3214
+ - 003-010
3215
+ - 003-011
3216
+ - 003-012
3217
+ - 003-013
3218
+ - 003-014
3219
+ - 003-015
3220
+ - 003-016
3221
+ - 003-017
3222
+ - 003-018
3223
+ - 003-019
3224
+ - 003-020
3225
+ - 003-021
3226
+ - 004-001
3227
+ - 004-002
3228
+ - 004-033
3229
+ - 004-034
3230
+ - 004-035
3231
+ - 004-036
3232
+ - 004-037
3233
+ - 004-038
3234
+ - 004-039
3235
+ - 004-040
3236
+ - 004-041
3237
+ - 004-042
3238
+ - 004-003
3239
+ - 004-004
3240
+ - 004-005
3241
+ - 004-006
3242
+ - 004-007
3243
+ - 004-008
3244
+ - 004-009
3245
+ - 004-010
3246
+ - 004-011
3247
+ - 004-012
3248
+ - 004-013
3249
+ - 004-014
3250
+ - 004-015
3251
+ - 004-016
3252
+ - 004-017
3253
+ - 004-018
3254
+ - 004-019
3255
+ - 004-020
3256
+ - 004-021
3257
+ - 004-022
3258
+ - 004-023
3259
+ - 004-024
3260
+ - 004-025
3261
+ - 004-026
3262
+ - 004-027
3263
+ - 004-028
3264
+ - 004-029
3265
+ - 004-030
3266
+ - 004-031
3267
+ - 004-032
3268
+ - 004-043
3269
+ - 004-044
3270
+ - 004-045
3271
+ - 004-046
3272
+ - 004-047
3273
+ - 004-048
3274
+ - 005-001
3275
+ - 005-002
3276
+ - 006-001
3277
+ - 009-001
3278
+ - 009-002
3279
+ - 009-003
3280
+ - 009-004
3281
+ - 009-005
3282
+ - 009-006
3283
+ - 009-007
3284
+ - 009-008
3285
+ - 009-009
3286
+ - 009-010
3287
+ - 009-011
3288
+ - 009-012
3289
+ - 009-013
3290
+ - 009-014
3291
+ - 009-015
3292
+ - 009-016
3293
+ - 009-017
3294
+ - 009-022
3295
+ - 009-023
3296
+ - 009-024
3297
+ - 009-025
3298
+ - 009-018
3299
+ - 009-019
3300
+ - 009-020
3301
+ - 009-026
3302
+ - 009-027
3303
+ - 009-028
3304
+ - 009-033
3305
+ - 009-034
3306
+ - 009-021
3307
+ - 009-033
3308
+ - 009-030
3309
+ - 009-036
3310
+ - 009-037
3311
+ - 011-001
3312
+ - 011-002
3313
+ - 011-003
3314
+ - 011-004
3315
+ - 011-005
3316
+ - 011-006
3317
+ - 011-007
3318
+ - 011-008
3319
+ - 011-009
3320
+ - 011-010
3321
+ - 011-011
3322
+ - 011-012
3323
+ - 011-013
3324
+ - 011-014
3325
+ - 011-015
3326
+ - 011-016
3327
+ - 011-017
3328
+ - 011-018
3329
+ - 011-019
3330
+ - 011-020
3331
+ - 011-021
3332
+ - 011-022
3333
+ - 011-023
3334
+ - 011-024
3335
+ - 011-025
3336
+ - 011-026
3337
+ - 011-027
3338
+ - 011-028
3339
+ - 011-029
3340
+ - 011-030
3341
+ - 011-031
3342
+ - 011-032
3343
+ - 011-033
3344
+ - 011-034
3345
+ - 013-001
3346
+ - 013-002
3347
+ - 013-003
3348
+ - 013-004
3349
+ - 013-005
3350
+ - 013-006
3351
+ - 013-007
3352
+ - 013-008
3353
+ - 017-001
3354
+ - 017-002
3355
+ - 018-001
3356
+ - 018-002
3357
+ - 018-003
3358
+ - 018-004
3359
+ - 018-005
3360
+ - 018-006
3361
+ - 018-007
3362
+ - 018-008
3363
+ - 018-009
3364
+ - 018-010
3365
+ - 018-011
3366
+ - 018-012
3367
+ - 018-013
3368
+ - 018-014
3369
+ - 018-015
3370
+ - 021-001
3371
+ - 021-002
3372
+ - 021-003
3373
+ - 021-004
3374
+ - 021-005
3375
+ - 021-006
3376
+ - 021-007
3377
+ - 021-008
3378
+ - 021-009
3379
+ - 021-010
3380
+ - 021-011
3381
+ - 021-012
3382
+ - 021-013
3383
+ - 021-014
3384
+ - 021-015
3385
+ - 021-016
3386
+ - 021-017
3387
+ - 021-018
3388
+ - 021-019
3389
+ - 021-020
3390
+ - 021-021
3391
+ - 021-022
3392
+ - 021-023
3393
+ - 021-024
3394
+ - 021-025
3395
+ - 021-026
3396
+ - 021-027
3397
+ - 021-028
3398
+ - 021-029
3399
+ - 021-030
3400
+ - 021-031
3401
+ - 021-032
3402
+ - 021-033
3403
+ - 021-034
3404
+ - 021-035
3405
+ - 021-036
3406
+ - 021-037
3407
+ - 021-038
3408
+ - 021-039
3409
+ - 021-040
3410
+ - 021-041
3411
+ - 021-042
3412
+ - 021-043
3413
+ - 021-044
3414
+ - 021-045
3415
+ - 021-046
3416
+ - 021-047
3417
+ - 021-048
3418
+ - 021-049
3419
+ - 021-050
3420
+ - 021-051
3421
+ - 021-052
3422
+ - 022-001
3423
+ - 024-001
3424
+ - 024-002
3425
+ - 024-003
3426
+ - 024-004
3427
+ - 024-005
3428
+ - 024-006
3429
+ - 024-007
3430
+ - 024-008
3431
+ - 025-002
3432
+ - 025-003
3433
+ - 025-004
3434
+ - 025-005
3435
+ - 025-006
3436
+ - 025-007
3437
+ - 025-008
3438
+ - 025-009
3439
+ - 025-010
3440
+ - 025-011
3441
+ - 025-012
3442
+ - 025-013
3443
+ - 025-014
3444
+ - 025-015
3445
+ - 025-016
3446
+ - 025-017
3447
+ - 025-018
3448
+ - 025-019
3449
+ - 025-020
3450
+ - 025-021
3451
+ - 025-022
3452
+ - 021-053
3453
+ - 021-054
3454
+ - 021-055
3455
+ - 021-056
3456
+ - 021-057
3457
+ - 021-058
3458
+ - 021-059
3459
+ - 021-060
3460
+ - 021-061
3461
+ - 021-062
3462
+ - 021-065
3463
+ - 021-066
3464
+ - 021-067
3465
+ - 021-068
3466
+ - 021-069
3467
+ - 026-001
3468
+ - 026-002
3469
+ - 026-003
3470
+ - 026-004
3471
+ - 026-005
3472
+ - 026-006
3473
+ - 026-007
3474
+ - 026-008
3475
+ - 026-009
3476
+ - 026-016
3477
+ - 026-017
3478
+ - 026-018
3479
+ - 026-019
3480
+ - 026-020
3481
+ - 027-001
3482
+ - 027-002
3483
+ - 027-003
3484
+ - 027-004
3485
+ - 027-005
3486
+ - 027-006
3487
+ - 027-007
3488
+ - 027-008
3489
+ - 027-009
3490
+ - 027-010
3491
+ - 027-011
3492
+ - 027-012
3493
+ - 027-013
3494
+ - 027-014
3495
+ - 027-015
3496
+ - 027-016
3497
+ - 028-001
3498
+ - 028-002
3499
+ - 029-001
3500
+ - 029-002
3501
+ - 029-003
3502
+ - 029-004
3503
+ - 029-005
3504
+ - 029-006
3505
+ - 029-007
3506
+ - 029-008
3507
+ - 029-009
3508
+ - 029-010
3509
+ - 029-011
3510
+ - 029-012
3511
+ - 029-013
3512
+ - 029-014
3513
+ - 029-015
3514
+ - 030-001
3515
+ - 030-002
3516
+ - 030-003
3517
+ - 030-004
3518
+ - 030-005
3519
+ - 030-006
3520
+ - 030-007
3521
+ - 030-008
3522
+ - 030-009
3523
+ - 031-001
3524
+ - 031-002
3525
+ - 031-003
3526
+ - 031-004
3527
+ - 031-005
3528
+ message:
3529
+ description: >-
3530
+ Human-readable error detail. An array of per-field messages for
3531
+ validation failures, a single string otherwise.
3532
+ oneOf:
3533
+ - type: string
3534
+ - type: array
3535
+ items:
3536
+ type: string
3537
+ statusCode:
3538
+ type: number
3539
+ description: The HTTP status code, present on validation failures.
3540
+ error:
3541
+ type: string
3542
+ description: The HTTP status text, present on validation failures.
3543
+ required:
3544
+ - code
3545
+ - message
2005
3546
  PublicBulkPauseDto:
2006
3547
  type: object
2007
3548
  properties:
@@ -2083,6 +3624,13 @@ components:
2083
3624
  - eu
2084
3625
  - as
2085
3626
  - oc
3627
+ MANUAL_SELECTED:
3628
+ type: boolean
3629
+ description: >-
3630
+ Whether the customer chose REGION explicitly. On update, false means
3631
+ the region was not customer-chosen, so REGION is ignored and the
3632
+ monitor keeps the region it already runs from. Send true to change
3633
+ the region, or omit this field.
2086
3634
  THRESHOLD:
2087
3635
  type: object
2088
3636
  additionalProperties: false
@@ -2101,8 +3649,6 @@ components:
2101
3649
  eu: 6000
2102
3650
  as: 7000
2103
3651
  oc: 8000
2104
- MANUAL_SELECTED:
2105
- type: boolean
2106
3652
  required:
2107
3653
  - REGION
2108
3654
  PublicBulkUpdateDto:
@@ -2267,6 +3813,185 @@ components:
2267
3813
  responseDownloadUrl:
2268
3814
  type: string
2269
3815
  nullable: true
3816
+ assertionDiagnostics:
3817
+ type: object
3818
+ properties:
3819
+ version:
3820
+ type: number
3821
+ minimum: 1
3822
+ maximum: 1
3823
+ logic:
3824
+ type: string
3825
+ enum:
3826
+ - AND
3827
+ - OR
3828
+ summary:
3829
+ type: object
3830
+ properties:
3831
+ passed:
3832
+ type: boolean
3833
+ total:
3834
+ type: integer
3835
+ minimum: 0
3836
+ exclusiveMinimum: false
3837
+ passedCount:
3838
+ type: integer
3839
+ minimum: 0
3840
+ exclusiveMinimum: false
3841
+ failedCount:
3842
+ type: integer
3843
+ minimum: 0
3844
+ exclusiveMinimum: false
3845
+ required:
3846
+ - passed
3847
+ - total
3848
+ - passedCount
3849
+ - failedCount
3850
+ results:
3851
+ type: array
3852
+ items:
3853
+ type: object
3854
+ properties:
3855
+ index:
3856
+ type: integer
3857
+ minimum: 0
3858
+ exclusiveMinimum: false
3859
+ property:
3860
+ type: string
3861
+ source:
3862
+ type: string
3863
+ enum:
3864
+ - body_json
3865
+ - header
3866
+ - status_code
3867
+ - body_text
3868
+ selector:
3869
+ type: string
3870
+ comparison:
3871
+ type: string
3872
+ enum:
3873
+ - equals
3874
+ - not_equals
3875
+ - contains
3876
+ - not_contains
3877
+ - greater_than
3878
+ - less_than
3879
+ - is_null
3880
+ - is_not_null
3881
+ - is_string
3882
+ - is_number
3883
+ - is_boolean
3884
+ - is_array
3885
+ - is_object
3886
+ - is_empty
3887
+ - is_not_empty
3888
+ - length_equals
3889
+ - length_not_equals
3890
+ - length_greater_than
3891
+ - length_less_than
3892
+ - exists
3893
+ - not_exists
3894
+ x-enumNames:
3895
+ - EQUALS
3896
+ - NOT_EQUALS
3897
+ - CONTAINS
3898
+ - NOT_CONTAINS
3899
+ - GREATER_THAN
3900
+ - LESS_THAN
3901
+ - IS_NULL
3902
+ - IS_NOT_NULL
3903
+ - IS_STRING
3904
+ - IS_NUMBER
3905
+ - IS_BOOLEAN
3906
+ - IS_ARRAY
3907
+ - IS_OBJECT
3908
+ - IS_EMPTY
3909
+ - IS_NOT_EMPTY
3910
+ - LENGTH_EQUALS
3911
+ - LENGTH_NOT_EQUALS
3912
+ - LENGTH_GREATER_THAN
3913
+ - LENGTH_LESS_THAN
3914
+ - EXISTS
3915
+ - NOT_EXISTS
3916
+ passed:
3917
+ type: boolean
3918
+ actualTypes:
3919
+ type: array
3920
+ items:
3921
+ type: string
3922
+ enum:
3923
+ - missing
3924
+ - 'null'
3925
+ - boolean
3926
+ - number
3927
+ - string
3928
+ - array
3929
+ - object
3930
+ actualSummary:
3931
+ type: string
3932
+ targetType:
3933
+ type: string
3934
+ enum:
3935
+ - missing
3936
+ - 'null'
3937
+ - boolean
3938
+ - number
3939
+ - string
3940
+ - array
3941
+ - object
3942
+ targetSummary:
3943
+ type: string
3944
+ selectedCount:
3945
+ type: integer
3946
+ minimum: 0
3947
+ exclusiveMinimum: false
3948
+ failedCount:
3949
+ type: integer
3950
+ minimum: 0
3951
+ exclusiveMinimum: false
3952
+ failingSamples:
3953
+ type: array
3954
+ items:
3955
+ type: object
3956
+ properties:
3957
+ path:
3958
+ type: string
3959
+ actualSummary:
3960
+ type: string
3961
+ required:
3962
+ - path
3963
+ - actualSummary
3964
+ failureReason:
3965
+ type: string
3966
+ enum:
3967
+ - no_match
3968
+ - value_present
3969
+ - response_not_json
3970
+ - type_mismatch
3971
+ - comparison_failed
3972
+ - invalid_jsonpath
3973
+ - too_many_matches
3974
+ - evaluation_limit_exceeded
3975
+ - unsupported_value_type
3976
+ - diagnostic_payload_truncated
3977
+ truncated:
3978
+ type: boolean
3979
+ redacted:
3980
+ type: boolean
3981
+ required:
3982
+ - index
3983
+ - property
3984
+ - source
3985
+ - comparison
3986
+ - passed
3987
+ - truncated
3988
+ - redacted
3989
+ required:
3990
+ - version
3991
+ - logic
3992
+ - summary
3993
+ - results
3994
+ nullable: true
2270
3995
  required:
2271
3996
  - url
2272
3997
  - requestHeaders
@@ -2477,6 +4202,9 @@ components:
2477
4202
  PublicSentAlertsResponseDto:
2478
4203
  type: object
2479
4204
  properties:
4205
+ nextLink:
4206
+ type: string
4207
+ nullable: true
2480
4208
  data:
2481
4209
  type: array
2482
4210
  items:
@@ -2502,6 +4230,7 @@ components:
2502
4230
  - channelType
2503
4231
  - status
2504
4232
  required:
4233
+ - nextLink
2505
4234
  - data
2506
4235
  UpdateIncidentCommentRequestDto:
2507
4236
  type: object
@@ -2660,6 +4389,71 @@ components:
2660
4389
  maxLength: 255
2661
4390
  description: Name of the monitor group
2662
4391
  example: Production Monitors
4392
+ StormProtectionSettingsResponseDto:
4393
+ type: object
4394
+ properties:
4395
+ isEnabled:
4396
+ type: boolean
4397
+ thresholdType:
4398
+ type: string
4399
+ enum:
4400
+ - count
4401
+ - percentage
4402
+ x-enumNames:
4403
+ - Count
4404
+ - Percentage
4405
+ thresholdValue:
4406
+ type: integer
4407
+ windowMinutes:
4408
+ type: integer
4409
+ config:
4410
+ type: object
4411
+ properties:
4412
+ groupPooling:
4413
+ type: boolean
4414
+ required:
4415
+ - groupPooling
4416
+ required:
4417
+ - isEnabled
4418
+ - thresholdType
4419
+ - thresholdValue
4420
+ - windowMinutes
4421
+ - config
4422
+ UpdateStormProtectionConfigDto:
4423
+ type: object
4424
+ properties:
4425
+ groupPooling:
4426
+ type: boolean
4427
+ description: >-
4428
+ When enabled, suppressed alerts are pooled into a single grouped
4429
+ notification.
4430
+ UpdateStormProtectionDto:
4431
+ type: object
4432
+ properties:
4433
+ isEnabled:
4434
+ type: boolean
4435
+ description: Enable or disable storm protection (alert grouping).
4436
+ thresholdType:
4437
+ enum:
4438
+ - count
4439
+ - percentage
4440
+ type: string
4441
+ description: How the threshold is measured.
4442
+ thresholdValue:
4443
+ type: number
4444
+ minimum: 1
4445
+ maximum: 1000000
4446
+ description: >-
4447
+ Threshold that triggers grouping. Accepts 1-1000000; the stricter
4448
+ rule (>= 2 for "count", <= 100 for "percentage") is enforced
4449
+ server-side by domain validation.
4450
+ windowMinutes:
4451
+ type: number
4452
+ minimum: 1
4453
+ maximum: 15
4454
+ description: Rolling time window in minutes (1-15).
4455
+ config:
4456
+ $ref: '#/components/schemas/UpdateStormProtectionConfigDto'
2663
4457
  MonitorPaginationDto:
2664
4458
  type: object
2665
4459
  properties:
@@ -2754,6 +4548,7 @@ components:
2754
4548
  maximum: 65535
2755
4549
  exclusiveMaximum: false
2756
4550
  nullable: true
4551
+ portAlertCondition: {}
2757
4552
  gracePeriod:
2758
4553
  type: number
2759
4554
  minimum: 0
@@ -2842,55 +4637,91 @@ components:
2842
4637
  items:
2843
4638
  type: string
2844
4639
  apiAssertions:
2845
- type: object
2846
- properties:
2847
- logic:
2848
- type: string
2849
- enum:
2850
- - AND
2851
- - OR
2852
- checks:
2853
- type: array
2854
- minItems: 1
2855
- maxItems: 5
2856
- items:
2857
- type: object
2858
- properties:
2859
- property:
2860
- type: string
2861
- comparison:
2862
- type: string
2863
- enum:
2864
- - equals
2865
- - not_equals
2866
- - contains
2867
- - not_contains
2868
- - greater_than
2869
- - less_than
2870
- - is_null
2871
- - is_not_null
2872
- x-enumNames:
2873
- - EQUALS
2874
- - NOT_EQUALS
2875
- - CONTAINS
2876
- - NOT_CONTAINS
2877
- - GREATER_THAN
2878
- - LESS_THAN
2879
- - IS_NULL
2880
- - IS_NOT_NULL
2881
- target:
2882
- oneOf:
2883
- - type: string
2884
- - type: number
2885
- - type: boolean
2886
- - {}
2887
- default: null
2888
- required:
2889
- - property
2890
- - comparison
2891
- required:
2892
- - logic
2893
- - checks
4640
+ oneOf:
4641
+ - type: object
4642
+ properties:
4643
+ logic:
4644
+ type: string
4645
+ enum:
4646
+ - AND
4647
+ - OR
4648
+ checks:
4649
+ type: array
4650
+ items:
4651
+ type: object
4652
+ properties:
4653
+ property:
4654
+ type: string
4655
+ comparison:
4656
+ type: string
4657
+ enum:
4658
+ - equals
4659
+ - not_equals
4660
+ - contains
4661
+ - not_contains
4662
+ - greater_than
4663
+ - less_than
4664
+ - is_null
4665
+ - is_not_null
4666
+ - is_string
4667
+ - is_number
4668
+ - is_boolean
4669
+ - is_array
4670
+ - is_object
4671
+ - is_empty
4672
+ - is_not_empty
4673
+ - length_equals
4674
+ - length_not_equals
4675
+ - length_greater_than
4676
+ - length_less_than
4677
+ - exists
4678
+ - not_exists
4679
+ x-enumNames:
4680
+ - EQUALS
4681
+ - NOT_EQUALS
4682
+ - CONTAINS
4683
+ - NOT_CONTAINS
4684
+ - GREATER_THAN
4685
+ - LESS_THAN
4686
+ - IS_NULL
4687
+ - IS_NOT_NULL
4688
+ - IS_STRING
4689
+ - IS_NUMBER
4690
+ - IS_BOOLEAN
4691
+ - IS_ARRAY
4692
+ - IS_OBJECT
4693
+ - IS_EMPTY
4694
+ - IS_NOT_EMPTY
4695
+ - LENGTH_EQUALS
4696
+ - LENGTH_NOT_EQUALS
4697
+ - LENGTH_GREATER_THAN
4698
+ - LENGTH_LESS_THAN
4699
+ - EXISTS
4700
+ - NOT_EXISTS
4701
+ target: {}
4702
+ id:
4703
+ oneOf:
4704
+ - type: string
4705
+ maxLength: 128
4706
+ - type: integer
4707
+ minimum: -9007199254740991
4708
+ exclusiveMinimum: false
4709
+ maximum: 9007199254740991
4710
+ exclusiveMaximum: false
4711
+ index:
4712
+ type: integer
4713
+ minimum: 0
4714
+ exclusiveMinimum: false
4715
+ maximum: 9007199254740991
4716
+ exclusiveMaximum: false
4717
+ required:
4718
+ - property
4719
+ - comparison
4720
+ required:
4721
+ - logic
4722
+ - checks
4723
+ - type: object
4724
+ properties: {}
2894
4725
  sslExpirationPeriodDays:
2895
4726
  type: array
2896
4727
  maxItems: 10
@@ -2975,6 +4806,47 @@ components:
2975
4806
  required:
2976
4807
  - sensitivityThreshold
2977
4808
  - viewport
4809
+ thirdPartyService:
4810
+ type: object
4811
+ properties:
4812
+ trackedComponentIds:
4813
+ type: array
4814
+ items:
4815
+ type: integer
4816
+ nullable: true
4817
+ currentState:
4818
+ type: string
4819
+ enum:
4820
+ - operational
4821
+ - minor
4822
+ - major
4823
+ - maintenance
4824
+ needsReview:
4825
+ type: boolean
4826
+ notify:
4827
+ type: object
4828
+ properties:
4829
+ severity:
4830
+ type: string
4831
+ enum:
4832
+ - all
4833
+ - major
4834
+ - none
4835
+ incrementalUpdates:
4836
+ type: boolean
4837
+ required:
4838
+ - severity
4839
+ - incrementalUpdates
4840
+ maintenanceNotificationsEnabled:
4841
+ type: boolean
4842
+ providerId:
4843
+ type: integer
4844
+ nullable: true
4845
+ required:
4846
+ - currentState
4847
+ - needsReview
4848
+ - notify
4849
+ - providerId
2978
4850
  nullable: true
2979
4851
  regionalData:
2980
4852
  type: object
@@ -3013,6 +4885,12 @@ components:
3013
4885
  exclusiveMaximum: false
3014
4886
  required:
3015
4887
  - REGION
4888
+ heartbeatUrl:
4889
+ description: >-
4890
+ Complete heartbeat ping URL for HEARTBEAT monitors; null for
4891
+ every other type
4892
+ type: string
4893
+ nullable: true
3016
4894
  maintenanceWindows:
3017
4895
  type: array
3018
4896
  items:
@@ -3176,6 +5054,8 @@ components:
3176
5054
  enum:
3177
5055
  - normal
3178
5056
  - compact
5057
+ showMonitorsUnderGroups:
5058
+ type: boolean
3179
5059
  colors:
3180
5060
  type: object
3181
5061
  properties:
@@ -3284,6 +5164,7 @@ components:
3284
5164
  status: {}
3285
5165
  url:
3286
5166
  type: string
5167
+ nullable: true
3287
5168
  currentStateDuration:
3288
5169
  type: number
3289
5170
  lastIncidentId:
@@ -3320,7 +5201,6 @@ components:
3320
5201
  friendlyName:
3321
5202
  type: string
3322
5203
  minLength: 1
3323
- nullable: true
3324
5204
  status: {}
3325
5205
  url:
3326
5206
  type: string
@@ -3447,6 +5327,7 @@ components:
3447
5327
  - responseTimeThreshold
3448
5328
  - config
3449
5329
  - regionalData
5330
+ - heartbeatUrl
3450
5331
  - maintenanceWindows
3451
5332
  - psps
3452
5333
  - id
@@ -3877,6 +5758,155 @@ components:
3877
5758
  - data_points
3878
5759
  - from
3879
5760
  - to
5761
+ MonitorThirdPartyServiceStatusDto:
5762
+ type: object
5763
+ properties:
5764
+ currentState:
5765
+ type: string
5766
+ enum:
5767
+ - operational
5768
+ - minor
5769
+ - major
5770
+ - maintenance
5771
+ required:
5772
+ - currentState
5773
+ MonitorThirdPartyServiceIncidentsDto:
5774
+ type: object
5775
+ properties:
5776
+ data:
5777
+ type: array
5778
+ items:
5779
+ type: object
5780
+ properties:
5781
+ id:
5782
+ type: string
5783
+ title:
5784
+ type: string
5785
+ severity:
5786
+ type: string
5787
+ enum:
5788
+ - minor
5789
+ - major
5790
+ resolved:
5791
+ type: boolean
5792
+ startedAt:
5793
+ type: string
5794
+ resolvedAt:
5795
+ type: string
5796
+ nullable: true
5797
+ updates:
5798
+ type: array
5799
+ items:
5800
+ type: object
5801
+ properties:
5802
+ status:
5803
+ type: string
5804
+ description:
5805
+ type: string
5806
+ createdAt:
5807
+ type: string
5808
+ required:
5809
+ - status
5810
+ - description
5811
+ - createdAt
5812
+ required:
5813
+ - id
5814
+ - title
5815
+ - severity
5816
+ - resolved
5817
+ - startedAt
5818
+ - resolvedAt
5819
+ - updates
5820
+ required:
5821
+ - data
5822
+ MonitorThirdPartyServiceIncidentDetailDto:
5823
+ type: object
5824
+ properties:
5825
+ id:
5826
+ type: string
5827
+ title:
5828
+ type: string
5829
+ severity:
5830
+ type: string
5831
+ enum:
5832
+ - minor
5833
+ - major
5834
+ resolved:
5835
+ type: boolean
5836
+ startedAt:
5837
+ type: string
5838
+ resolvedAt:
5839
+ type: string
5840
+ nullable: true
5841
+ updates:
5842
+ type: array
5843
+ items:
5844
+ type: object
5845
+ properties:
5846
+ status:
5847
+ type: string
5848
+ description:
5849
+ type: string
5850
+ createdAt:
5851
+ type: string
5852
+ required:
5853
+ - status
5854
+ - description
5855
+ - createdAt
5856
+ description:
5857
+ type: string
5858
+ nullable: true
5859
+ affectedComponents:
5860
+ type: array
5861
+ items:
5862
+ type: object
5863
+ properties:
5864
+ id:
5865
+ type: integer
5866
+ name:
5867
+ type: string
5868
+ required:
5869
+ - id
5870
+ - name
5871
+ required:
5872
+ - id
5873
+ - title
5874
+ - severity
5875
+ - resolved
5876
+ - startedAt
5877
+ - resolvedAt
5878
+ - updates
5879
+ - description
5880
+ - affectedComponents
5881
+ MonitorThirdPartyServiceIncidentActivityLogDto:
5882
+ type: object
5883
+ properties:
5884
+ data:
5885
+ type: array
5886
+ items:
5887
+ type: object
5888
+ properties:
5889
+ channel:
5890
+ type: string
5891
+ channelIdentifier:
5892
+ type: string
5893
+ alertContactName:
5894
+ type: string
5895
+ status:
5896
+ type: string
5897
+ enum:
5898
+ - SUCCESS
5899
+ - NOT_DELIVERED
5900
+ timestamp:
5901
+ type: string
5902
+ required:
5903
+ - channel
5904
+ - channelIdentifier
5905
+ - alertContactName
5906
+ - status
5907
+ - timestamp
5908
+ required:
5909
+ - data
3880
5910
  MonitorDto:
3881
5911
  type: object
3882
5912
  properties:
@@ -3963,6 +5993,7 @@ components:
3963
5993
  maximum: 65535
3964
5994
  exclusiveMaximum: false
3965
5995
  nullable: true
5996
+ portAlertCondition: {}
3966
5997
  gracePeriod:
3967
5998
  type: number
3968
5999
  minimum: 0
@@ -4051,55 +6082,91 @@ components:
4051
6082
  items:
4052
6083
  type: string
4053
6084
  apiAssertions:
4054
- type: object
4055
- properties:
4056
- logic:
4057
- type: string
4058
- enum:
4059
- - AND
4060
- - OR
4061
- checks:
4062
- type: array
4063
- minItems: 1
4064
- maxItems: 5
4065
- items:
4066
- type: object
4067
- properties:
4068
- property:
4069
- type: string
4070
- comparison:
4071
- type: string
4072
- enum:
4073
- - equals
4074
- - not_equals
4075
- - contains
4076
- - not_contains
4077
- - greater_than
4078
- - less_than
4079
- - is_null
4080
- - is_not_null
4081
- x-enumNames:
4082
- - EQUALS
4083
- - NOT_EQUALS
4084
- - CONTAINS
4085
- - NOT_CONTAINS
4086
- - GREATER_THAN
4087
- - LESS_THAN
4088
- - IS_NULL
4089
- - IS_NOT_NULL
4090
- target:
4091
- oneOf:
4092
- - type: string
4093
- - type: number
4094
- - type: boolean
4095
- - {}
4096
- default: null
4097
- required:
4098
- - property
4099
- - comparison
4100
- required:
4101
- - logic
4102
- - checks
6085
+ oneOf:
6086
+ - type: object
6087
+ properties:
6088
+ logic:
6089
+ type: string
6090
+ enum:
6091
+ - AND
6092
+ - OR
6093
+ checks:
6094
+ type: array
6095
+ items:
6096
+ type: object
6097
+ properties:
6098
+ property:
6099
+ type: string
6100
+ comparison:
6101
+ type: string
6102
+ enum:
6103
+ - equals
6104
+ - not_equals
6105
+ - contains
6106
+ - not_contains
6107
+ - greater_than
6108
+ - less_than
6109
+ - is_null
6110
+ - is_not_null
6111
+ - is_string
6112
+ - is_number
6113
+ - is_boolean
6114
+ - is_array
6115
+ - is_object
6116
+ - is_empty
6117
+ - is_not_empty
6118
+ - length_equals
6119
+ - length_not_equals
6120
+ - length_greater_than
6121
+ - length_less_than
6122
+ - exists
6123
+ - not_exists
6124
+ x-enumNames:
6125
+ - EQUALS
6126
+ - NOT_EQUALS
6127
+ - CONTAINS
6128
+ - NOT_CONTAINS
6129
+ - GREATER_THAN
6130
+ - LESS_THAN
6131
+ - IS_NULL
6132
+ - IS_NOT_NULL
6133
+ - IS_STRING
6134
+ - IS_NUMBER
6135
+ - IS_BOOLEAN
6136
+ - IS_ARRAY
6137
+ - IS_OBJECT
6138
+ - IS_EMPTY
6139
+ - IS_NOT_EMPTY
6140
+ - LENGTH_EQUALS
6141
+ - LENGTH_NOT_EQUALS
6142
+ - LENGTH_GREATER_THAN
6143
+ - LENGTH_LESS_THAN
6144
+ - EXISTS
6145
+ - NOT_EXISTS
6146
+ target: {}
6147
+ id:
6148
+ oneOf:
6149
+ - type: string
6150
+ maxLength: 128
6151
+ - type: integer
6152
+ minimum: -9007199254740991
6153
+ exclusiveMinimum: false
6154
+ maximum: 9007199254740991
6155
+ exclusiveMaximum: false
6156
+ index:
6157
+ type: integer
6158
+ minimum: 0
6159
+ exclusiveMinimum: false
6160
+ maximum: 9007199254740991
6161
+ exclusiveMaximum: false
6162
+ required:
6163
+ - property
6164
+ - comparison
6165
+ required:
6166
+ - logic
6167
+ - checks
6168
+ - type: object
6169
+ properties: {}
4103
6170
  sslExpirationPeriodDays:
4104
6171
  type: array
4105
6172
  maxItems: 10
@@ -4184,6 +6251,47 @@ components:
4184
6251
  required:
4185
6252
  - sensitivityThreshold
4186
6253
  - viewport
6254
+ thirdPartyService:
6255
+ type: object
6256
+ properties:
6257
+ trackedComponentIds:
6258
+ type: array
6259
+ items:
6260
+ type: integer
6261
+ nullable: true
6262
+ currentState:
6263
+ type: string
6264
+ enum:
6265
+ - operational
6266
+ - minor
6267
+ - major
6268
+ - maintenance
6269
+ needsReview:
6270
+ type: boolean
6271
+ notify:
6272
+ type: object
6273
+ properties:
6274
+ severity:
6275
+ type: string
6276
+ enum:
6277
+ - all
6278
+ - major
6279
+ - none
6280
+ incrementalUpdates:
6281
+ type: boolean
6282
+ required:
6283
+ - severity
6284
+ - incrementalUpdates
6285
+ maintenanceNotificationsEnabled:
6286
+ type: boolean
6287
+ providerId:
6288
+ type: integer
6289
+ nullable: true
6290
+ required:
6291
+ - currentState
6292
+ - needsReview
6293
+ - notify
6294
+ - providerId
4187
6295
  nullable: true
4188
6296
  regionalData:
4189
6297
  type: object
@@ -4222,6 +6330,12 @@ components:
4222
6330
  exclusiveMaximum: false
4223
6331
  required:
4224
6332
  - REGION
6333
+ heartbeatUrl:
6334
+ description: >-
6335
+ Complete heartbeat ping URL for HEARTBEAT monitors; null for every
6336
+ other type
6337
+ type: string
6338
+ nullable: true
4225
6339
  maintenanceWindows:
4226
6340
  type: array
4227
6341
  items:
@@ -4385,6 +6499,8 @@ components:
4385
6499
  enum:
4386
6500
  - normal
4387
6501
  - compact
6502
+ showMonitorsUnderGroups:
6503
+ type: boolean
4388
6504
  colors:
4389
6505
  type: object
4390
6506
  properties:
@@ -4493,6 +6609,7 @@ components:
4493
6609
  status: {}
4494
6610
  url:
4495
6611
  type: string
6612
+ nullable: true
4496
6613
  currentStateDuration:
4497
6614
  type: number
4498
6615
  lastIncidentId:
@@ -4529,7 +6646,6 @@ components:
4529
6646
  friendlyName:
4530
6647
  type: string
4531
6648
  minLength: 1
4532
- nullable: true
4533
6649
  status: {}
4534
6650
  url:
4535
6651
  type: string
@@ -4656,6 +6772,7 @@ components:
4656
6772
  - responseTimeThreshold
4657
6773
  - config
4658
6774
  - regionalData
6775
+ - heartbeatUrl
4659
6776
  - maintenanceWindows
4660
6777
  - psps
4661
6778
  - id
@@ -4759,7 +6876,10 @@ components:
4759
6876
  items:
4760
6877
  type: number
4761
6878
  regionData:
4762
- description: Regional data for monitoring
6879
+ description: >-
6880
+ Regional data for monitoring. Omit it, or send it without REGION,
6881
+ and the region is assigned automatically (currently NA or EU, one
6882
+ region per organization) and never changed on edit.
4763
6883
  allOf:
4764
6884
  - $ref: '#/components/schemas/RegionalDataDto'
4765
6885
  regionalData:
@@ -4857,7 +6977,8 @@ components:
4857
6977
  X-Custom-Header: value
4858
6978
  description: >-
4859
6979
  Custom HTTP headers to be sent in the request. Must be sent as JSON
4860
- object with key-value pairs
6980
+ object with key-value pairs. The serialized JSON must not exceed
6981
+ 3000 characters
4861
6982
  successHttpResponseCodes:
4862
6983
  example:
4863
6984
  - 2xx
@@ -4948,7 +7069,10 @@ components:
4948
7069
  items:
4949
7070
  type: number
4950
7071
  regionData:
4951
- description: Regional data for monitoring
7072
+ description: >-
7073
+ Regional data for monitoring. Omit it, or send it without REGION,
7074
+ and the region is assigned automatically (currently NA or EU, one
7075
+ region per organization) and never changed on edit.
4952
7076
  allOf:
4953
7077
  - $ref: '#/components/schemas/RegionalDataDto'
4954
7078
  regionalData:
@@ -5046,7 +7170,8 @@ components:
5046
7170
  X-Custom-Header: value
5047
7171
  description: >-
5048
7172
  Custom HTTP headers to be sent in the request. Must be sent as JSON
5049
- object with key-value pairs
7173
+ object with key-value pairs. The serialized JSON must not exceed
7174
+ 3000 characters
5050
7175
  successHttpResponseCodes:
5051
7176
  example:
5052
7177
  - 2xx
@@ -5173,7 +7298,10 @@ components:
5173
7298
  items:
5174
7299
  type: number
5175
7300
  regionData:
5176
- description: Regional data for monitoring
7301
+ description: >-
7302
+ Regional data for monitoring. Omit it, or send it without REGION,
7303
+ and the region is assigned automatically (currently NA or EU, one
7304
+ region per organization) and never changed on edit.
5177
7305
  allOf:
5178
7306
  - $ref: '#/components/schemas/RegionalDataDto'
5179
7307
  regionalData:
@@ -5279,7 +7407,10 @@ components:
5279
7407
  items:
5280
7408
  type: number
5281
7409
  regionData:
5282
- description: Regional data for monitoring
7410
+ description: >-
7411
+ Regional data for monitoring. Omit it, or send it without REGION,
7412
+ and the region is assigned automatically (currently NA or EU, one
7413
+ region per organization) and never changed on edit.
5283
7414
  allOf:
5284
7415
  - $ref: '#/components/schemas/RegionalDataDto'
5285
7416
  regionalData:
@@ -5392,7 +7523,10 @@ components:
5392
7523
  items:
5393
7524
  type: number
5394
7525
  regionData:
5395
- description: Regional data for monitoring
7526
+ description: >-
7527
+ Regional data for monitoring. Omit it, or send it without REGION,
7528
+ and the region is assigned automatically (currently NA or EU, one
7529
+ region per organization) and never changed on edit.
5396
7530
  allOf:
5397
7531
  - $ref: '#/components/schemas/RegionalDataDto'
5398
7532
  regionalData:
@@ -5567,7 +7701,10 @@ components:
5567
7701
  items:
5568
7702
  type: number
5569
7703
  regionData:
5570
- description: Regional data for monitoring
7704
+ description: >-
7705
+ Regional data for monitoring. Omit it, or send it without REGION,
7706
+ and the region is assigned automatically (currently NA or EU, one
7707
+ region per organization) and never changed on edit.
5571
7708
  allOf:
5572
7709
  - $ref: '#/components/schemas/RegionalDataDto'
5573
7710
  regionalData:
@@ -5627,15 +7764,15 @@ components:
5627
7764
  - type
5628
7765
  - url
5629
7766
  - config
5630
- AssertionCheckDto:
7767
+ PublicApiAssertionCheckDto:
5631
7768
  type: object
5632
7769
  properties:
5633
7770
  property:
5634
7771
  type: string
5635
7772
  maxLength: 500
5636
7773
  description: >-
5637
- JSONPath expression to extract value from response (must start with
5638
- $)
7774
+ Assertion source: safe JSONPath, headers.<name>, status_code, or
7775
+ body
5639
7776
  example: $.data.status
5640
7777
  comparison:
5641
7778
  enum:
@@ -5647,17 +7784,43 @@ components:
5647
7784
  - less_than
5648
7785
  - is_null
5649
7786
  - is_not_null
7787
+ - is_string
7788
+ - is_number
7789
+ - is_boolean
7790
+ - is_array
7791
+ - is_object
7792
+ - is_empty
7793
+ - is_not_empty
7794
+ - length_equals
7795
+ - length_not_equals
7796
+ - length_greater_than
7797
+ - length_less_than
7798
+ - exists
7799
+ - not_exists
5650
7800
  type: string
5651
7801
  description: Comparison operator
5652
7802
  example: equals
5653
7803
  target:
5654
- type: object
5655
- description: Expected value for comparison (ignored for is_null/is_not_null)
5656
- example: active
7804
+ description: >-
7805
+ Expected native JSON value. Arrays and objects are supported for
7806
+ body-JSON equality and containment; omit target for null, type,
7807
+ existence, and empty comparisons.
7808
+ example:
7809
+ - active
7810
+ - role: primary
7811
+ oneOf:
7812
+ - type: string
7813
+ nullable: true
7814
+ - type: number
7815
+ - type: boolean
7816
+ - type: array
7817
+ items: {}
7818
+ - type: object
7819
+ additionalProperties: true
5657
7820
  required:
5658
7821
  - property
5659
7822
  - comparison
5660
- ApiAssertionsDto:
7823
+ PublicApiAssertionsDto:
5661
7824
  type: object
5662
7825
  properties:
5663
7826
  logic:
@@ -5668,12 +7831,10 @@ components:
5668
7831
  description: Logic for combining assertions
5669
7832
  example: AND
5670
7833
  checks:
5671
- minItems: 1
5672
- maxItems: 5
5673
7834
  description: Array of assertion checks (1-5)
5674
7835
  type: array
5675
7836
  items:
5676
- $ref: '#/components/schemas/AssertionCheckDto'
7837
+ $ref: '#/components/schemas/PublicApiAssertionCheckDto'
5677
7838
  required:
5678
7839
  - logic
5679
7840
  - checks
@@ -5683,7 +7844,7 @@ components:
5683
7844
  apiAssertions:
5684
7845
  description: API monitor assertions configuration
5685
7846
  allOf:
5686
- - $ref: '#/components/schemas/ApiAssertionsDto'
7847
+ - $ref: '#/components/schemas/PublicApiAssertionsDto'
5687
7848
  sslExpirationPeriodDays:
5688
7849
  maxItems: 10
5689
7850
  description: SSL expiration period in days (0-365, max 10 items)
@@ -5753,7 +7914,10 @@ components:
5753
7914
  items:
5754
7915
  type: number
5755
7916
  regionData:
5756
- description: Regional data for monitoring
7917
+ description: >-
7918
+ Regional data for monitoring. Omit it, or send it without REGION,
7919
+ and the region is assigned automatically (currently NA or EU, one
7920
+ region per organization) and never changed on edit.
5757
7921
  allOf:
5758
7922
  - $ref: '#/components/schemas/RegionalDataDto'
5759
7923
  regionalData:
@@ -5850,7 +8014,8 @@ components:
5850
8014
  X-Custom-Header: value
5851
8015
  description: >-
5852
8016
  Custom HTTP headers to be sent in the request. Must be sent as JSON
5853
- object with key-value pairs
8017
+ object with key-value pairs. The serialized JSON must not exceed
8018
+ 3000 characters
5854
8019
  successHttpResponseCodes:
5855
8020
  example:
5856
8021
  - 2xx
@@ -5969,7 +8134,10 @@ components:
5969
8134
  items:
5970
8135
  type: number
5971
8136
  regionData:
5972
- description: Regional data for monitoring
8137
+ description: >-
8138
+ Regional data for monitoring. Omit it, or send it without REGION,
8139
+ and the region is assigned automatically (currently NA or EU, one
8140
+ region per organization) and never changed on edit.
5973
8141
  allOf:
5974
8142
  - $ref: '#/components/schemas/RegionalDataDto'
5975
8143
  regionalData:
@@ -6143,7 +8311,10 @@ components:
6143
8311
  items:
6144
8312
  type: number
6145
8313
  regionData:
6146
- description: Regional data for monitoring
8314
+ description: >-
8315
+ Regional data for monitoring. Omit it, or send it without REGION,
8316
+ and the region is assigned automatically (currently NA or EU, one
8317
+ region per organization) and never changed on edit.
6147
8318
  allOf:
6148
8319
  - $ref: '#/components/schemas/RegionalDataDto'
6149
8320
  regionalData:
@@ -6156,55 +8327,255 @@ components:
6156
8327
  example: na
6157
8328
  deprecated: true
6158
8329
  description: >-
6159
- Region for monitoring: na (North America), eu (Europe), as (Asia),
6160
- oc (Oceania). Note: If both regionalData and regionData are
6161
- provided, regionData takes priority.
6162
- responseTimeThreshold:
8330
+ Region for monitoring: na (North America), eu (Europe), as (Asia),
8331
+ oc (Oceania). Note: If both regionalData and regionData are
8332
+ provided, regionData takes priority.
8333
+ responseTimeThreshold:
8334
+ type: number
8335
+ minimum: 0
8336
+ maximum: 60000
8337
+ description: >-
8338
+ Response time threshold in milliseconds. When provided, the value is
8339
+ applied to all active regions as regionData.THRESHOLD. Always
8340
+ returns 0 — use regionData.THRESHOLD for per-region control.
8341
+ groupId:
8342
+ type: number
8343
+ example: 0
8344
+ minimum: 0
8345
+ description: Monitor group ID to assign the monitor to. Default is 0 (no group).
8346
+ customFields:
8347
+ type: object
8348
+ additionalProperties:
8349
+ type: string
8350
+ example:
8351
+ environment: production
8352
+ team: platform
8353
+ description: >-
8354
+ Custom key-value metadata for the monitor. Max 20 keys. Keys:
8355
+ alphanumeric + underscore + hyphen, max 64 chars. Values: max 255
8356
+ chars. Paid plans only.
8357
+ type:
8358
+ type: string
8359
+ enum:
8360
+ - VISUAL_COMPARISON
8361
+ example: VISUAL_COMPARISON
8362
+ url:
8363
+ type: string
8364
+ example: https://example.com
8365
+ maxLength: 10000
8366
+ description: URL of the page to capture and compare
8367
+ config:
8368
+ description: >-
8369
+ Visual comparison configuration — sensitivity, viewport and optional
8370
+ area to compare
8371
+ allOf:
8372
+ - $ref: '#/components/schemas/VisualComparisonMonitorConfigDto'
8373
+ required:
8374
+ - friendlyName
8375
+ - interval
8376
+ - type
8377
+ - url
8378
+ - config
8379
+ ThirdPartyServiceNotifyDto:
8380
+ type: object
8381
+ properties:
8382
+ severity:
8383
+ type: string
8384
+ enum:
8385
+ - all
8386
+ - major
8387
+ - none
8388
+ example: major
8389
+ description: >-
8390
+ Which provider incidents notify: every severity (all), only major
8391
+ outages (major), or none.
8392
+ incrementalUpdates:
8393
+ type: boolean
8394
+ example: true
8395
+ description: Also notify on incremental updates of an incident already notified.
8396
+ required:
8397
+ - severity
8398
+ - incrementalUpdates
8399
+ CreateThirdPartyServiceConfigDto:
8400
+ type: object
8401
+ properties:
8402
+ providerId:
8403
+ type: number
8404
+ minimum: 1
8405
+ maximum: 9007199254740991
8406
+ example: 4317
8407
+ description: >-
8408
+ The provider to track: isdown's numeric provider id, as returned by
8409
+ the third-party provider catalog.
8410
+ trackedComponentIds:
8411
+ nullable: true
8412
+ example:
8413
+ - 555
8414
+ - 556
8415
+ description: >-
8416
+ Component ids to scope tracking to (isdown components.id, not
8417
+ external_id). Omit to track every component.
8418
+ type: array
8419
+ items:
8420
+ type: number
8421
+ notify:
8422
+ description: Notification tuning. Omit to use the defaults.
8423
+ allOf:
8424
+ - $ref: '#/components/schemas/ThirdPartyServiceNotifyDto'
8425
+ required:
8426
+ - providerId
8427
+ ThirdPartyServiceMonitorConfigDto:
8428
+ type: object
8429
+ properties:
8430
+ thirdPartyService:
8431
+ description: >-
8432
+ Third party service configuration: the isdown provider to track and,
8433
+ optionally, which of its components to scope tracking to.
8434
+ allOf:
8435
+ - $ref: '#/components/schemas/CreateThirdPartyServiceConfigDto'
8436
+ required:
8437
+ - thirdPartyService
8438
+ CreateThirdPartyServiceMonitorDto:
8439
+ type: object
8440
+ properties:
8441
+ type:
8442
+ type: string
8443
+ enum:
8444
+ - THIRD_PARTY_SERVICE
8445
+ example: THIRD_PARTY_SERVICE
8446
+ config:
8447
+ description: >-
8448
+ Third party service configuration.
8449
+ `config.thirdPartyService.providerId` (required) names the isdown
8450
+ provider to track; `trackedComponentIds` optionally scopes tracking
8451
+ to specific components; `notify` tunes notifications.
8452
+ allOf:
8453
+ - $ref: '#/components/schemas/ThirdPartyServiceMonitorConfigDto'
8454
+ assignedAlertContacts:
8455
+ description: >-
8456
+ Alert contacts to be assigned to the monitor. Omit to inherit the
8457
+ account default contact.
8458
+ type: array
8459
+ items:
8460
+ $ref: '#/components/schemas/AlertContactSettings'
8461
+ required:
8462
+ - type
8463
+ - config
8464
+ PermissiveVisualComparisonFieldsDto:
8465
+ type: object
8466
+ properties:
8467
+ sensitivityThreshold:
8468
+ type: number
8469
+ minimum: 0
8470
+ maximum: 100
8471
+ viewport:
8472
+ type: string
8473
+ enum:
8474
+ - desktop
8475
+ - mobile
8476
+ areaCoordinates:
8477
+ $ref: '#/components/schemas/VisualComparisonAreaCoordinatesDto'
8478
+ ThirdPartyServiceConfigDto:
8479
+ type: object
8480
+ properties:
8481
+ trackedComponentIds:
8482
+ nullable: true
8483
+ example:
8484
+ - 555
8485
+ - 556
8486
+ description: >-
8487
+ Component ids to scope tracking to (isdown components.id, not
8488
+ external_id). Every id must belong to the monitor provider. Omit to
8489
+ leave the scope unchanged, set to null or [] to track every
8490
+ component.
8491
+ type: array
8492
+ items:
8493
+ type: number
8494
+ notify:
8495
+ description: >-
8496
+ Notification tuning. Replaces the stored value as a whole. Omit to
8497
+ leave unchanged.
8498
+ allOf:
8499
+ - $ref: '#/components/schemas/ThirdPartyServiceNotifyDto'
8500
+ maintenanceNotificationsEnabled:
8501
+ type: boolean
8502
+ example: true
8503
+ description: >-
8504
+ Notify when the provider schedules or updates a maintenance. Omit to
8505
+ leave unchanged.
8506
+ PermissiveMonitorConfigDto:
8507
+ type: object
8508
+ properties:
8509
+ dnsRecords:
8510
+ description: DNS records configuration. DNS monitors only. Send null to remove.
8511
+ nullable: true
8512
+ allOf:
8513
+ - $ref: '#/components/schemas/DnsRecordsDto'
8514
+ sslExpirationPeriodDays:
8515
+ maxItems: 10
8516
+ description: >-
8517
+ Days before certificate expiry to send SSL expiration reminders
8518
+ (0-365, max 10 items). Requires the top-level
8519
+ `sslExpirationReminder` flag to be enabled. HTTP, Keyword and API
8520
+ monitors only. Send null to remove.
8521
+ nullable: true
8522
+ example:
8523
+ - 7
8524
+ - 14
8525
+ - 30
8526
+ type: array
8527
+ items:
8528
+ type: number
8529
+ maximum: 365
8530
+ minimum: 0
8531
+ apiAssertions:
8532
+ nullable: true
8533
+ description: >-
8534
+ API monitor assertions configuration. Required for API monitors —
8535
+ the merged config must still contain it. Send null to remove.
8536
+ allOf:
8537
+ - $ref: '#/components/schemas/PublicApiAssertionsDto'
8538
+ udp:
8539
+ description: UDP monitor configuration. UDP monitors only. Send null to remove.
8540
+ nullable: true
8541
+ allOf:
8542
+ - $ref: '#/components/schemas/UdpConfigFieldsDto'
8543
+ ipVersion:
8544
+ type: string
8545
+ enum:
8546
+ - ipv4Only
8547
+ - ipv6Only
8548
+ description: >-
8549
+ IP version preference. Omit for default behavior (IPv4 priority,
8550
+ falls back to IPv6). Not supported by DNS, Heartbeat, Visual
8551
+ Comparison or third-party service monitors. Send null to remove.
8552
+ nullable: true
8553
+ example: ipv4Only
8554
+ applicationErrorRetries:
6163
8555
  type: number
6164
8556
  minimum: 0
6165
- maximum: 60000
8557
+ maximum: 3
6166
8558
  description: >-
6167
- Response time threshold in milliseconds. When provided, the value is
6168
- applied to all active regions as regionData.THRESHOLD. Always
6169
- returns 0 — use regionData.THRESHOLD for per-region control.
6170
- groupId:
6171
- type: number
6172
- example: 0
6173
- minimum: 0
6174
- description: Monitor group ID to assign the monitor to. Default is 0 (no group).
6175
- customFields:
6176
- type: object
6177
- additionalProperties:
6178
- type: string
6179
- example:
6180
- environment: production
6181
- team: platform
8559
+ Number of retries on application errors (HTTP 4xx/5xx). 0-3.
8560
+ Connection errors always retry 3 times regardless of this setting.
8561
+ HTTP, Keyword and API monitors only. Send null to remove.
8562
+ nullable: true
8563
+ example: 1
8564
+ visualComparison:
6182
8565
  description: >-
6183
- Custom key-value metadata for the monitor. Max 20 keys. Keys:
6184
- alphanumeric + underscore + hyphen, max 64 chars. Values: max 255
6185
- chars. Paid plans only.
6186
- type:
6187
- type: string
6188
- enum:
6189
- - VISUAL_COMPARISON
6190
- example: VISUAL_COMPARISON
6191
- url:
6192
- type: string
6193
- example: https://example.com
6194
- maxLength: 10000
6195
- description: URL of the page to capture and compare
6196
- config:
8566
+ Visual comparison configuration. Visual Comparison monitors only.
8567
+ Send null to remove.
8568
+ nullable: true
8569
+ allOf:
8570
+ - $ref: '#/components/schemas/PermissiveVisualComparisonFieldsDto'
8571
+ thirdPartyService:
6197
8572
  description: >-
6198
- Visual comparison configuration — sensitivity, viewport and optional
6199
- area to compare
8573
+ Third party service configuration - the isdown provider to track
8574
+ and, optionally, which of its components to scope tracking to. Third
8575
+ party services only. Send null to remove.
8576
+ nullable: true
6200
8577
  allOf:
6201
- - $ref: '#/components/schemas/VisualComparisonMonitorConfigDto'
6202
- required:
6203
- - friendlyName
6204
- - interval
6205
- - type
6206
- - url
6207
- - config
8578
+ - $ref: '#/components/schemas/ThirdPartyServiceConfigDto'
6208
8579
  UpdateMonitorDto:
6209
8580
  type: object
6210
8581
  properties:
@@ -6231,6 +8602,7 @@ components:
6231
8602
  - API
6232
8603
  - UDP
6233
8604
  - VISUAL_COMPARISON
8605
+ - THIRD_PARTY_SERVICE
6234
8606
  type: string
6235
8607
  example: HTTP
6236
8608
  port:
@@ -6238,6 +8610,15 @@ components:
6238
8610
  minimum: 1
6239
8611
  maximum: 65535
6240
8612
  description: Required for Port and UDP monitors
8613
+ portAlertCondition:
8614
+ enum:
8615
+ - CLOSED
8616
+ - OPEN
8617
+ type: string
8618
+ example: CLOSED
8619
+ description: >-
8620
+ Alerting condition for Port monitors. Only valid when type is Port;
8621
+ defaults to CLOSED when omitted.
6241
8622
  keywordType:
6242
8623
  enum:
6243
8624
  - ALERT_EXISTS
@@ -6340,7 +8721,8 @@ components:
6340
8721
  type: object
6341
8722
  description: >-
6342
8723
  Custom HTTP headers to be sent in the request. Must be sent as JSON
6343
- object with key-value pairs
8724
+ object with key-value pairs. The serialized JSON must not exceed
8725
+ 3000 characters
6344
8726
  successHttpResponseCodes:
6345
8727
  example:
6346
8728
  - 2xx
@@ -6404,7 +8786,10 @@ components:
6404
8786
  example: na
6405
8787
  deprecated: true
6406
8788
  regionData:
6407
- description: Regional data for monitoring
8789
+ description: >-
8790
+ Regional data for monitoring. Omit it, or send it without REGION,
8791
+ and the region is assigned automatically (currently NA or EU, one
8792
+ region per organization) and never changed on edit.
6408
8793
  allOf:
6409
8794
  - $ref: '#/components/schemas/RegionalDataDto'
6410
8795
  groupId:
@@ -6424,11 +8809,19 @@ components:
6424
8809
  environment: production
6425
8810
  team: platform
6426
8811
  config:
6427
- type: object
8812
+ nullable: true
6428
8813
  description: >-
6429
- Monitor configuration patch. Top-level shallow merge with existing
6430
- config: omit keys to leave unchanged, set a key to null to remove
6431
- it, or send `config: null` to clear all config.
8814
+ Monitor configuration patch. Accepted keys depend on the monitor
8815
+ type - HTTP/Keyword: sslExpirationPeriodDays, ipVersion,
8816
+ applicationErrorRetries. API: apiAssertions,
8817
+ sslExpirationPeriodDays, ipVersion, applicationErrorRetries. DNS:
8818
+ dnsRecords. UDP: udp, ipVersion. PING/PORT: ipVersion. Visual
8819
+ Comparison: visualComparison. Third party service:
8820
+ thirdPartyService. Heartbeat: none. Top-level shallow merge with
8821
+ existing config: omit keys to leave unchanged, set a key to null to
8822
+ remove it, or send `config: null` to clear all config.
8823
+ allOf:
8824
+ - $ref: '#/components/schemas/PermissiveMonitorConfigDto'
6432
8825
  PspPaginationDto:
6433
8826
  type: object
6434
8827
  properties:
@@ -6525,6 +8918,8 @@ components:
6525
8918
  enum:
6526
8919
  - normal
6527
8920
  - compact
8921
+ showMonitorsUnderGroups:
8922
+ type: boolean
6528
8923
  colors:
6529
8924
  type: object
6530
8925
  properties:
@@ -6714,6 +9109,8 @@ components:
6714
9109
  enum:
6715
9110
  - normal
6716
9111
  - compact
9112
+ showMonitorsUnderGroups:
9113
+ type: boolean
6717
9114
  colors:
6718
9115
  type: object
6719
9116
  properties:
@@ -6847,6 +9244,14 @@ components:
6847
9244
  example: normal
6848
9245
  title: Density
6849
9246
  description: The density of the page
9247
+ showMonitorsUnderGroups:
9248
+ type: boolean
9249
+ example: false
9250
+ title: Show monitors under their groups
9251
+ description: >-
9252
+ Group the monitors on the status page home screen under their
9253
+ monitor groups instead of listing them flat. Omit it to keep the
9254
+ current value.
6850
9255
  ColorsCustomSettingsDto:
6851
9256
  type: object
6852
9257
  properties:
@@ -6954,20 +9359,34 @@ components:
6954
9359
  type: object
6955
9360
  properties:
6956
9361
  monitorIds:
6957
- description: List of monitor IDs to be assigned to the PSP
9362
+ description: >-
9363
+ List of monitor IDs to be assigned to the PSP. `[0]` on its own is
9364
+ the sentinel for "every monitor in the account"; an empty array
9365
+ detaches all of them. In multipart/form-data, repeat the field
9366
+ (`monitorIds=1&monitorIds=2`) or use the bracket suffix
9367
+ (`monitorIds[]=1`); `monitorIds[]=` with no value is the empty
9368
+ array.
6958
9369
  type: array
6959
9370
  items:
6960
9371
  type: number
9372
+ maximum: 2147483647
9373
+ minimum: 0
6961
9374
  tagIds:
6962
- description: List of tag IDs to be assigned to the PSP
9375
+ description: >-
9376
+ List of tag IDs to be assigned to the PSP. Uses the same multipart
9377
+ encoding as `monitorIds`.
6963
9378
  type: array
6964
9379
  items:
6965
9380
  type: number
9381
+ maximum: 2147483647
9382
+ minimum: 1
6966
9383
  autoAddMonitors:
6967
9384
  type: boolean
6968
9385
  description: >-
6969
9386
  If enabled all monitors (old and new) will be added to PSP
6970
- automatically. In this case "monitorIds" property will be ignored
9387
+ automatically. An explicit "monitorIds" wins over this flag when
9388
+ both are sent — including an empty "monitorIds", which detaches
9389
+ every monitor.
6971
9390
  friendlyName:
6972
9391
  type: string
6973
9392
  maxLength: 255
@@ -7014,13 +9433,15 @@ components:
7014
9433
  description: Available only for a Custom Domain status page
7015
9434
  sort:
7016
9435
  type: string
7017
- example: FriendlyNameAsc
7018
9436
  enum:
7019
9437
  - FriendlyNameAsc
7020
9438
  - FriendlyNameDesc
7021
9439
  - StatusUpDownPaused
7022
9440
  - StatusDownUpPaused
7023
- description: Sort monitors by friendly name or their statuses
9441
+ example: FriendlyNameAsc
9442
+ description: >-
9443
+ Sort monitors by friendly name or their statuses. Manual is
9444
+ read-only — a manual order can only be arranged in the dashboard.
7024
9445
  status:
7025
9446
  enum:
7026
9447
  - PAUSED
@@ -7066,20 +9487,34 @@ components:
7066
9487
  type: object
7067
9488
  properties:
7068
9489
  monitorIds:
7069
- description: List of monitor IDs to be assigned to the PSP
9490
+ description: >-
9491
+ List of monitor IDs to be assigned to the PSP. `[0]` on its own is
9492
+ the sentinel for "every monitor in the account"; an empty array
9493
+ detaches all of them. In multipart/form-data, repeat the field
9494
+ (`monitorIds=1&monitorIds=2`) or use the bracket suffix
9495
+ (`monitorIds[]=1`); `monitorIds[]=` with no value is the empty
9496
+ array.
7070
9497
  type: array
7071
9498
  items:
7072
9499
  type: number
9500
+ maximum: 2147483647
9501
+ minimum: 0
7073
9502
  tagIds:
7074
- description: List of tag IDs to be assigned to the PSP
9503
+ description: >-
9504
+ List of tag IDs to be assigned to the PSP. Uses the same multipart
9505
+ encoding as `monitorIds`.
7075
9506
  type: array
7076
9507
  items:
7077
9508
  type: number
9509
+ maximum: 2147483647
9510
+ minimum: 1
7078
9511
  autoAddMonitors:
7079
9512
  type: boolean
7080
9513
  description: >-
7081
9514
  If enabled all monitors (old and new) will be added to PSP
7082
- automatically. In this case "monitorIds" property will be ignored
9515
+ automatically. An explicit "monitorIds" wins over this flag when
9516
+ both are sent — including an empty "monitorIds", which detaches
9517
+ every monitor.
7083
9518
  friendlyName:
7084
9519
  type: string
7085
9520
  maxLength: 255
@@ -7126,13 +9561,15 @@ components:
7126
9561
  description: Available only for a Custom Domain status page
7127
9562
  sort:
7128
9563
  type: string
7129
- example: FriendlyNameAsc
7130
9564
  enum:
7131
9565
  - FriendlyNameAsc
7132
9566
  - FriendlyNameDesc
7133
9567
  - StatusUpDownPaused
7134
9568
  - StatusDownUpPaused
7135
- description: Sort monitors by friendly name or their statuses
9569
+ example: FriendlyNameAsc
9570
+ description: >-
9571
+ Sort monitors by friendly name or their statuses. Manual is
9572
+ read-only — a manual order can only be arranged in the dashboard.
7136
9573
  status:
7137
9574
  enum:
7138
9575
  - PAUSED
@@ -7713,9 +10150,21 @@ components:
7713
10150
  fullName:
7714
10151
  type: string
7715
10152
  monitorsCount:
10153
+ description: >-
10154
+ Monitors this account is using. Third party services are counted
10155
+ separately, in dependencyMonitorsCount, because they spend their own
10156
+ allowance rather than a monitor slot.
7716
10157
  type: number
7717
10158
  monitorLimit:
7718
10159
  type: number
10160
+ dependencyMonitorsCount:
10161
+ description: Third party services this account is tracking.
10162
+ type: number
10163
+ dependencyMonitorLimit:
10164
+ description: >-
10165
+ Third party services this account may track. Independent of
10166
+ monitorLimit — spending one does not reduce the other.
10167
+ type: number
7719
10168
  smsCredits:
7720
10169
  type: number
7721
10170
  activeSubscription:
@@ -7743,6 +10192,8 @@ components:
7743
10192
  - fullName
7744
10193
  - monitorsCount
7745
10194
  - monitorLimit
10195
+ - dependencyMonitorsCount
10196
+ - dependencyMonitorLimit
7746
10197
  - smsCredits
7747
10198
  - activeSubscription
7748
10199
  AlertContactDto:
@@ -7754,7 +10205,12 @@ components:
7754
10205
  friendlyName:
7755
10206
  type: string
7756
10207
  nullable: true
7757
- type: {}
10208
+ type:
10209
+ description: >-
10210
+ Alert-contact type. Mobile push responses retain MobileAppOld (iOS)
10211
+ and MobileApp (Android) through October 10, 2026; consumers should
10212
+ also accept MobileAppIOS and MobileAppAndroid before responses
10213
+ switch to those canonical names after the deadline.
7758
10214
  value:
7759
10215
  type: string
7760
10216
  nullable: true
@@ -7840,7 +10296,13 @@ components:
7840
10296
  type: string
7841
10297
  value:
7842
10298
  type: string
7843
- type: {}
10299
+ type:
10300
+ description: >-
10301
+ Alert-contact type. Mobile push responses retain MobileAppOld
10302
+ (iOS) and MobileApp (Android) through October 10, 2026;
10303
+ consumers should also accept MobileAppIOS and MobileAppAndroid
10304
+ before responses switch to those canonical names after the
10305
+ deadline.
7844
10306
  status: {}
7845
10307
  threshold:
7846
10308
  type: number
@@ -7878,7 +10340,13 @@ components:
7878
10340
  type: string
7879
10341
  nullable: true
7880
10342
  enableNotificationsFor: {}
7881
- type: {}
10343
+ type:
10344
+ description: >-
10345
+ Alert-contact type. Mobile push responses retain MobileAppOld
10346
+ (iOS) and MobileApp (Android) through October 10, 2026;
10347
+ consumers should also accept MobileAppIOS and MobileAppAndroid
10348
+ before responses switch to those canonical names after the
10349
+ deadline.
7882
10350
  status: {}
7883
10351
  sslExpirationReminder:
7884
10352
  type: boolean
@@ -7929,7 +10397,12 @@ components:
7929
10397
  type: string
7930
10398
  nullable: true
7931
10399
  enableNotificationsFor: {}
7932
- type: {}
10400
+ type:
10401
+ description: >-
10402
+ Alert-contact type. Mobile push responses retain MobileAppOld (iOS)
10403
+ and MobileApp (Android) through October 10, 2026; consumers should
10404
+ also accept MobileAppIOS and MobileAppAndroid before responses
10405
+ switch to those canonical names after the deadline.
7933
10406
  status: {}
7934
10407
  sslExpirationReminder:
7935
10408
  type: boolean
@@ -7998,9 +10471,9 @@ components:
7998
10471
  type: object
7999
10472
  properties:
8000
10473
  type:
10474
+ type: string
8001
10475
  enum:
8002
10476
  - Slack
8003
- type: string
8004
10477
  data:
8005
10478
  $ref: '#/components/schemas/SlackBaseIntegrationDto'
8006
10479
  required:
@@ -8029,9 +10502,9 @@ components:
8029
10502
  type: object
8030
10503
  properties:
8031
10504
  type:
10505
+ type: string
8032
10506
  enum:
8033
10507
  - Telegram
8034
- type: string
8035
10508
  data:
8036
10509
  $ref: '#/components/schemas/TelegramBaseIntegrationDto'
8037
10510
  required:
@@ -8063,13 +10536,13 @@ components:
8063
10536
  example: https://
8064
10537
  required:
8065
10538
  - webhookURL
8066
- CreateMsTeamsIntegrationDto:
10539
+ CreateMSTeamsIntegrationDto:
8067
10540
  type: object
8068
10541
  properties:
8069
10542
  type:
10543
+ type: string
8070
10544
  enum:
8071
10545
  - MSTeams
8072
- type: string
8073
10546
  data:
8074
10547
  $ref: '#/components/schemas/MsTeamsBaseIntegrationDto'
8075
10548
  required:
@@ -8115,9 +10588,9 @@ components:
8115
10588
  type: object
8116
10589
  properties:
8117
10590
  type:
10591
+ type: string
8118
10592
  enum:
8119
10593
  - Webhook
8120
- type: string
8121
10594
  data:
8122
10595
  $ref: '#/components/schemas/WebhookBaseIntegrationDto'
8123
10596
  required:
@@ -8151,9 +10624,9 @@ components:
8151
10624
  type: object
8152
10625
  properties:
8153
10626
  type:
10627
+ type: string
8154
10628
  enum:
8155
10629
  - Zapier
8156
- type: string
8157
10630
  data:
8158
10631
  $ref: '#/components/schemas/ZapierBaseIntegrationDto'
8159
10632
  required:
@@ -8199,9 +10672,9 @@ components:
8199
10672
  type: object
8200
10673
  properties:
8201
10674
  type:
10675
+ type: string
8202
10676
  enum:
8203
10677
  - Pagerduty
8204
- type: string
8205
10678
  data:
8206
10679
  $ref: '#/components/schemas/CreatePagerdutyBaseIntegrationDto'
8207
10680
  required:
@@ -8243,9 +10716,9 @@ components:
8243
10716
  type: object
8244
10717
  properties:
8245
10718
  type:
10719
+ type: string
8246
10720
  enum:
8247
10721
  - GoogleChat
8248
- type: string
8249
10722
  data:
8250
10723
  $ref: '#/components/schemas/GoogleChatBaseIntegrationDto'
8251
10724
  required:
@@ -8283,9 +10756,9 @@ components:
8283
10756
  type: object
8284
10757
  properties:
8285
10758
  type:
10759
+ type: string
8286
10760
  enum:
8287
10761
  - Discord
8288
- type: string
8289
10762
  data:
8290
10763
  $ref: '#/components/schemas/DiscordBaseIntegrationDto'
8291
10764
  required:
@@ -8319,9 +10792,9 @@ components:
8319
10792
  type: object
8320
10793
  properties:
8321
10794
  type:
10795
+ type: string
8322
10796
  enum:
8323
10797
  - Splunk
8324
- type: string
8325
10798
  data:
8326
10799
  $ref: '#/components/schemas/SplunkBaseIntegrationDto'
8327
10800
  required:
@@ -8353,13 +10826,13 @@ components:
8353
10826
  example: '1234567890'
8354
10827
  required:
8355
10828
  - accessToken
8356
- CreatePushbulletIntegrationDto:
10829
+ CreatePushBulletIntegrationDto:
8357
10830
  type: object
8358
10831
  properties:
8359
10832
  type:
10833
+ type: string
8360
10834
  enum:
8361
10835
  - PushBullet
8362
- type: string
8363
10836
  data:
8364
10837
  $ref: '#/components/schemas/PushbulletBaseIntegrationDto'
8365
10838
  required:
@@ -8403,9 +10876,9 @@ components:
8403
10876
  type: object
8404
10877
  properties:
8405
10878
  type:
10879
+ type: string
8406
10880
  enum:
8407
10881
  - Pushover
8408
- type: string
8409
10882
  data:
8410
10883
  $ref: '#/components/schemas/CreatePushoverBaseIntegrationDto'
8411
10884
  required:
@@ -8443,9 +10916,9 @@ components:
8443
10916
  type: object
8444
10917
  properties:
8445
10918
  type:
10919
+ type: string
8446
10920
  enum:
8447
10921
  - Mattermost
8448
- type: string
8449
10922
  data:
8450
10923
  $ref: '#/components/schemas/MattermostBaseIntegrationDto'
8451
10924
  required:
@@ -8476,16 +10949,17 @@ components:
8476
10949
  customValue:
8477
10950
  type: string
8478
10951
  maxLength: 5000
8479
- UpdateSlackIntegrationSchema:
10952
+ UpdateSlackIntegrationDto:
8480
10953
  type: object
8481
10954
  properties:
8482
10955
  type:
10956
+ type: string
8483
10957
  enum:
8484
10958
  - Slack
8485
- type: string
8486
10959
  data:
8487
10960
  $ref: '#/components/schemas/UpdateSlackIntegrationDataDto'
8488
10961
  required:
10962
+ - type
8489
10963
  - data
8490
10964
  UpdateTelegramIntegrationDataDto:
8491
10965
  type: object
@@ -8506,16 +10980,17 @@ components:
8506
10980
  type: boolean
8507
10981
  description: Send a notification about SSL & Domain expiry
8508
10982
  example: true
8509
- UpdateTelegramIntegrationSchema:
10983
+ UpdateTelegramIntegrationDto:
8510
10984
  type: object
8511
10985
  properties:
8512
10986
  type:
10987
+ type: string
8513
10988
  enum:
8514
10989
  - Telegram
8515
- type: string
8516
10990
  data:
8517
10991
  $ref: '#/components/schemas/UpdateTelegramIntegrationDataDto'
8518
10992
  required:
10993
+ - type
8519
10994
  - data
8520
10995
  UpdateMsTeamsIntegrationDataDto:
8521
10996
  type: object
@@ -8541,16 +11016,17 @@ components:
8541
11016
  maxLength: 1500
8542
11017
  description: The Microsoft Teams Webhook URL
8543
11018
  example: https://
8544
- UpdateMsTeamsIntegrationSchema:
11019
+ UpdateMSTeamsIntegrationDto:
8545
11020
  type: object
8546
11021
  properties:
8547
11022
  type:
11023
+ type: string
8548
11024
  enum:
8549
11025
  - MSTeams
8550
- type: string
8551
11026
  data:
8552
11027
  $ref: '#/components/schemas/UpdateMsTeamsIntegrationDataDto'
8553
11028
  required:
11029
+ - type
8554
11030
  - data
8555
11031
  UpdateWebhookIntegrationDataDto:
8556
11032
  type: object
@@ -8585,16 +11061,17 @@ components:
8585
11061
  customHeaders:
8586
11062
  type: object
8587
11063
  nullable: true
8588
- UpdateWebhookIntegrationSchema:
11064
+ UpdateWebhookIntegrationDto:
8589
11065
  type: object
8590
11066
  properties:
8591
11067
  type:
11068
+ type: string
8592
11069
  enum:
8593
11070
  - Webhook
8594
- type: string
8595
11071
  data:
8596
11072
  $ref: '#/components/schemas/UpdateWebhookIntegrationDataDto'
8597
11073
  required:
11074
+ - type
8598
11075
  - data
8599
11076
  UpdateZapierIntegrationDataDto:
8600
11077
  type: object
@@ -8618,16 +11095,17 @@ components:
8618
11095
  hookURL:
8619
11096
  type: string
8620
11097
  maxLength: 1500
8621
- UpdateZapierIntegrationSchema:
11098
+ UpdateZapierIntegrationDto:
8622
11099
  type: object
8623
11100
  properties:
8624
11101
  type:
11102
+ type: string
8625
11103
  enum:
8626
11104
  - Zapier
8627
- type: string
8628
11105
  data:
8629
11106
  $ref: '#/components/schemas/UpdateZapierIntegrationDataDto'
8630
11107
  required:
11108
+ - type
8631
11109
  - data
8632
11110
  UpdatePagerdutyIntegrationDataDto:
8633
11111
  type: object
@@ -8663,18 +11141,19 @@ components:
8663
11141
  type: boolean
8664
11142
  description: Auto-resolve incidents after up event
8665
11143
  example: true
8666
- UpdatePagerdutyIntegrationSchema:
11144
+ UpdatePagerdutyIntegrationDto:
8667
11145
  type: object
8668
11146
  properties:
8669
11147
  type:
11148
+ type: string
8670
11149
  enum:
8671
11150
  - Pagerduty
8672
- type: string
8673
11151
  data:
8674
11152
  $ref: '#/components/schemas/UpdatePagerdutyIntegrationDataDto'
8675
11153
  required:
11154
+ - type
8676
11155
  - data
8677
- PartialTypeClass:
11156
+ UpdateGoogleChatIntegrationDataDto:
8678
11157
  type: object
8679
11158
  properties:
8680
11159
  friendlyName:
@@ -8703,16 +11182,17 @@ components:
8703
11182
  maxLength: 5000
8704
11183
  description: Optional. Text that will be added to body of each notification.
8705
11184
  example: This is a custom value
8706
- UpdateGoogleChatIntegrationSchema:
11185
+ UpdateGoogleChatIntegrationDto:
8707
11186
  type: object
8708
11187
  properties:
8709
11188
  type:
11189
+ type: string
8710
11190
  enum:
8711
11191
  - GoogleChat
8712
- type: string
8713
11192
  data:
8714
- $ref: '#/components/schemas/PartialTypeClass'
11193
+ $ref: '#/components/schemas/UpdateGoogleChatIntegrationDataDto'
8715
11194
  required:
11195
+ - type
8716
11196
  - data
8717
11197
  UpdateDiscordIntegrationDataDto:
8718
11198
  type: object
@@ -8739,26 +11219,49 @@ components:
8739
11219
  maxLength: 60
8740
11220
  sslExpirationReminder:
8741
11221
  type: boolean
8742
- UpdateDiscordIntegrationSchema:
11222
+ UpdateDiscordIntegrationDto:
8743
11223
  type: object
8744
11224
  properties:
8745
11225
  type:
11226
+ type: string
8746
11227
  enum:
8747
11228
  - Discord
8748
- type: string
8749
11229
  data:
8750
11230
  $ref: '#/components/schemas/UpdateDiscordIntegrationDataDto'
8751
11231
  required:
11232
+ - type
8752
11233
  - data
8753
- UpdateSplunkIntegrationSchema:
11234
+ UpdateSplunkIntegrationDataDto:
11235
+ type: object
11236
+ properties:
11237
+ friendlyName:
11238
+ type: string
11239
+ maxLength: 60
11240
+ description: The friendly name of the integration
11241
+ example: My Integration from API
11242
+ enableNotificationsFor:
11243
+ enum:
11244
+ - UpAndDown
11245
+ - Down
11246
+ - Up
11247
+ - None
11248
+ type: string
11249
+ sslExpirationReminder:
11250
+ type: boolean
11251
+ description: Send a notification about SSL & Domain expiry
11252
+ example: true
11253
+ urlToNotify:
11254
+ type: string
11255
+ maxLength: 1500
11256
+ UpdateSplunkIntegrationDto:
8754
11257
  type: object
8755
11258
  properties:
8756
11259
  type:
11260
+ type: string
8757
11261
  enum:
8758
11262
  - Splunk
8759
- type: string
8760
11263
  data:
8761
- $ref: '#/components/schemas/PartialTypeClass'
11264
+ $ref: '#/components/schemas/UpdateSplunkIntegrationDataDto'
8762
11265
  required:
8763
11266
  - type
8764
11267
  - data
@@ -8786,16 +11289,17 @@ components:
8786
11289
  maxLength: 1500
8787
11290
  description: The Pushbullet Access Token
8788
11291
  example: '1234567890'
8789
- UpdatePushbulletIntegrationSchema:
11292
+ UpdatePushBulletIntegrationDto:
8790
11293
  type: object
8791
11294
  properties:
8792
11295
  type:
11296
+ type: string
8793
11297
  enum:
8794
11298
  - PushBullet
8795
- type: string
8796
11299
  data:
8797
11300
  $ref: '#/components/schemas/UpdatePushbulletIntegrationDataDto'
8798
11301
  required:
11302
+ - type
8799
11303
  - data
8800
11304
  UpdatePushoverIntegrationDataDto:
8801
11305
  type: object
@@ -8829,16 +11333,17 @@ components:
8829
11333
  - High
8830
11334
  - Emergency
8831
11335
  type: string
8832
- UpdatePushoverIntegrationSchema:
11336
+ UpdatePushoverIntegrationDto:
8833
11337
  type: object
8834
11338
  properties:
8835
11339
  type:
11340
+ type: string
8836
11341
  enum:
8837
11342
  - Pushover
8838
- type: string
8839
11343
  data:
8840
11344
  $ref: '#/components/schemas/UpdatePushoverIntegrationDataDto'
8841
11345
  required:
11346
+ - type
8842
11347
  - data
8843
11348
  UpdateMattermostIntegrationDataDto:
8844
11349
  type: object
@@ -8865,16 +11370,17 @@ components:
8865
11370
  maxLength: 60
8866
11371
  sslExpirationReminder:
8867
11372
  type: boolean
8868
- UpdateMattermostIntegrationSchema:
11373
+ UpdateMattermostIntegrationDto:
8869
11374
  type: object
8870
11375
  properties:
8871
11376
  type:
11377
+ type: string
8872
11378
  enum:
8873
11379
  - Mattermost
8874
- type: string
8875
11380
  data:
8876
11381
  $ref: '#/components/schemas/UpdateMattermostIntegrationDataDto'
8877
11382
  required:
11383
+ - type
8878
11384
  - data
8879
11385
  AlertContactPaginationDto:
8880
11386
  type: object
@@ -8893,7 +11399,13 @@ components:
8893
11399
  friendlyName:
8894
11400
  type: string
8895
11401
  nullable: true
8896
- type: {}
11402
+ type:
11403
+ description: >-
11404
+ Alert-contact type. Mobile push responses retain MobileAppOld
11405
+ (iOS) and MobileApp (Android) through October 10, 2026;
11406
+ consumers should also accept MobileAppIOS and MobileAppAndroid
11407
+ before responses switch to those canonical names after the
11408
+ deadline.
8897
11409
  value:
8898
11410
  type: string
8899
11411
  nullable: true
@@ -8965,12 +11477,18 @@ components:
8965
11477
  - Email
8966
11478
  - ProSms
8967
11479
  - Voice
11480
+ - MobileAppIOS
11481
+ - MobileAppAndroid
8968
11482
  - MobileAppOld
8969
11483
  - MobileApp
8970
11484
  type: string
8971
11485
  description: >-
8972
- Personal alert-contact type. Email and push (MobileAppOld/MobileApp)
8973
- are creatable here; Pro SMS and voice require phone verification.
11486
+ Personal alert-contact type. Email and mobile push for iOS or
11487
+ Android are creatable here; Pro SMS and voice require phone
11488
+ verification. Use MobileAppIOS or MobileAppAndroid for mobile push.
11489
+ DEPRECATED: MobileAppOld (use MobileAppIOS) and MobileApp (use
11490
+ MobileAppAndroid) are accepted through October 10, 2026 and will be
11491
+ rejected after that date.
8974
11492
  friendlyName:
8975
11493
  type: string
8976
11494
  description: Display name of the alert contact
@@ -9054,3 +11572,119 @@ components:
9054
11572
  required:
9055
11573
  - data
9056
11574
  - nextCursorId
11575
+ ThirdPartyProviderSearchDto:
11576
+ type: object
11577
+ properties:
11578
+ data:
11579
+ type: array
11580
+ items:
11581
+ type: object
11582
+ properties:
11583
+ id:
11584
+ type: integer
11585
+ name:
11586
+ type: string
11587
+ logoUrl:
11588
+ type: string
11589
+ nullable: true
11590
+ statusPageUrl:
11591
+ type: string
11592
+ state:
11593
+ type: string
11594
+ enum:
11595
+ - operational
11596
+ - minor
11597
+ - major
11598
+ - maintenance
11599
+ matchedComponent:
11600
+ type: object
11601
+ properties:
11602
+ id:
11603
+ type: integer
11604
+ name:
11605
+ type: string
11606
+ required:
11607
+ - id
11608
+ - name
11609
+ nullable: true
11610
+ isTracked:
11611
+ type: boolean
11612
+ required:
11613
+ - id
11614
+ - name
11615
+ - logoUrl
11616
+ - statusPageUrl
11617
+ - state
11618
+ - matchedComponent
11619
+ - isTracked
11620
+ required:
11621
+ - data
11622
+ ThirdPartyProviderDetailDto:
11623
+ type: object
11624
+ properties:
11625
+ id:
11626
+ type: integer
11627
+ name:
11628
+ type: string
11629
+ logoUrl:
11630
+ type: string
11631
+ nullable: true
11632
+ statusPageUrl:
11633
+ type: string
11634
+ state:
11635
+ type: string
11636
+ enum:
11637
+ - operational
11638
+ - minor
11639
+ - major
11640
+ - maintenance
11641
+ components:
11642
+ type: array
11643
+ items:
11644
+ type: object
11645
+ properties:
11646
+ id:
11647
+ type: integer
11648
+ name:
11649
+ type: string
11650
+ status:
11651
+ type: string
11652
+ enum:
11653
+ - operational
11654
+ - minor
11655
+ - major
11656
+ - maintenance
11657
+ - unknown
11658
+ children:
11659
+ type: array
11660
+ items:
11661
+ type: object
11662
+ properties:
11663
+ id:
11664
+ type: integer
11665
+ name:
11666
+ type: string
11667
+ status:
11668
+ type: string
11669
+ enum:
11670
+ - operational
11671
+ - minor
11672
+ - major
11673
+ - maintenance
11674
+ - unknown
11675
+ required:
11676
+ - id
11677
+ - name
11678
+ - status
11679
+ required:
11680
+ - id
11681
+ - name
11682
+ - status
11683
+ - children
11684
+ required:
11685
+ - id
11686
+ - name
11687
+ - logoUrl
11688
+ - statusPageUrl
11689
+ - state
11690
+ - components