context.dev 2.2.0 → 2.4.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +9 -9
  4. data/lib/context_dev/client.rb +7 -2
  5. data/lib/context_dev/internal/type/base_model.rb +5 -5
  6. data/lib/context_dev/models/monitor_create_params.rb +28 -3
  7. data/lib/context_dev/models/monitor_create_response.rb +96 -4
  8. data/lib/context_dev/models/monitor_list_account_runs_response.rb +19 -98
  9. data/lib/context_dev/models/monitor_list_response.rb +100 -4
  10. data/lib/context_dev/models/monitor_list_runs_response.rb +19 -96
  11. data/lib/context_dev/models/monitor_retrieve_change_response.rb +10 -10
  12. data/lib/context_dev/models/monitor_retrieve_response.rb +97 -4
  13. data/lib/context_dev/models/monitor_update_params.rb +28 -3
  14. data/lib/context_dev/models/monitor_update_response.rb +96 -4
  15. data/lib/context_dev/models/parse_handle_params.rb +194 -0
  16. data/lib/context_dev/models/parse_handle_response.rb +132 -0
  17. data/lib/context_dev/models/web_web_crawl_md_params.rb +16 -6
  18. data/lib/context_dev/models/web_web_scrape_html_params.rb +16 -6
  19. data/lib/context_dev/models/web_web_scrape_md_params.rb +16 -6
  20. data/lib/context_dev/models/web_web_scrape_md_response.rb +11 -1
  21. data/lib/context_dev/models/webhook_delivery.rb +109 -0
  22. data/lib/context_dev/models.rb +4 -0
  23. data/lib/context_dev/resources/monitors.rb +3 -2
  24. data/lib/context_dev/resources/parse.rb +59 -0
  25. data/lib/context_dev/resources/web.rb +19 -4
  26. data/lib/context_dev/version.rb +1 -1
  27. data/lib/context_dev.rb +4 -0
  28. data/rbi/context_dev/client.rbi +6 -2
  29. data/rbi/context_dev/models/monitor_create_params.rbi +85 -5
  30. data/rbi/context_dev/models/monitor_create_response.rbi +234 -6
  31. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +27 -192
  32. data/rbi/context_dev/models/monitor_list_response.rbi +235 -5
  33. data/rbi/context_dev/models/monitor_list_runs_response.rbi +27 -192
  34. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +12 -15
  35. data/rbi/context_dev/models/monitor_retrieve_response.rbi +234 -6
  36. data/rbi/context_dev/models/monitor_update_params.rbi +85 -5
  37. data/rbi/context_dev/models/monitor_update_response.rbi +234 -6
  38. data/rbi/context_dev/models/parse_handle_params.rbi +339 -0
  39. data/rbi/context_dev/models/parse_handle_response.rbi +377 -0
  40. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +26 -7
  41. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +26 -7
  42. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +26 -7
  43. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +12 -0
  44. data/rbi/context_dev/models/webhook_delivery.rbi +172 -0
  45. data/rbi/context_dev/models.rbi +4 -0
  46. data/rbi/context_dev/resources/monitors.rbi +3 -2
  47. data/rbi/context_dev/resources/parse.rbi +58 -0
  48. data/rbi/context_dev/resources/web.rbi +22 -7
  49. data/sig/context_dev/client.rbs +2 -0
  50. data/sig/context_dev/models/monitor_create_params.rbs +32 -3
  51. data/sig/context_dev/models/monitor_create_response.rbs +85 -6
  52. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +15 -68
  53. data/sig/context_dev/models/monitor_list_response.rbs +85 -6
  54. data/sig/context_dev/models/monitor_list_runs_response.rbs +15 -68
  55. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +8 -10
  56. data/sig/context_dev/models/monitor_retrieve_response.rbs +85 -6
  57. data/sig/context_dev/models/monitor_update_params.rbs +32 -3
  58. data/sig/context_dev/models/monitor_update_response.rbs +85 -6
  59. data/sig/context_dev/models/parse_handle_params.rbs +244 -0
  60. data/sig/context_dev/models/parse_handle_response.rbs +159 -0
  61. data/sig/context_dev/models/web_web_crawl_md_params.rbs +13 -2
  62. data/sig/context_dev/models/web_web_scrape_html_params.rbs +13 -2
  63. data/sig/context_dev/models/web_web_scrape_md_params.rbs +13 -2
  64. data/sig/context_dev/models/web_web_scrape_md_response.rbs +5 -0
  65. data/sig/context_dev/models/webhook_delivery.rbs +81 -0
  66. data/sig/context_dev/models.rbs +4 -0
  67. data/sig/context_dev/resources/parse.rbs +19 -0
  68. metadata +14 -2
