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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71a15fd21461c08a07aee8a7a0b03646393d119834f5977c703fa504a3fef780
4
- data.tar.gz: cb91bfce1cc1e42798249e1a08001bbdf881ef37c0c9832783d7e511e721bd58
3
+ metadata.gz: 6e76a9e12d2d02a5a2fabf5f621579b215d278c973e9b88eb9c032ea9c5fee8f
4
+ data.tar.gz: 5bd0dda46235f5c51359bb91ad1bc53df70f13cb2f49120b6b1b4c5a23958389
5
5
  SHA512:
6
- metadata.gz: 3720fb3277c71cf83c1b01867e7cfb956e4b0588e421c23b5ef36fb7c715c5d4a94678e3de49ec83ab268628b1fccfa3b1f526f6a08ba459c213292930ebbe41
7
- data.tar.gz: 60494a702cba70b719ef8e83f4d410d3e4a59af67cb0d0e478b7061646ba87702605505d8c09c311b8dd8d2fdd8bd60caf684a17904229291fcc1e29b9696e02
6
+ metadata.gz: c2c06bbf5e65076e9867a7beb132b243ecea991290c8c2a8492a0de26936225c1fa7346f0486f9889aa41d1f3b96f5e544d69269d964523169611b2e8256e849
7
+ data.tar.gz: 4a4e5d37a6a84ce2854b1dba0eb854312964a144a914db69f418f796b29aeed0e54102ce9b0c3bd03877f26bec65ed5b4979e10675fa547707509d4c1d609334
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.4.0 (2026-07-12)
4
+
5
+ Full Changelog: [v2.3.0...v2.4.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.3.0...v2.4.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([426deb1](https://github.com/context-dot-dev/context-ruby-sdk/commit/426deb18249b214c3ccaa44c1e654e75ef666dd2))
10
+
11
+ ## 2.3.0 (2026-07-12)
12
+
13
+ Full Changelog: [v2.2.0...v2.3.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.2.0...v2.3.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([3fd9604](https://github.com/context-dot-dev/context-ruby-sdk/commit/3fd960488c341f082b6d312dda927aeee23dccff))
18
+ * **api:** api update ([bdd3176](https://github.com/context-dot-dev/context-ruby-sdk/commit/bdd3176c7f507880adb7becae314b816c6bbe9bc))
19
+ * **api:** api update ([d68d31d](https://github.com/context-dot-dev/context-ruby-sdk/commit/d68d31dc5aa77ad154789b6cf91e0b8558353214))
20
+ * **api:** api update ([d4c601e](https://github.com/context-dot-dev/context-ruby-sdk/commit/d4c601ea30aa1d47ef041d0439ab8b5d976cc8e2))
21
+ * **api:** api update ([03fa3ac](https://github.com/context-dot-dev/context-ruby-sdk/commit/03fa3ac3c7c61aba88846db890bf4d3fd22d1086))
22
+ * **api:** api update ([626d105](https://github.com/context-dot-dev/context-ruby-sdk/commit/626d1054da9622e88469bb9c3b755f43d1d75280))
23
+ * **api:** manual updates ([b7f6b2c](https://github.com/context-dot-dev/context-ruby-sdk/commit/b7f6b2c0a5bb91cc065bcc2ef497c9999414262c))
24
+
3
25
  ## 2.2.0 (2026-07-10)
4
26
 
5
27
  Full Changelog: [v2.1.0...v2.2.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.1.0...v2.2.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "context.dev", "~> 2.2.0"
29
+ gem "context.dev", "~> 2.4.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -213,25 +213,25 @@ context_dev.brand.retrieve(**params)
213
213
  Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
214
214
 
215
215
  ```ruby
216
- # :light
217
- puts(ContextDev::WebExtractStyleguideParams::ColorScheme::LIGHT)
216
+ # :txt
217
+ puts(ContextDev::ParseHandleParams::Extension::TXT)
218
218
 
219
- # Revealed type: `T.all(ContextDev::WebExtractStyleguideParams::ColorScheme, Symbol)`
220
- T.reveal_type(ContextDev::WebExtractStyleguideParams::ColorScheme::LIGHT)
219
+ # Revealed type: `T.all(ContextDev::ParseHandleParams::Extension, Symbol)`
220
+ T.reveal_type(ContextDev::ParseHandleParams::Extension::TXT)
221
221
  ```
222
222
 
223
223
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
224
224
 
225
225
  ```ruby
226
226
  # Using the enum constants preserves the tagged type information:
227
- context_dev.web.extract_styleguide(
228
- color_scheme: ContextDev::WebExtractStyleguideParams::ColorScheme::LIGHT,
227
+ context_dev.parse.handle(
228
+ extension: ContextDev::ParseHandleParams::Extension::TXT,
229
229
  # …
230
230
  )
231
231
 
232
232
  # Literal values are also permissible:
233
- context_dev.web.extract_styleguide(
234
- color_scheme: :light,
233
+ context_dev.parse.handle(
234
+ extension: :txt,
235
235
  # …
236
236
  )
237
237
  ```
@@ -18,6 +18,9 @@ module ContextDev
18
18
  # @return [String]
19
19
  attr_reader :api_key
20
20
 
21
+ # @return [ContextDev::Resources::Parse]
22
+ attr_reader :parse
23
+
21
24
  # @return [ContextDev::Resources::Web]
22
25
  attr_reader :web
23
26
 
@@ -34,8 +37,9 @@ module ContextDev
34
37
  attr_reader :utility
35
38
 
36
39
  # Monitor pages, sitemaps, and extracted website data for exact or semantic
37
- # changes. The change.detected webhook payload is documented by the
38
- # MonitorsChangeDetectedWebhookPayload schema.
40
+ # changes. Webhook payloads are documented by the
41
+ # MonitorsChangeDetectedWebhookPayload and MonitorsRunCompletedWebhookPayload
42
+ # schemas.
39
43
  # @return [ContextDev::Resources::Monitors]
40
44
  attr_reader :monitors
41
45
 
@@ -100,6 +104,7 @@ module ContextDev
100
104
  headers: headers
101
105
  )
102
106
 
107
+ @parse = ContextDev::Resources::Parse.new(client: self)
103
108
  @web = ContextDev::Resources::Web.new(client: self)
104
109
  @ai = ContextDev::Resources::AI.new(client: self)
105
110
  @brand = ContextDev::Resources::Brand.new(client: self)
@@ -438,11 +438,11 @@ module ContextDev
438
438
  # @return [Hash{Symbol=>Object}]
439
439
  #
440
440
  # @example
441
- # # `web_extract_response` is a `ContextDev::Models::WebExtractResponse`
442
- # web_extract_response => {
443
- # data: data,
444
- # metadata: metadata,
445
- # status: status
441
+ # # `parse_handle_response` is a `ContextDev::Models::ParseHandleResponse`
442
+ # parse_handle_response => {
443
+ # markdown: markdown,
444
+ # success: success,
445
+ # type: type
446
446
  # }
447
447
  def deconstruct_keys(keys)
448
448
  (keys || self.class.known_fields.keys)
@@ -356,13 +356,38 @@ module ContextDev
356
356
 
357
357
  class Webhook < ContextDev::Internal::Type::BaseModel
358
358
  # @!attribute url
359
- # Webhook URL called when a change is detected.
359
+ # Webhook URL events are delivered to.
360
360
  #
361
361
  # @return [String]
362
362
  required :url, String
363
363
 
364
- # @!method initialize(url:)
365
- # @param url [String] Webhook URL called when a change is detected.
364
+ # @!attribute events
365
+ # Events delivered to this endpoint. `change.detected` fires only when a run
366
+ # detects a change; `run.completed` fires on every completed run — including runs
367
+ # that detected no change — and embeds the change when one was detected. Defaults
368
+ # to `["change.detected"]` when omitted.
369
+ #
370
+ # @return [Array<Symbol, ContextDev::Models::MonitorCreateParams::Webhook::Event>, nil]
371
+ optional :events,
372
+ -> { ContextDev::Internal::Type::ArrayOf[enum: ContextDev::MonitorCreateParams::Webhook::Event] }
373
+
374
+ # @!method initialize(url:, events: nil)
375
+ # Some parameter documentations has been truncated, see
376
+ # {ContextDev::Models::MonitorCreateParams::Webhook} for more details.
377
+ #
378
+ # @param url [String] Webhook URL events are delivered to.
379
+ #
380
+ # @param events [Array<Symbol, ContextDev::Models::MonitorCreateParams::Webhook::Event>] Events delivered to this endpoint. `change.detected` fires only when a run detec
381
+
382
+ module Event
383
+ extend ContextDev::Internal::Type::Enum
384
+
385
+ CHANGE_DETECTED = :"change.detected"
386
+ RUN_COMPLETED = :"run.completed"
387
+
388
+ # @!method self.values
389
+ # @return [Array<Symbol>]
390
+ end
366
391
  end
367
392
  end
368
393
  end
@@ -103,7 +103,15 @@ module ContextDev
103
103
  # @return [ContextDev::Models::MonitorCreateResponse::Webhook, nil]
104
104
  optional :webhook, -> { ContextDev::Models::MonitorCreateResponse::Webhook }, nil?: true
105
105
 
106
- # @!method initialize(id:, change_detection:, created_at:, mode:, name:, schedule:, status:, target:, updated_at:, baseline: nil, last_change_at: nil, last_error: nil, last_run_at: nil, next_run_at: nil, tags: nil, webhook: nil)
106
+ # @!attribute webhook_failure
107
+ # Present while webhook deliveries are failing consecutively; null when deliveries
108
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
109
+ # and when the webhook URL changes.
110
+ #
111
+ # @return [ContextDev::Models::MonitorCreateResponse::WebhookFailure, nil]
112
+ optional :webhook_failure, -> { ContextDev::Models::MonitorCreateResponse::WebhookFailure }, nil?: true
113
+
114
+ # @!method initialize(id:, change_detection:, created_at:, mode:, name:, schedule:, status:, target:, updated_at:, baseline: nil, last_change_at: nil, last_error: nil, last_run_at: nil, next_run_at: nil, tags: nil, webhook: nil, webhook_failure: nil)
107
115
  # Some parameter documentations has been truncated, see
108
116
  # {ContextDev::Models::MonitorCreateResponse} for more details.
109
117
  #
@@ -141,6 +149,8 @@ module ContextDev
141
149
  # @param tags [Array<String>] User-defined tags for grouping and filtering monitors and their changes.
142
150
  #
143
151
  # @param webhook [ContextDev::Models::MonitorCreateResponse::Webhook, nil]
152
+ #
153
+ # @param webhook_failure [ContextDev::Models::MonitorCreateResponse::WebhookFailure, nil] Present while webhook deliveries are failing consecutively; null when deliveries
144
154
 
145
155
  # Discriminated union describing how changes are detected.
146
156
  #
@@ -583,11 +593,21 @@ module ContextDev
583
593
  # @see ContextDev::Models::MonitorCreateResponse#webhook
584
594
  class Webhook < ContextDev::Internal::Type::BaseModel
585
595
  # @!attribute url
586
- # Webhook URL called when a change is detected.
596
+ # Webhook URL events are delivered to.
587
597
  #
588
598
  # @return [String]
589
599
  required :url, String
590
600
 
601
+ # @!attribute events
602
+ # Events delivered to this endpoint. `change.detected` fires only when a run
603
+ # detects a change; `run.completed` fires on every completed run — including runs
604
+ # that detected no change — and embeds the change when one was detected. Defaults
605
+ # to `["change.detected"]` when omitted.
606
+ #
607
+ # @return [Array<Symbol, ContextDev::Models::MonitorCreateResponse::Webhook::Event>, nil]
608
+ optional :events,
609
+ -> { ContextDev::Internal::Type::ArrayOf[enum: ContextDev::Models::MonitorCreateResponse::Webhook::Event] }
610
+
591
611
  response_only do
592
612
  # @!attribute secret
593
613
  # Signing secret used to verify webhook authenticity. Each delivery includes an
@@ -600,13 +620,85 @@ module ContextDev
600
620
  optional :secret, String
601
621
  end
602
622
 
603
- # @!method initialize(url:, secret: nil)
623
+ # @!method initialize(url:, events: nil, secret: nil)
604
624
  # Some parameter documentations has been truncated, see
605
625
  # {ContextDev::Models::MonitorCreateResponse::Webhook} for more details.
606
626
  #
607
- # @param url [String] Webhook URL called when a change is detected.
627
+ # @param url [String] Webhook URL events are delivered to.
628
+ #
629
+ # @param events [Array<Symbol, ContextDev::Models::MonitorCreateResponse::Webhook::Event>] Events delivered to this endpoint. `change.detected` fires only when a run detec
608
630
  #
609
631
  # @param secret [String] Signing secret used to verify webhook authenticity. Each delivery includes an `X
632
+
633
+ module Event
634
+ extend ContextDev::Internal::Type::Enum
635
+
636
+ CHANGE_DETECTED = :"change.detected"
637
+ RUN_COMPLETED = :"run.completed"
638
+
639
+ # @!method self.values
640
+ # @return [Array<Symbol>]
641
+ end
642
+ end
643
+
644
+ # @see ContextDev::Models::MonitorCreateResponse#webhook_failure
645
+ class WebhookFailure < ContextDev::Internal::Type::BaseModel
646
+ # @!attribute consecutive_failures
647
+ # Number of consecutive delivery attempts that did not succeed.
648
+ #
649
+ # @return [Integer]
650
+ required :consecutive_failures, Integer
651
+
652
+ # @!attribute last_failed_at
653
+ #
654
+ # @return [Time]
655
+ required :last_failed_at, Time
656
+
657
+ # @!attribute last_message
658
+ # Human-readable description of the most recent failure.
659
+ #
660
+ # @return [String]
661
+ required :last_message, String
662
+
663
+ # @!attribute last_status
664
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
665
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
666
+ # failed the public-endpoint safety check.
667
+ #
668
+ # @return [Symbol, ContextDev::Models::MonitorCreateResponse::WebhookFailure::LastStatus]
669
+ required :last_status, enum: -> { ContextDev::Models::MonitorCreateResponse::WebhookFailure::LastStatus }
670
+
671
+ # @!method initialize(consecutive_failures:, last_failed_at:, last_message:, last_status:)
672
+ # Some parameter documentations has been truncated, see
673
+ # {ContextDev::Models::MonitorCreateResponse::WebhookFailure} for more details.
674
+ #
675
+ # Present while webhook deliveries are failing consecutively; null when deliveries
676
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
677
+ # and when the webhook URL changes.
678
+ #
679
+ # @param consecutive_failures [Integer] Number of consecutive delivery attempts that did not succeed.
680
+ #
681
+ # @param last_failed_at [Time]
682
+ #
683
+ # @param last_message [String] Human-readable description of the most recent failure.
684
+ #
685
+ # @param last_status [Symbol, ContextDev::Models::MonitorCreateResponse::WebhookFailure::LastStatus] Outcome of the most recent failed delivery. rejected means a non-2xx response; f
686
+
687
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
688
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
689
+ # failed the public-endpoint safety check.
690
+ #
691
+ # @see ContextDev::Models::MonitorCreateResponse::WebhookFailure#last_status
692
+ module LastStatus
693
+ extend ContextDev::Internal::Type::Enum
694
+
695
+ REJECTED = :rejected
696
+ FAILED = :failed
697
+ SKIPPED_UNSAFE_URL = :skipped_unsafe_url
698
+
699
+ # @!method self.values
700
+ # @return [Array<Symbol>]
701
+ end
610
702
  end
611
703
  end
612
704
  end
@@ -106,16 +106,25 @@ module ContextDev
106
106
  # @return [Time, nil]
107
107
  optional :started_at, Time, nil?: true
108
108
 
109
+ # @!attribute webhook_deliveries
110
+ # All webhook deliveries attempted by this run — one per subscribed event that
111
+ # fired. Omitted when no webhook was attempted, including runs created before
112
+ # event selection was added.
113
+ #
114
+ # @return [Array<ContextDev::Models::WebhookDelivery>, nil]
115
+ optional :webhook_deliveries, -> { ContextDev::Internal::Type::ArrayOf[ContextDev::WebhookDelivery] }
116
+
109
117
  # @!attribute webhook_delivery
110
- # The webhook delivery attempted for a change detected by this run. Omitted when
111
- # no webhook was attempted, including historical runs created before delivery
112
- # tracking was added.
118
+ # @deprecated
119
+ #
120
+ # Deprecated: use `webhook_deliveries`, which records every attempt now that a run
121
+ # can deliver multiple events. Omitted when no webhook was attempted, including
122
+ # historical runs created before delivery tracking was added.
113
123
  #
114
- # @return [ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery, nil]
115
- optional :webhook_delivery,
116
- -> { ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery }
124
+ # @return [ContextDev::Models::WebhookDelivery, nil]
125
+ optional :webhook_delivery, -> { ContextDev::WebhookDelivery }
117
126
 
118
- # @!method initialize(id:, baseline_created:, change_detected:, change_detection_type:, credits_charged:, monitor_id:, run_type:, status:, target_type:, change_id: nil, completed_at: nil, error: nil, skip_reason: nil, started_at: nil, webhook_delivery: nil)
127
+ # @!method initialize(id:, baseline_created:, change_detected:, change_detection_type:, credits_charged:, monitor_id:, run_type:, status:, target_type:, change_id: nil, completed_at: nil, error: nil, skip_reason: nil, started_at: nil, webhook_deliveries: nil, webhook_delivery: nil)
119
128
  # Some parameter documentations has been truncated, see
120
129
  # {ContextDev::Models::MonitorListAccountRunsResponse::Data} for more details.
121
130
  #
@@ -147,7 +156,9 @@ module ContextDev
147
156
  #
148
157
  # @param started_at [Time, nil]
149
158
  #
150
- # @param webhook_delivery [ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery] The webhook delivery attempted for a change detected by this run. Omitted when n
159
+ # @param webhook_deliveries [Array<ContextDev::Models::WebhookDelivery>] All webhook deliveries attempted by this run — one per subscribed event that fir
160
+ #
161
+ # @param webhook_delivery [ContextDev::Models::WebhookDelivery] Deprecated: use `webhook_deliveries`, which records every attempt now that a run
151
162
 
152
163
  # @see ContextDev::Models::MonitorListAccountRunsResponse::Data#change_detection_type
153
164
  module ChangeDetectionType
@@ -232,96 +243,6 @@ module ContextDev
232
243
  # @!method self.values
233
244
  # @return [Array<Symbol>]
234
245
  end
235
-
236
- # @see ContextDev::Models::MonitorListAccountRunsResponse::Data#webhook_delivery
237
- class WebhookDelivery < ContextDev::Internal::Type::BaseModel
238
- # @!attribute attempted_at
239
- #
240
- # @return [Time]
241
- required :attempted_at, Time
242
-
243
- # @!attribute error
244
- #
245
- # @return [ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error, nil]
246
- required :error,
247
- -> { ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error },
248
- nil?: true
249
-
250
- # @!attribute event_id
251
- # Identifier sent in the X-Context-Id header.
252
- #
253
- # @return [String]
254
- required :event_id, String
255
-
256
- # @!attribute http_status
257
- # The endpoint's final HTTP response status, or null when no response was
258
- # received.
259
- #
260
- # @return [Integer, nil]
261
- required :http_status, Integer, nil?: true
262
-
263
- # @!attribute status
264
- # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
265
- # response; failed means no HTTP response was received; skipped_unsafe_url means
266
- # the URL failed the public-endpoint safety check.
267
- #
268
- # @return [Symbol, ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Status]
269
- required :status,
270
- enum: -> { ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Status }
271
-
272
- # @!method initialize(attempted_at:, error:, event_id:, http_status:, status:)
273
- # Some parameter documentations has been truncated, see
274
- # {ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery} for
275
- # more details.
276
- #
277
- # The webhook delivery attempted for a change detected by this run. Omitted when
278
- # no webhook was attempted, including historical runs created before delivery
279
- # tracking was added.
280
- #
281
- # @param attempted_at [Time]
282
- #
283
- # @param error [ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error, nil]
284
- #
285
- # @param event_id [String] Identifier sent in the X-Context-Id header.
286
- #
287
- # @param http_status [Integer, nil] The endpoint's final HTTP response status, or null when no response was received
288
- #
289
- # @param status [Symbol, ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Status] Delivery outcome. delivered means any 2xx response; rejected means a non-2xx res
290
-
291
- # @see ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery#error
292
- class Error < ContextDev::Internal::Type::BaseModel
293
- # @!attribute code
294
- #
295
- # @return [String]
296
- required :code, String
297
-
298
- # @!attribute message
299
- #
300
- # @return [String]
301
- required :message, String
302
-
303
- # @!method initialize(code:, message:)
304
- # @param code [String]
305
- # @param message [String]
306
- end
307
-
308
- # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
309
- # response; failed means no HTTP response was received; skipped_unsafe_url means
310
- # the URL failed the public-endpoint safety check.
311
- #
312
- # @see ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery#status
313
- module Status
314
- extend ContextDev::Internal::Type::Enum
315
-
316
- DELIVERED = :delivered
317
- REJECTED = :rejected
318
- FAILED = :failed
319
- SKIPPED_UNSAFE_URL = :skipped_unsafe_url
320
-
321
- # @!method self.values
322
- # @return [Array<Symbol>]
323
- end
324
- end
325
246
  end
326
247
  end
327
248
  end
@@ -124,7 +124,17 @@ module ContextDev
124
124
  # @return [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
125
125
  optional :webhook, -> { ContextDev::Models::MonitorListResponse::Data::Webhook }, nil?: true
126
126
 
127
- # @!method initialize(id:, change_detection:, created_at:, mode:, name:, schedule:, status:, target:, updated_at:, baseline: nil, last_change_at: nil, last_error: nil, last_run_at: nil, next_run_at: nil, tags: nil, webhook: nil)
127
+ # @!attribute webhook_failure
128
+ # Present while webhook deliveries are failing consecutively; null when deliveries
129
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
130
+ # and when the webhook URL changes.
131
+ #
132
+ # @return [ContextDev::Models::MonitorListResponse::Data::WebhookFailure, nil]
133
+ optional :webhook_failure,
134
+ -> { ContextDev::Models::MonitorListResponse::Data::WebhookFailure },
135
+ nil?: true
136
+
137
+ # @!method initialize(id:, change_detection:, created_at:, mode:, name:, schedule:, status:, target:, updated_at:, baseline: nil, last_change_at: nil, last_error: nil, last_run_at: nil, next_run_at: nil, tags: nil, webhook: nil, webhook_failure: nil)
128
138
  # Some parameter documentations has been truncated, see
129
139
  # {ContextDev::Models::MonitorListResponse::Data} for more details.
130
140
  #
@@ -162,6 +172,8 @@ module ContextDev
162
172
  # @param tags [Array<String>] User-defined tags for grouping and filtering monitors and their changes.
163
173
  #
164
174
  # @param webhook [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
175
+ #
176
+ # @param webhook_failure [ContextDev::Models::MonitorListResponse::Data::WebhookFailure, nil] Present while webhook deliveries are failing consecutively; null when deliveries
165
177
 
166
178
  # Discriminated union describing how changes are detected.
167
179
  #
@@ -605,11 +617,21 @@ module ContextDev
605
617
  # @see ContextDev::Models::MonitorListResponse::Data#webhook
606
618
  class Webhook < ContextDev::Internal::Type::BaseModel
607
619
  # @!attribute url
608
- # Webhook URL called when a change is detected.
620
+ # Webhook URL events are delivered to.
609
621
  #
610
622
  # @return [String]
611
623
  required :url, String
612
624
 
625
+ # @!attribute events
626
+ # Events delivered to this endpoint. `change.detected` fires only when a run
627
+ # detects a change; `run.completed` fires on every completed run — including runs
628
+ # that detected no change — and embeds the change when one was detected. Defaults
629
+ # to `["change.detected"]` when omitted.
630
+ #
631
+ # @return [Array<Symbol, ContextDev::Models::MonitorListResponse::Data::Webhook::Event>, nil]
632
+ optional :events,
633
+ -> { ContextDev::Internal::Type::ArrayOf[enum: ContextDev::Models::MonitorListResponse::Data::Webhook::Event] }
634
+
613
635
  response_only do
614
636
  # @!attribute secret
615
637
  # Signing secret used to verify webhook authenticity. Each delivery includes an
@@ -622,13 +644,87 @@ module ContextDev
622
644
  optional :secret, String
623
645
  end
624
646
 
625
- # @!method initialize(url:, secret: nil)
647
+ # @!method initialize(url:, events: nil, secret: nil)
626
648
  # Some parameter documentations has been truncated, see
627
649
  # {ContextDev::Models::MonitorListResponse::Data::Webhook} for more details.
628
650
  #
629
- # @param url [String] Webhook URL called when a change is detected.
651
+ # @param url [String] Webhook URL events are delivered to.
652
+ #
653
+ # @param events [Array<Symbol, ContextDev::Models::MonitorListResponse::Data::Webhook::Event>] Events delivered to this endpoint. `change.detected` fires only when a run detec
630
654
  #
631
655
  # @param secret [String] Signing secret used to verify webhook authenticity. Each delivery includes an `X
656
+
657
+ module Event
658
+ extend ContextDev::Internal::Type::Enum
659
+
660
+ CHANGE_DETECTED = :"change.detected"
661
+ RUN_COMPLETED = :"run.completed"
662
+
663
+ # @!method self.values
664
+ # @return [Array<Symbol>]
665
+ end
666
+ end
667
+
668
+ # @see ContextDev::Models::MonitorListResponse::Data#webhook_failure
669
+ class WebhookFailure < ContextDev::Internal::Type::BaseModel
670
+ # @!attribute consecutive_failures
671
+ # Number of consecutive delivery attempts that did not succeed.
672
+ #
673
+ # @return [Integer]
674
+ required :consecutive_failures, Integer
675
+
676
+ # @!attribute last_failed_at
677
+ #
678
+ # @return [Time]
679
+ required :last_failed_at, Time
680
+
681
+ # @!attribute last_message
682
+ # Human-readable description of the most recent failure.
683
+ #
684
+ # @return [String]
685
+ required :last_message, String
686
+
687
+ # @!attribute last_status
688
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
689
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
690
+ # failed the public-endpoint safety check.
691
+ #
692
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::WebhookFailure::LastStatus]
693
+ required :last_status,
694
+ enum: -> { ContextDev::Models::MonitorListResponse::Data::WebhookFailure::LastStatus }
695
+
696
+ # @!method initialize(consecutive_failures:, last_failed_at:, last_message:, last_status:)
697
+ # Some parameter documentations has been truncated, see
698
+ # {ContextDev::Models::MonitorListResponse::Data::WebhookFailure} for more
699
+ # details.
700
+ #
701
+ # Present while webhook deliveries are failing consecutively; null when deliveries
702
+ # are healthy or no webhook is configured. Cleared on the next successful delivery
703
+ # and when the webhook URL changes.
704
+ #
705
+ # @param consecutive_failures [Integer] Number of consecutive delivery attempts that did not succeed.
706
+ #
707
+ # @param last_failed_at [Time]
708
+ #
709
+ # @param last_message [String] Human-readable description of the most recent failure.
710
+ #
711
+ # @param last_status [Symbol, ContextDev::Models::MonitorListResponse::Data::WebhookFailure::LastStatus] Outcome of the most recent failed delivery. rejected means a non-2xx response; f
712
+
713
+ # Outcome of the most recent failed delivery. rejected means a non-2xx response;
714
+ # failed means no HTTP response was received; skipped_unsafe_url means the URL
715
+ # failed the public-endpoint safety check.
716
+ #
717
+ # @see ContextDev::Models::MonitorListResponse::Data::WebhookFailure#last_status
718
+ module LastStatus
719
+ extend ContextDev::Internal::Type::Enum
720
+
721
+ REJECTED = :rejected
722
+ FAILED = :failed
723
+ SKIPPED_UNSAFE_URL = :skipped_unsafe_url
724
+
725
+ # @!method self.values
726
+ # @return [Array<Symbol>]
727
+ end
632
728
  end
633
729
  end
634
730
  end