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