@@ -139,23 +139,27 @@ module ContextDev
139
139
  sig { returns(T.nilable(Time)) }
140
140
  attr_accessor :started_at
141
141
 
142
- # The webhook delivery attempted for a change detected by this run. Omitted when
143
- # no webhook was attempted, including historical runs created before delivery
144
- # tracking was added.
142
+ # All webhook deliveries attempted by this run — one per subscribed event that
143
+ # fired. Omitted when no webhook was attempted, including runs created before
144
+ # event selection was added.
145
+ sig { returns(T.nilable(T::Array[ContextDev::WebhookDelivery])) }
146
+ attr_reader :webhook_deliveries
147
+
145
148
  sig do
146
- returns(
147
- T.nilable(
148
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
149
- )
150
- )
149
+ params(
150
+ webhook_deliveries: T::Array[ContextDev::WebhookDelivery::OrHash]
151
+ ).void
151
152
  end
153
+ attr_writer :webhook_deliveries
154
+
155
+ # Deprecated: use `webhook_deliveries`, which records every attempt now that a run
156
+ # can deliver multiple events. Omitted when no webhook was attempted, including
157
+ # historical runs created before delivery tracking was added.
158
+ sig { returns(T.nilable(ContextDev::WebhookDelivery)) }
152
159
  attr_reader :webhook_delivery
153
160
 
154
161
  sig do
155
- params(
156
- webhook_delivery:
157
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::OrHash
158
- ).void
162
+ params(webhook_delivery: ContextDev::WebhookDelivery::OrHash).void
159
163
  end
160
164
  attr_writer :webhook_delivery
161
165
 
@@ -185,8 +189,8 @@ module ContextDev
185
189
  ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::OrSymbol
186
190
  ),
187
191
  started_at: T.nilable(Time),
188
- webhook_delivery:
189
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::OrHash
192
+ webhook_deliveries: T::Array[ContextDev::WebhookDelivery::OrHash],
193
+ webhook_delivery: ContextDev::WebhookDelivery::OrHash
190
194
  ).returns(T.attached_class)
191
195
  end
192
196
  def self.new(
@@ -211,9 +215,13 @@ module ContextDev
211
215
  # Why a skipped run never executed; null unless status is `skipped`.
212
216
  skip_reason: nil,
213
217
  started_at: nil,
214
- # The webhook delivery attempted for a change detected by this run. Omitted when
215
- # no webhook was attempted, including historical runs created before delivery
216
- # tracking was added.
218
+ # All webhook deliveries attempted by this run — one per subscribed event that
219
+ # fired. Omitted when no webhook was attempted, including runs created before
220
+ # event selection was added.
221
+ webhook_deliveries: nil,
222
+ # Deprecated: use `webhook_deliveries`, which records every attempt now that a run
223
+ # can deliver multiple events. Omitted when no webhook was attempted, including
224
+ # historical runs created before delivery tracking was added.
217
225
  webhook_delivery: nil
218
226
  )
219
227
  end
@@ -245,8 +253,8 @@ module ContextDev
245
253
  ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::TaggedSymbol
246
254
  ),
247
255
  started_at: T.nilable(Time),
248
- webhook_delivery:
249
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
256
+ webhook_deliveries: T::Array[ContextDev::WebhookDelivery],
257
+ webhook_delivery: ContextDev::WebhookDelivery
250
258
  }
251
259
  )
252
260
  end
@@ -477,179 +485,6 @@ module ContextDev
477
485
  def self.values
478
486
  end
479
487
  end
