context.dev 1.36.0 → 2.0.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 (162) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +16 -9
  4. data/lib/context_dev/client.rb +7 -0
  5. data/lib/context_dev/models/brand_retrieve_params.rb +1036 -174
  6. data/lib/context_dev/models/monitor_create_params.rb +361 -0
  7. data/lib/context_dev/models/monitor_create_response.rb +484 -0
  8. data/lib/context_dev/models/monitor_delete_params.rb +20 -0
  9. data/lib/context_dev/models/monitor_delete_response.rb +22 -0
  10. data/lib/context_dev/models/monitor_list_account_changes_params.rb +93 -0
  11. data/lib/context_dev/models/monitor_list_account_changes_response.rb +199 -0
  12. data/lib/context_dev/models/monitor_list_account_runs_params.rb +55 -0
  13. data/lib/context_dev/models/monitor_list_account_runs_response.rb +227 -0
  14. data/lib/context_dev/models/monitor_list_changes_params.rb +57 -0
  15. data/lib/context_dev/models/monitor_list_changes_response.rb +198 -0
  16. data/lib/context_dev/models/monitor_list_params.rb +161 -0
  17. data/lib/context_dev/models/monitor_list_response.rb +507 -0
  18. data/lib/context_dev/models/monitor_list_runs_params.rb +62 -0
  19. data/lib/context_dev/models/monitor_list_runs_response.rb +227 -0
  20. data/lib/context_dev/models/monitor_retrieve_change_params.rb +20 -0
  21. data/lib/context_dev/models/monitor_retrieve_change_response.rb +271 -0
  22. data/lib/context_dev/models/monitor_retrieve_params.rb +20 -0
  23. data/lib/context_dev/models/monitor_retrieve_response.rb +484 -0
  24. data/lib/context_dev/models/monitor_run_params.rb +20 -0
  25. data/lib/context_dev/models/monitor_run_response.rb +35 -0
  26. data/lib/context_dev/models/monitor_update_params.rb +368 -0
  27. data/lib/context_dev/models/monitor_update_response.rb +484 -0
  28. data/lib/context_dev/models/utility_prefetch_params.rb +70 -6
  29. data/lib/context_dev/models/utility_prefetch_response.rb +23 -1
  30. data/lib/context_dev/models/web_extract_response.rb +17 -1
  31. data/lib/context_dev/models/web_web_crawl_md_params.rb +11 -1
  32. data/lib/context_dev/models/web_web_scrape_html_params.rb +11 -1
  33. data/lib/context_dev/models/web_web_scrape_html_response.rb +10 -2
  34. data/lib/context_dev/models/web_web_scrape_images_params.rb +12 -1
  35. data/lib/context_dev/models/web_web_scrape_md_params.rb +11 -1
  36. data/lib/context_dev/models.rb +20 -12
  37. data/lib/context_dev/resources/ai.rb +0 -33
  38. data/lib/context_dev/resources/brand.rb +7 -204
  39. data/lib/context_dev/resources/monitors.rb +352 -0
  40. data/lib/context_dev/resources/utility.rb +9 -35
  41. data/lib/context_dev/resources/web.rb +14 -4
  42. data/lib/context_dev/version.rb +1 -1
  43. data/lib/context_dev.rb +23 -14
  44. data/rbi/context_dev/client.rbi +6 -0
  45. data/rbi/context_dev/models/brand_retrieve_params.rbi +3792 -679
  46. data/rbi/context_dev/models/monitor_create_params.rbi +640 -0
  47. data/rbi/context_dev/models/monitor_create_response.rbi +820 -0
  48. data/rbi/context_dev/models/monitor_delete_params.rbi +35 -0
  49. data/rbi/context_dev/models/monitor_delete_response.rbi +29 -0
  50. data/rbi/context_dev/models/monitor_list_account_changes_params.rbi +211 -0
  51. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +376 -0
  52. data/rbi/context_dev/models/monitor_list_account_runs_params.rbi +125 -0
  53. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +464 -0
  54. data/rbi/context_dev/models/monitor_list_changes_params.rbi +91 -0
  55. data/rbi/context_dev/models/monitor_list_changes_response.rbi +372 -0
  56. data/rbi/context_dev/models/monitor_list_params.rbi +332 -0
  57. data/rbi/context_dev/models/monitor_list_response.rbi +885 -0
  58. data/rbi/context_dev/models/monitor_list_runs_params.rbi +125 -0
  59. data/rbi/context_dev/models/monitor_list_runs_response.rbi +455 -0
  60. data/rbi/context_dev/models/monitor_retrieve_change_params.rbi +38 -0
  61. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +478 -0
  62. data/rbi/context_dev/models/monitor_retrieve_params.rbi +38 -0
  63. data/rbi/context_dev/models/monitor_retrieve_response.rbi +828 -0
  64. data/rbi/context_dev/models/monitor_run_params.rbi +35 -0
  65. data/rbi/context_dev/models/monitor_run_response.rbi +48 -0
  66. data/rbi/context_dev/models/monitor_update_params.rbi +680 -0
  67. data/rbi/context_dev/models/monitor_update_response.rbi +820 -0
  68. data/rbi/context_dev/models/utility_prefetch_params.rbi +129 -7
  69. data/rbi/context_dev/models/utility_prefetch_response.rbi +55 -3
  70. data/rbi/context_dev/models/web_extract_response.rbi +10 -0
  71. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +15 -0
  72. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +15 -0
  73. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +29 -3
  74. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +17 -0
  75. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +15 -0
  76. data/rbi/context_dev/models.rbi +23 -15
  77. data/rbi/context_dev/resources/ai.rbi +0 -28
  78. data/rbi/context_dev/resources/brand.rbi +13 -228
  79. data/rbi/context_dev/resources/monitors.rbi +286 -0
  80. data/rbi/context_dev/resources/utility.rbi +14 -29
  81. data/rbi/context_dev/resources/web.rbi +21 -0
  82. data/sig/context_dev/client.rbs +2 -0
  83. data/sig/context_dev/models/brand_retrieve_params.rbs +1560 -281
  84. data/sig/context_dev/models/monitor_create_params.rbs +311 -0
  85. data/sig/context_dev/models/monitor_create_response.rbs +369 -0
  86. data/sig/context_dev/models/monitor_delete_params.rbs +23 -0
  87. data/sig/context_dev/models/monitor_delete_response.rbs +15 -0
  88. data/sig/context_dev/models/monitor_list_account_changes_params.rbs +104 -0
  89. data/sig/context_dev/models/monitor_list_account_changes_response.rbs +176 -0
  90. data/sig/context_dev/models/monitor_list_account_runs_params.rbs +58 -0
  91. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +184 -0
  92. data/sig/context_dev/models/monitor_list_changes_params.rbs +61 -0
  93. data/sig/context_dev/models/monitor_list_changes_response.rbs +176 -0
  94. data/sig/context_dev/models/monitor_list_params.rbs +160 -0
  95. data/sig/context_dev/models/monitor_list_response.rbs +396 -0
  96. data/sig/context_dev/models/monitor_list_runs_params.rbs +63 -0
  97. data/sig/context_dev/models/monitor_list_runs_response.rbs +184 -0
  98. data/sig/context_dev/models/monitor_retrieve_change_params.rbs +23 -0
  99. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +228 -0
  100. data/sig/context_dev/models/monitor_retrieve_params.rbs +23 -0
  101. data/sig/context_dev/models/monitor_retrieve_response.rbs +369 -0
  102. data/sig/context_dev/models/monitor_run_params.rbs +23 -0
  103. data/sig/context_dev/models/monitor_run_response.rbs +18 -0
  104. data/sig/context_dev/models/monitor_update_params.rbs +331 -0
  105. data/sig/context_dev/models/monitor_update_response.rbs +369 -0
  106. data/sig/context_dev/models/utility_prefetch_params.rbs +52 -4
  107. data/sig/context_dev/models/utility_prefetch_response.rbs +22 -3
  108. data/sig/context_dev/models/web_extract_response.rbs +5 -0
  109. data/sig/context_dev/models/web_web_crawl_md_params.rbs +7 -0
  110. data/sig/context_dev/models/web_web_scrape_html_params.rbs +7 -0
  111. data/sig/context_dev/models/web_web_scrape_html_response.rbs +8 -0
  112. data/sig/context_dev/models/web_web_scrape_images_params.rbs +7 -0
  113. data/sig/context_dev/models/web_web_scrape_md_params.rbs +7 -0
  114. data/sig/context_dev/models.rbs +20 -12
  115. data/sig/context_dev/resources/ai.rbs +0 -8
  116. data/sig/context_dev/resources/brand.rbs +1 -56
  117. data/sig/context_dev/resources/monitors.rbs +101 -0
  118. data/sig/context_dev/resources/utility.rbs +2 -7
  119. data/sig/context_dev/resources/web.rbs +4 -0
  120. metadata +71 -44
  121. data/lib/context_dev/models/ai_ai_query_params.rb +0 -235
  122. data/lib/context_dev/models/ai_ai_query_response.rb +0 -133
  123. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +0 -474
  124. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +0 -1074
  125. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +0 -195
  126. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +0 -1071
  127. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +0 -195
  128. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +0 -1070
  129. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +0 -452
  130. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +0 -1070
  131. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +0 -283
  132. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +0 -1072
  133. data/lib/context_dev/models/utility_prefetch_by_email_params.rb +0 -37
  134. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +0 -68
  135. data/rbi/context_dev/models/ai_ai_query_params.rbi +0 -504
  136. data/rbi/context_dev/models/ai_ai_query_response.rbi +0 -267
  137. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +0 -2020
  138. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +0 -3515
  139. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +0 -743
  140. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +0 -3511
  141. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +0 -743
  142. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +0 -3510
  143. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +0 -1982
  144. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +0 -3510
  145. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +0 -1153
  146. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +0 -3512
  147. data/rbi/context_dev/models/utility_prefetch_by_email_params.rbi +0 -65
  148. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +0 -132
  149. data/sig/context_dev/models/ai_ai_query_params.rbs +0 -218
  150. data/sig/context_dev/models/ai_ai_query_response.rbs +0 -121
  151. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +0 -822
  152. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +0 -1441
  153. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +0 -305
  154. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +0 -1441
  155. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +0 -305
  156. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +0 -1441
  157. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +0 -801
  158. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +0 -1441
  159. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +0 -467
  160. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +0 -1441
  161. data/sig/context_dev/models/utility_prefetch_by_email_params.rbs +0 -30
  162. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +0 -64