480
-
481
- class WebhookDelivery < ContextDev::Internal::Type::BaseModel
482
- OrHash =
483
- T.type_alias do
484
- T.any(
485
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery,
486
- ContextDev::Internal::AnyHash
487
- )
488
- end
489
-
490
- sig { returns(Time) }
491
- attr_accessor :attempted_at
492
-
493
- sig do
494
- returns(
495
- T.nilable(
496
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error
497
- )
498
- )
499
- end
500
- attr_reader :error
501
-
502
- sig do
503
- params(
504
- error:
505
- T.nilable(
506
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error::OrHash
507
- )
508
- ).void
509
- end
510
- attr_writer :error
511
-
512
- # Identifier sent in the X-Context-Id header.
513
- sig { returns(String) }
514
- attr_accessor :event_id
515
-
516
- # The endpoint's final HTTP response status, or null when no response was
517
- # received.
518
- sig { returns(T.nilable(Integer)) }
519
- attr_accessor :http_status
520
-
521
- # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
522
- # response; failed means no HTTP response was received; skipped_unsafe_url means
523
- # the URL failed the public-endpoint safety check.
524
- sig do
525
- returns(
526
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
527
- )
528
- end
529
- attr_accessor :status
530
-
531
- # The webhook delivery attempted for a change detected by this run. Omitted when
532
- # no webhook was attempted, including historical runs created before delivery
533
- # tracking was added.
534
- sig do
535
- params(
536
- attempted_at: Time,
537
- error:
538
- T.nilable(
539
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error::OrHash
540
- ),
541
- event_id: String,
542
- http_status: T.nilable(Integer),
543
- status:
544
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::OrSymbol
545
- ).returns(T.attached_class)
546
- end
547
- def self.new(
548
- attempted_at:,
549
- error:,
550
- # Identifier sent in the X-Context-Id header.
551
- event_id:,
552
- # The endpoint's final HTTP response status, or null when no response was
553
- # received.
554
- http_status:,
555
- # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
556
- # response; failed means no HTTP response was received; skipped_unsafe_url means
557
- # the URL failed the public-endpoint safety check.
558
- status:
559
- )
560
- end
561
-
562
- sig do
563
- override.returns(
564
- {
565
- attempted_at: Time,
566
- error:
567
- T.nilable(
568
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error
569
- ),
570
- event_id: String,
571
- http_status: T.nilable(Integer),
572
- status:
573
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
574
- }
575
- )
576
- end
577
- def to_hash
578
- end
579
-
580
- class Error < ContextDev::Internal::Type::BaseModel
581
- OrHash =
582
- T.type_alias do
583
- T.any(
584
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error,
585
- ContextDev::Internal::AnyHash
586
- )
587
- end
588
-
589
- sig { returns(String) }
590
- attr_accessor :code
591
-
592
- sig { returns(String) }
593
- attr_accessor :message
594
-
595
- sig do
596
- params(code: String, message: String).returns(T.attached_class)
597
- end
598
- def self.new(code:, message:)
599
- end
600
-
601
- sig { override.returns({ code: String, message: String }) }
602
- def to_hash
603
- end
604
- end
605
-
606
- # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
607
- # response; failed means no HTTP response was received; skipped_unsafe_url means
608
- # the URL failed the public-endpoint safety check.
609
- module Status
610
- extend ContextDev::Internal::Type::Enum
611
-
612
- TaggedSymbol =
613
- T.type_alias do
614
- T.all(
615
- Symbol,
616
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status
617
- )
618
- end
619
- OrSymbol = T.type_alias { T.any(Symbol, String) }
620
-
621
- DELIVERED =
622
- T.let(
623
- :delivered,
624
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
625
- )
626
- REJECTED =
627
- T.let(
628
- :rejected,
629
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
630
- )
631
- FAILED =
632
- T.let(
633
- :failed,
634
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
635
- )
636
- SKIPPED_UNSAFE_URL =
637
- T.let(
638
- :skipped_unsafe_url,
639
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
640
- )
641
-
642
- sig do
643
- override.returns(
644
- T::Array[
645
- ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
646
- ]
647
- )
648
- end
649
- def self.values
650
- end
651
- end
652
- end
653
488
  end
654
489
  end
655
490
  end
@@ -43,6 +43,10 @@ module ContextDev
43
43
  sig { returns(String) }
44
44
  attr_accessor :summary
45
45
 
46
+ # User-defined tags for grouping and filtering monitors and their changes.
47
+ sig { returns(T::Array[String]) }
48
+ attr_accessor :tags
49
+
46
50
  sig do
47
51
  returns(
48
52
  ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::TaggedSymbol
@@ -158,18 +162,11 @@ module ContextDev
158
162
  sig { params(removed_urls: T::Array[String]).void }
159
163
  attr_writer :removed_urls
160
164
 
161
- # User-defined tags for grouping and filtering monitors and their changes.
162
- sig { returns(T.nilable(T::Array[String])) }
163
- attr_reader :tags
164
-
165
- sig { params(tags: T::Array[String]).void }
166
- attr_writer :tags
167
-
168
165
  # A detected change. `mode` is the constant `web`; `target_type` and
169
166
  # `change_detection_type` describe the change, and which optional fields are
170
167
  # present depends on them (page: `diff` + excerpts; sitemap:
171
168
  # `added_urls`/`removed_urls`; semantic:
172
- # `query`/`confidence`/`importance`/`evidence`/`matched_urls`).
169
+ # `confidence`/`importance`/`evidence`/`matched_urls`).
173
170
  sig do
174
171
  params(
175
172
  id: String,
@@ -181,6 +178,7 @@ module ContextDev
181
178
  monitor_id: String,
182
179
  run_id: String,
183
180
  summary: String,
181
+ tags: T::Array[String],
184
182
  target_type:
185
183
  ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::OrSymbol,
186
184
  title: String,
@@ -200,8 +198,7 @@ module ContextDev
200
198
  matched_url_count: Integer,
201
199
  matched_urls: T::Array[String],
202
200
  removed_url_count: Integer,
203
- removed_urls: T::Array[String],
204
- tags: T::Array[String]
201
+ removed_urls: T::Array[String]
205
202
  ).returns(T.attached_class)
206
203
  end
207
204
  def self.new(
@@ -215,6 +212,8 @@ module ContextDev
215
212
  # The run that detected this change.
216
213
  run_id:,
217
214
  summary:,
215
+ # User-defined tags for grouping and filtering monitors and their changes.
216
+ tags:,
218
217
  target_type:,
219
218
  title:,
220
219
  url:,
@@ -233,9 +232,7 @@ module ContextDev
233
232
  matched_urls: nil,
234
233
  removed_url_count: nil,
235
234
  # At most 500 URLs are included; the corresponding count field is always exact.
236
- removed_urls: nil,
237
- # User-defined tags for grouping and filtering monitors and their changes.
238
- tags: nil
235
+ removed_urls: nil
239
236
  )
240
237
  end
241
238
 
@@ -251,6 +248,7 @@ module ContextDev
251
248
  monitor_id: String,
252
249
  run_id: String,
253
250
  summary: String,
251
+ tags: T::Array[String],
254
252
  target_type:
255
253
  ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::TaggedSymbol,
256
254
  title: String,
@@ -270,8 +268,7 @@ module ContextDev
270
268
  matched_url_count: Integer,
271
269
  matched_urls: T::Array[String],
272
270
  removed_url_count: Integer,
273
- removed_urls: T::Array[String],
274
- tags: T::Array[String]
271
+ removed_urls: T::Array[String]
275
272
  }
276
273
  )
277
274
  end
@@ -133,6 +133,26 @@ module ContextDev
133
133
  end
134
134
  attr_writer :webhook
135
135
 
136
+ # Present while webhook deliveries are failing consecutively; null when deliveries
137
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
138
+ # and when the webhook URL changes.
139
+ sig do
140
+ returns(
141
+ T.nilable(ContextDev::Models::MonitorRetrieveResponse::WebhookFailure)
142
+ )
143
+ end
144
+ attr_reader :webhook_failure
145
+
146
+ sig do
147
+ params(
148
+ webhook_failure:
149
+ T.nilable(
150
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::OrHash
151
+ )
152
+ ).void
153
+ end
154
+ attr_writer :webhook_failure
155
+
136
156
  # A web monitor. `mode` is the constant `web`; behavior is described by `target`