@@ -0,0 +1,507 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Monitors#list
6
+ class MonitorListResponse < ContextDev::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ #
9
+ # @return [Array<ContextDev::Models::MonitorListResponse::Data>]
10
+ required :data, -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::MonitorListResponse::Data] }
11
+
12
+ # @!attribute has_more
13
+ #
14
+ # @return [Boolean]
15
+ required :has_more, ContextDev::Internal::Type::Boolean
16
+
17
+ # @!attribute next_cursor
18
+ #
19
+ # @return [String, nil]
20
+ required :next_cursor, String, nil?: true
21
+
22
+ # @!method initialize(data:, has_more:, next_cursor:)
23
+ # @param data [Array<ContextDev::Models::MonitorListResponse::Data>]
24
+ # @param has_more [Boolean]
25
+ # @param next_cursor [String, nil]
26
+
27
+ class Data < ContextDev::Internal::Type::BaseModel
28
+ # @!attribute id
29
+ #
30
+ # @return [String]
31
+ required :id, String
32
+
33
+ # @!attribute change_detection
34
+ # Discriminated union describing how changes are detected.
35
+ #
36
+ # @return [ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic]
37
+ required :change_detection, union: -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection }
38
+
39
+ # @!attribute created_at
40
+ #
41
+ # @return [Time]
42
+ required :created_at, Time
43
+
44
+ # @!attribute mode
45
+ # Top-level monitor category. Always `web` today; the concrete behavior is
46
+ # described by `target` and `change_detection`.
47
+ #
48
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Mode]
49
+ required :mode, enum: -> { ContextDev::Models::MonitorListResponse::Data::Mode }
50
+
51
+ # @!attribute name
52
+ #
53
+ # @return [String]
54
+ required :name, String
55
+
56
+ # @!attribute schedule
57
+ # Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
58
+ # every 6 hours or every 2 days. The total interval (frequency × unit) must be
59
+ # between 10 minutes and 1 year.
60
+ #
61
+ # @return [ContextDev::Models::MonitorListResponse::Data::Schedule]
62
+ required :schedule, -> { ContextDev::Models::MonitorListResponse::Data::Schedule }
63
+
64
+ # @!attribute status
65
+ # Monitor lifecycle status. `failed` means the most recent run failed (see the
66
+ # monitor's `last_error`); failed monitors keep running on schedule and flip back
67
+ # to `active` on the next successful run. Monitors are auto-`paused` after
68
+ # repeated consecutive failures or insufficient-credit skips; resume by PATCHing
69
+ # status to `active`.
70
+ #
71
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Status]
72
+ required :status, enum: -> { ContextDev::Models::MonitorListResponse::Data::Status }
73
+
74
+ # @!attribute target
75
+ # Discriminated union describing what the monitor watches.
76
+ #
77
+ # @return [ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract]
78
+ required :target, union: -> { ContextDev::Models::MonitorListResponse::Data::Target }
79
+
80
+ # @!attribute updated_at
81
+ #
82
+ # @return [Time]
83
+ required :updated_at, Time
84
+
85
+ # @!attribute last_change_at
86
+ #
87
+ # @return [Time, nil]
88
+ optional :last_change_at, Time, nil?: true
89
+
90
+ # @!attribute last_error
91
+ # Error from the most recent failed run; null when the last run succeeded.
92
+ #
93
+ # @return [ContextDev::Models::MonitorListResponse::Data::LastError, nil]
94
+ optional :last_error, -> { ContextDev::Models::MonitorListResponse::Data::LastError }, nil?: true
95
+
96
+ # @!attribute last_run_at
97
+ #
98
+ # @return [Time, nil]
99
+ optional :last_run_at, Time, nil?: true
100
+
101
+ # @!attribute next_run_at
102
+ # When the next scheduled run is due.
103
+ #
104
+ # @return [Time, nil]
105
+ optional :next_run_at, Time, nil?: true
106
+
107
+ # @!attribute tags
108
+ # User-defined tags for grouping and filtering monitors and their changes.
109
+ #
110
+ # @return [Array<String>, nil]
111
+ optional :tags, ContextDev::Internal::Type::ArrayOf[String]
112
+
113
+ # @!attribute webhook
114
+ #
115
+ # @return [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
116
+ optional :webhook, -> { ContextDev::Models::MonitorListResponse::Data::Webhook }, nil?: true
117
+
118
+ # @!method initialize(id:, change_detection:, created_at:, mode:, name:, schedule:, status:, target:, updated_at:, last_change_at: nil, last_error: nil, last_run_at: nil, next_run_at: nil, tags: nil, webhook: nil)
119
+ # Some parameter documentations has been truncated, see
120
+ # {ContextDev::Models::MonitorListResponse::Data} for more details.
121
+ #
122
+ # A web monitor. `mode` is the constant `web`; behavior is described by `target`
123
+ # (page/sitemap/extract) and `change_detection` (exact/semantic).
124
+ #
125
+ # @param id [String]
126
+ #
127
+ # @param change_detection [ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic] Discriminated union describing how changes are detected.
128
+ #
129
+ # @param created_at [Time]
130
+ #
131
+ # @param mode [Symbol, ContextDev::Models::MonitorListResponse::Data::Mode] Top-level monitor category. Always `web` today; the concrete behavior is describ
132
+ #
133
+ # @param name [String]
134
+ #
135
+ # @param schedule [ContextDev::Models::MonitorListResponse::Data::Schedule] Run the monitor on a fixed interval defined by a frequency and a unit, e.g. ever
136
+ #
137
+ # @param status [Symbol, ContextDev::Models::MonitorListResponse::Data::Status] Monitor lifecycle status. `failed` means the most recent run failed (see the mon
138
+ #
139
+ # @param target [ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract] Discriminated union describing what the monitor watches.
140
+ #
141
+ # @param updated_at [Time]
142
+ #
143
+ # @param last_change_at [Time, nil]
144
+ #
145
+ # @param last_error [ContextDev::Models::MonitorListResponse::Data::LastError, nil] Error from the most recent failed run; null when the last run succeeded.
146
+ #
147
+ # @param last_run_at [Time, nil]
148
+ #
149
+ # @param next_run_at [Time, nil] When the next scheduled run is due.
150
+ #
151
+ # @param tags [Array<String>] User-defined tags for grouping and filtering monitors and their changes.
152
+ #
153
+ # @param webhook [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
154
+
155
+ # Discriminated union describing how changes are detected.
156
+ #
157
+ # @see ContextDev::Models::MonitorListResponse::Data#change_detection
158
+ module ChangeDetection
159
+ extend ContextDev::Internal::Type::Union
160
+
161
+ discriminator :type
162
+
163
+ # Detect exact changes. For page targets, this means visible text diffs. For sitemap targets, this means URL additions and removals.
164
+ variant :exact, -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact }
165
+
166
+ # Detect meaning-level changes that match a natural language query.
167
+ variant :semantic, -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic }
168
+
169
+ class Exact < ContextDev::Internal::Type::BaseModel
170
+ # @!attribute type
171
+ #
172
+ # @return [Symbol, :exact]
173
+ required :type, const: :exact
174
+
175
+ # @!method initialize(type: :exact)
176
+ # Detect exact changes. For page targets, this means visible text diffs. For
177
+ # sitemap targets, this means URL additions and removals.
178
+ #
179
+ # @param type [Symbol, :exact]
180
+ end
181
+
182
+ class Semantic < ContextDev::Internal::Type::BaseModel
183
+ # @!attribute query
184
+ #
185
+ # @return [String]
186
+ required :query, String
187
+
188
+ # @!attribute type
189
+ #
190
+ # @return [Symbol, :semantic]
191
+ required :type, const: :semantic
192
+
193
+ # @!attribute confidence_threshold
194
+ #
195
+ # @return [Float, nil]
196
+ optional :confidence_threshold, Float
197
+
198
+ # @!method initialize(query:, confidence_threshold: nil, type: :semantic)
199
+ # Detect meaning-level changes that match a natural language query.
200
+ #
201
+ # @param query [String]
202
+ # @param confidence_threshold [Float]
203
+ # @param type [Symbol, :semantic]
204
+ end
205
+
206
+ # @!method self.variants
207
+ # @return [Array(ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic)]
208
+ end
209
+
210
+ # Top-level monitor category. Always `web` today; the concrete behavior is
211
+ # described by `target` and `change_detection`.
212
+ #
213
+ # @see ContextDev::Models::MonitorListResponse::Data#mode
214
+ module Mode
215
+ extend ContextDev::Internal::Type::Enum
216
+
217
+ WEB = :web
218
+
219
+ # @!method self.values
220
+ # @return [Array<Symbol>]
221
+ end
222
+
223
+ # @see ContextDev::Models::MonitorListResponse::Data#schedule
224
+ class Schedule < ContextDev::Internal::Type::BaseModel
225
+ # @!attribute frequency
226
+ # Number of units between runs. The resulting interval (frequency × unit) must be
227
+ # at least 10 minutes and at most 1 year (e.g. minimum 10 when unit is minutes;
228
+ # maximum 365 when unit is days).
229
+ #
230
+ # @return [Integer]
231
+ required :frequency, Integer
232
+
233
+ # @!attribute type
234
+ #
235
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Type]
236
+ required :type, enum: -> { ContextDev::Models::MonitorListResponse::Data::Schedule::Type }
237
+
238
+ # @!attribute unit
239
+ #
240
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Unit]
241
+ required :unit, enum: -> { ContextDev::Models::MonitorListResponse::Data::Schedule::Unit }
242
+
243
+ # @!method initialize(frequency:, type:, unit:)
244
+ # Some parameter documentations has been truncated, see
245
+ # {ContextDev::Models::MonitorListResponse::Data::Schedule} for more details.
246
+ #
247
+ # Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
248
+ # every 6 hours or every 2 days. The total interval (frequency × unit) must be
249
+ # between 10 minutes and 1 year.
250
+ #
251
+ # @param frequency [Integer] Number of units between runs. The resulting interval (frequency × unit) must be
252
+ #
253
+ # @param type [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Type]
254
+ #
255
+ # @param unit [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Unit]
256
+
257
+ # @see ContextDev::Models::MonitorListResponse::Data::Schedule#type
258
+ module Type
259
+ extend ContextDev::Internal::Type::Enum
260
+
261
+ INTERVAL = :interval
262
+
263
+ # @!method self.values
264
+ # @return [Array<Symbol>]
265
+ end
266
+
267
+ # @see ContextDev::Models::MonitorListResponse::Data::Schedule#unit
268
+ module Unit
269
+ extend ContextDev::Internal::Type::Enum
270
+
271
+ MINUTES = :minutes
272
+ HOURS = :hours
273
+ DAYS = :days
274
+
275
+ # @!method self.values
276
+ # @return [Array<Symbol>]
277
+ end
278
+ end
279
+
280
+ # Monitor lifecycle status. `failed` means the most recent run failed (see the
281
+ # monitor's `last_error`); failed monitors keep running on schedule and flip back
282
+ # to `active` on the next successful run. Monitors are auto-`paused` after
283
+ # repeated consecutive failures or insufficient-credit skips; resume by PATCHing
284
+ # status to `active`.
285
+ #
286
+ # @see ContextDev::Models::MonitorListResponse::Data#status
287
+ module Status
288
+ extend ContextDev::Internal::Type::Enum
289
+
290
+ ACTIVE = :active
291
+ PAUSED = :paused
292
+ FAILED = :failed
293
+
294
+ # @!method self.values
295
+ # @return [Array<Symbol>]
296
+ end
297
+
298
+ # Discriminated union describing what the monitor watches.
299
+ #
300
+ # @see ContextDev::Models::MonitorListResponse::Data#target
301
+ module Target
302
+ extend ContextDev::Internal::Type::Union
303
+
304
+ discriminator :type
305
+
306
+ # Watch a single web page.
307
+ variant :page, -> { ContextDev::Models::MonitorListResponse::Data::Target::Page }
308
+
309
+ # Watch a sitemap for URL additions and removals. Crawled URLs are normalized (lowercased host, no trailing slash/fragment) and scoped to the monitored site and its subdomains before comparison. A new URL set must be observed on two consecutive runs before a change is reported, suppressing one-run crawl flaps.
310
+ variant :sitemap, -> { ContextDev::Models::MonitorListResponse::Data::Target::Sitemap }
311
+
312
+ # Watch a site's extracted structured data.
313
+ variant :extract, -> { ContextDev::Models::MonitorListResponse::Data::Target::Extract }
314
+
315
+ class Page < ContextDev::Internal::Type::BaseModel
316
+ # @!attribute type
317
+ #
318
+ # @return [Symbol, :page]
319
+ required :type, const: :page
320
+
321
+ # @!attribute url
322
+ #
323
+ # @return [String]
324
+ required :url, String
325
+
326
+ # @!attribute normalize_whitespace
327
+ # Normalize whitespace before comparing or analyzing text.
328
+ #
329
+ # @return [Boolean, nil]
330
+ optional :normalize_whitespace, ContextDev::Internal::Type::Boolean
331
+
332
+ # @!method initialize(url:, normalize_whitespace: nil, type: :page)
333
+ # Watch a single web page.
334
+ #
335
+ # @param url [String]
336
+ #
337
+ # @param normalize_whitespace [Boolean] Normalize whitespace before comparing or analyzing text.
338
+ #
339
+ # @param type [Symbol, :page]
340
+ end
341
+
342
+ class Sitemap < ContextDev::Internal::Type::BaseModel
343
+ # @!attribute type
344
+ #
345
+ # @return [Symbol, :sitemap]
346
+ required :type, const: :sitemap
347
+
348
+ # @!attribute url
349
+ # Sitemap URL to monitor.
350
+ #
351
+ # @return [String]
352
+ required :url, String
353
+
354
+ # @!attribute exclude
355
+ # URL path patterns to exclude.
356
+ #
357
+ # @return [Array<String>, nil]
358
+ optional :exclude, ContextDev::Internal::Type::ArrayOf[String]
359
+
360
+ # @!attribute include
361
+ # URL path patterns to include.
362
+ #
363
+ # @return [Array<String>, nil]
364
+ optional :include, ContextDev::Internal::Type::ArrayOf[String]
365
+
366
+ # @!attribute max_urls
367
+ # Maximum number of sitemap URLs to track (capped at 10,000).
368
+ #
369
+ # @return [Integer, nil]
370
+ optional :max_urls, Integer
371
+
372
+ # @!method initialize(url:, exclude: nil, include: nil, max_urls: nil, type: :sitemap)
373
+ # Watch a sitemap for URL additions and removals. Crawled URLs are normalized
374
+ # (lowercased host, no trailing slash/fragment) and scoped to the monitored site
375
+ # and its subdomains before comparison. A new URL set must be observed on two
376
+ # consecutive runs before a change is reported, suppressing one-run crawl flaps.
377
+ #
378
+ # @param url [String] Sitemap URL to monitor.
379
+ #
380
+ # @param exclude [Array<String>] URL path patterns to exclude.
381
+ #
382
+ # @param include [Array<String>] URL path patterns to include.
383
+ #
384
+ # @param max_urls [Integer] Maximum number of sitemap URLs to track (capped at 10,000).
385
+ #
386
+ # @param type [Symbol, :sitemap]
387
+ end
388
+
389
+ class Extract < ContextDev::Internal::Type::BaseModel
390
+ # @!attribute type
391
+ #
392
+ # @return [Symbol, :extract]
393
+ required :type, const: :extract
394
+
395
+ # @!attribute url
396
+ # Root URL to extract structured data from.
397
+ #
398
+ # @return [String]
399
+ required :url, String
400
+
401
+ # @!attribute follow_subdomains
402
+ #
403
+ # @return [Boolean, nil]
404
+ optional :follow_subdomains, ContextDev::Internal::Type::Boolean
405
+
406
+ # @!attribute instructions
407
+ # Optional natural-language instructions guiding what to extract.
408
+ #
409
+ # @return [String, nil]
410
+ optional :instructions, String
411
+
412
+ # @!attribute max_depth
413
+ # Optional maximum link depth from the starting URL (0 = only the starting page).
414
+ #
415
+ # @return [Integer, nil]
416
+ optional :max_depth, Integer
417
+
418
+ # @!attribute max_pages
419
+ # Maximum number of pages to analyze during extraction.
420
+ #
421
+ # @return [Integer, nil]
422
+ optional :max_pages, Integer
423
+
424
+ # @!attribute schema
425
+ # JSON Schema describing the structured data to extract and watch for changes. If
426
+ # omitted, a default summary + key-points schema is used.
427
+ #
428
+ # @return [Hash{Symbol=>Object}, nil]
429
+ optional :schema, ContextDev::Internal::Type::HashOf[ContextDev::Internal::Type::Unknown]
430
+
431
+ # @!method initialize(url:, follow_subdomains: nil, instructions: nil, max_depth: nil, max_pages: nil, schema: nil, type: :extract)
432
+ # Some parameter documentations has been truncated, see
433
+ # {ContextDev::Models::MonitorListResponse::Data::Target::Extract} for more
434
+ # details.
435
+ #
436
+ # Watch a site's extracted structured data.
437
+ #
438
+ # @param url [String] Root URL to extract structured data from.
439
+ #
440
+ # @param follow_subdomains [Boolean]
441
+ #
442
+ # @param instructions [String] Optional natural-language instructions guiding what to extract.
443
+ #
444
+ # @param max_depth [Integer] Optional maximum link depth from the starting URL (0 = only the starting page).
445
+ #
446
+ # @param max_pages [Integer] Maximum number of pages to analyze during extraction.
447
+ #
448
+ # @param schema [Hash{Symbol=>Object}] JSON Schema describing the structured data to extract and watch for changes. If
449
+ #
450
+ # @param type [Symbol, :extract]
451
+ end
452
+
453
+ # @!method self.variants
454
+ # @return [Array(ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract)]
455
+ end
456
+
457
+ # @see ContextDev::Models::MonitorListResponse::Data#last_error
458
+ class LastError < ContextDev::Internal::Type::BaseModel
459
+ # @!attribute code
460
+ #
461
+ # @return [String]
462
+ required :code, String
463
+
464
+ # @!attribute message
465
+ #
466
+ # @return [String]
467
+ required :message, String
468
+
469
+ # @!method initialize(code:, message:)
470
+ # Error from the most recent failed run; null when the last run succeeded.
471
+ #
472
+ # @param code [String]
473
+ # @param message [String]
474
+ end
475
+
476
+ # @see ContextDev::Models::MonitorListResponse::Data#webhook
477
+ class Webhook < ContextDev::Internal::Type::BaseModel
478
+ # @!attribute url
479
+ # Webhook URL called when a change is detected.
480
+ #
481
+ # @return [String]
482
+ required :url, String
483
+
484
+ response_only do
485
+ # @!attribute secret
486
+ # Signing secret used to verify webhook authenticity. Each delivery includes an
487
+ # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
488
+ # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
489
+ # compare and reject stale timestamps to prevent replay. Generated by the API;
490
+ # cannot be set by clients.
491
+ #
492
+ # @return [String, nil]
493
+ optional :secret, String
494
+ end
495
+
496
+ # @!method initialize(url:, secret: nil)
497
+ # Some parameter documentations has been truncated, see
498
+ # {ContextDev::Models::MonitorListResponse::Data::Webhook} for more details.
499
+ #
500
+ # @param url [String] Webhook URL called when a change is detected.
501
+ #
502
+ # @param secret [String] Signing secret used to verify webhook authenticity. Each delivery includes an `X
503
+ end
504
+ end
505
+ end
506
+ end
507
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Monitors#list_runs
6
+ class MonitorListRunsParams < ContextDev::Internal::Type::BaseModel
7
+ extend ContextDev::Internal::Type::RequestParameters::Converter
8
+ include ContextDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute monitor_id
11
+ #
12
+ # @return [String]
13
+ required :monitor_id, String
14
+
15
+ # @!attribute cursor
16
+ #
17
+ # @return [String, nil]
18
+ optional :cursor, String
19
+
20
+ # @!attribute limit
21
+ #
22
+ # @return [Integer, nil]
23
+ optional :limit, Integer
24
+
25
+ # @!attribute status
26
+ # Lifecycle status of a run. `skipped` runs never executed — see `skip_reason`
27
+ # (insufficient credits, monitor paused, or superseded by a concurrent run).
28
+ #
29
+ # @return [Symbol, ContextDev::Models::MonitorListRunsParams::Status, nil]
30
+ optional :status, enum: -> { ContextDev::MonitorListRunsParams::Status }
31
+
32
+ # @!method initialize(monitor_id:, cursor: nil, limit: nil, status: nil, request_options: {})
33
+ # Some parameter documentations has been truncated, see
34
+ # {ContextDev::Models::MonitorListRunsParams} for more details.
35
+ #
36
+ # @param monitor_id [String]
37
+ #
38
+ # @param cursor [String]
39
+ #
40
+ # @param limit [Integer]
41
+ #
42
+ # @param status [Symbol, ContextDev::Models::MonitorListRunsParams::Status] Lifecycle status of a run. `skipped` runs never executed — see `skip_reason` (in
43
+ #
44
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}]
45
+
46
+ # Lifecycle status of a run. `skipped` runs never executed — see `skip_reason`
47
+ # (insufficient credits, monitor paused, or superseded by a concurrent run).
48
+ module Status
49
+ extend ContextDev::Internal::Type::Enum
50
+
51
+ QUEUED = :queued
52
+ RUNNING = :running
53
+ COMPLETED = :completed
54
+ FAILED = :failed
55
+ SKIPPED = :skipped
56
+
57
+ # @!method self.values
58
+ # @return [Array<Symbol>]
59
+ end
60
+ end
61
+ end
62
+ end