137
157
  # (page/sitemap/extract) and `change_detection` (exact/semantic).
138
158
  sig do
@@ -175,6 +195,10 @@ module ContextDev
175
195
  webhook:
176
196
  T.nilable(
177
197
  ContextDev::Models::MonitorRetrieveResponse::Webhook::OrHash
198
+ ),
199
+ webhook_failure:
200
+ T.nilable(
201
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::OrHash
178
202
  )
179
203
  ).returns(T.attached_class)
180
204
  end
@@ -213,7 +237,11 @@ module ContextDev
213
237
  next_run_at: nil,
214
238
  # User-defined tags for grouping and filtering monitors and their changes.
215
239
  tags: nil,
216
- webhook: nil
240
+ webhook: nil,
241
+ # Present while webhook deliveries are failing consecutively; null when deliveries
242
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
243
+ # and when the webhook URL changes.
244
+ webhook_failure: nil
217
245
  )
218
246
  end
219
247
 
@@ -244,7 +272,11 @@ module ContextDev
244
272
  next_run_at: T.nilable(Time),
245
273
  tags: T::Array[String],
246
274
  webhook:
247
- T.nilable(ContextDev::Models::MonitorRetrieveResponse::Webhook)
275
+ T.nilable(ContextDev::Models::MonitorRetrieveResponse::Webhook),
276
+ webhook_failure:
277
+ T.nilable(
278
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure
279
+ )
248
280
  }
249
281
  )
250
282
  end
@@ -1001,10 +1033,35 @@ module ContextDev
1001
1033
  )
1002
1034
  end
1003
1035
 
1004
- # Webhook URL called when a change is detected.
1036
+ # Webhook URL events are delivered to.
1005
1037
  sig { returns(String) }
1006
1038
  attr_accessor :url
1007
1039
 
1040
+ # Events delivered to this endpoint. `change.detected` fires only when a run
1041
+ # detects a change; `run.completed` fires on every completed run — including runs
1042
+ # that detected no change — and embeds the change when one was detected. Defaults
1043
+ # to `["change.detected"]` when omitted.
1044
+ sig do
1045
+ returns(
1046
+ T.nilable(
1047
+ T::Array[
1048
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
1049
+ ]
1050
+ )
1051
+ )
1052
+ end
1053
+ attr_reader :events
1054
+
1055
+ sig do
1056
+ params(
1057
+ events:
1058
+ T::Array[
1059
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::OrSymbol
1060
+ ]
1061
+ ).void
1062
+ end
1063
+ attr_writer :events
1064
+
1008
1065
  # Signing secret used to verify webhook authenticity. Each delivery includes an
1009
1066
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1010
1067
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
@@ -1016,10 +1073,24 @@ module ContextDev
1016
1073
  sig { params(secret: String).void }
1017
1074
  attr_writer :secret
1018
1075
 
1019
- sig { params(url: String, secret: String).returns(T.attached_class) }
1076
+ sig do
1077
+ params(
1078
+ url: String,
1079
+ events:
1080
+ T::Array[
1081
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::OrSymbol
1082
+ ],
1083
+ secret: String
1084
+ ).returns(T.attached_class)
1085
+ end
1020
1086
  def self.new(
1021
- # Webhook URL called when a change is detected.
1087
+ # Webhook URL events are delivered to.
1022
1088
  url:,
1089
+ # Events delivered to this endpoint. `change.detected` fires only when a run
1090
+ # detects a change; `run.completed` fires on every completed run — including runs
1091
+ # that detected no change — and embeds the change when one was detected. Defaults
1092
+ # to `["change.detected"]` when omitted.
1093
+ events: nil,
1023
1094
  # Signing secret used to verify webhook authenticity. Each delivery includes an
1024
1095
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1025
1096
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
@@ -1029,9 +1100,166 @@ module ContextDev
1029
1100
  )
1030
1101
  end
1031
1102
 
1032
- sig { override.returns({ url: String, secret: String }) }
1103
+ sig do
1104
+ override.returns(
1105
+ {
1106
+ url: String,
1107
+ events:
1108
+ T::Array[
1109
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
1110
+ ],
1111
+ secret: String
1112
+ }
1113
+ )
1114
+ end
1115
+ def to_hash
1116
+ end
1117
+
1118
+ module Event
1119
+ extend ContextDev::Internal::Type::Enum
1120
+
1121
+ TaggedSymbol =
1122
+ T.type_alias do
1123
+ T.all(
1124
+ Symbol,
1125
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event
1126
+ )
1127
+ end
1128
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1129
+
1130
+ CHANGE_DETECTED =
1131
+ T.let(
1132
+ :"change.detected",
1133
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
1134
+ )
1135
+ RUN_COMPLETED =
1136
+ T.let(
1137
+ :"run.completed",
1138
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
1139
+ )
1140
+
1141
+ sig do
1142
+ override.returns(
1143
+ T::Array[
1144
+ ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
1145
+ ]
1146
+ )
1147
+ end
1148
+ def self.values
1149
+ end
1150
+ end
1151
+ end
1152
+
1153
+ class WebhookFailure < ContextDev::Internal::Type::BaseModel
1154
+ OrHash =
1155
+ T.type_alias do
1156
+ T.any(
1157
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure,
1158
+ ContextDev::Internal::AnyHash
1159
+ )
1160
+ end
1161
+
1162
+ # Number of consecutive delivery attempts that did not succeed.
1163
+ sig { returns(Integer) }
1164
+ attr_accessor :consecutive_failures
1165
+
1166
+ sig { returns(Time) }
1167
+ attr_accessor :last_failed_at
1168
+
1169
+ # Human-readable description of the most recent failure.
1170
+ sig { returns(String) }
1171
+ attr_accessor :last_message
1172
+
1173
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
1174
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
1175
+ # failed the public-endpoint safety check.
1176
+ sig do
1177
+ returns(
1178
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1179
+ )
1180
+ end
1181
+ attr_accessor :last_status
1182
+
1183
+ # Present while webhook deliveries are failing consecutively; null when deliveries
1184
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
1185
+ # and when the webhook URL changes.
1186
+ sig do
1187
+ params(
1188
+ consecutive_failures: Integer,
1189
+ last_failed_at: Time,
1190
+ last_message: String,
1191
+ last_status:
1192
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::OrSymbol
1193
+ ).returns(T.attached_class)
1194
+ end
1195
+ def self.new(
1196
+ # Number of consecutive delivery attempts that did not succeed.
1197
+ consecutive_failures:,
1198
+ last_failed_at:,
1199
+ # Human-readable description of the most recent failure.
1200
+ last_message:,
1201
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
1202
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
1203
+ # failed the public-endpoint safety check.
1204
+ last_status:
1205
+ )
1206
+ end
1207
+
1208
+ sig do
1209
+ override.returns(
1210
+ {
1211
+ consecutive_failures: Integer,
1212
+ last_failed_at: Time,
1213
+ last_message: String,
1214
+ last_status:
1215
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1216
+ }
1217
+ )
1218
+ end
1033
1219
  def to_hash
1034
1220
  end
1221
+
1222
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
1223
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
1224
+ # failed the public-endpoint safety check.
1225
+ module LastStatus
1226
+ extend ContextDev::Internal::Type::Enum
1227
+
1228
+ TaggedSymbol =
1229
+ T.type_alias do
1230
+ T.all(
1231
+ Symbol,
1232
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus
1233
+ )
1234
+ end
1235
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1236
+
1237
+ REJECTED =
1238
+ T.let(
1239
+ :rejected,
1240
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1241
+ )
1242
+ FAILED =
1243
+ T.let(
1244
+ :failed,
1245
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1246
+ )
1247
+ SKIPPED_UNSAFE_URL =
1248
+ T.let(
1249
+ :skipped_unsafe_url,
1250
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1251
+ )
1252
+
1253
+ sig do
1254
+ override.returns(
1255
+ T::Array[
1256
+ ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
1257
+ ]
1258
+ )
1259
+ end
1260
+ def self.values
1261
+ end
1262
+ end
1035
1263
  end
1036
1264
  end
1037
1265
  end