berrycrawl 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +12 -0
  3. data/.rubocop.yml +103 -0
  4. data/CONTRIBUTING.md +120 -0
  5. data/LICENSE +17 -0
  6. data/README.md +183 -0
  7. data/Rakefile +20 -0
  8. data/custom.gemspec.rb +16 -0
  9. data/lib/Berrycrawl/account/client.rb +44 -0
  10. data/lib/Berrycrawl/brand/client.rb +48 -0
  11. data/lib/Berrycrawl/brand/types/brand_dto.rb +15 -0
  12. data/lib/Berrycrawl/client.rb +268 -0
  13. data/lib/Berrycrawl/environment.rb +7 -0
  14. data/lib/Berrycrawl/errors/api_error.rb +8 -0
  15. data/lib/Berrycrawl/errors/client_error.rb +17 -0
  16. data/lib/Berrycrawl/errors/redirect_error.rb +8 -0
  17. data/lib/Berrycrawl/errors/response_error.rb +42 -0
  18. data/lib/Berrycrawl/errors/server_error.rb +11 -0
  19. data/lib/Berrycrawl/errors/timeout_error.rb +8 -0
  20. data/lib/Berrycrawl/internal/errors/constraint_error.rb +10 -0
  21. data/lib/Berrycrawl/internal/errors/type_error.rb +10 -0
  22. data/lib/Berrycrawl/internal/http/base_request.rb +51 -0
  23. data/lib/Berrycrawl/internal/http/raw_client.rb +252 -0
  24. data/lib/Berrycrawl/internal/iterators/cursor_item_iterator.rb +28 -0
  25. data/lib/Berrycrawl/internal/iterators/cursor_page_iterator.rb +63 -0
  26. data/lib/Berrycrawl/internal/iterators/item_iterator.rb +65 -0
  27. data/lib/Berrycrawl/internal/iterators/offset_item_iterator.rb +30 -0
  28. data/lib/Berrycrawl/internal/iterators/offset_page_iterator.rb +103 -0
  29. data/lib/Berrycrawl/internal/json/request.rb +41 -0
  30. data/lib/Berrycrawl/internal/json/serializable.rb +25 -0
  31. data/lib/Berrycrawl/internal/multipart/multipart_encoder.rb +141 -0
  32. data/lib/Berrycrawl/internal/multipart/multipart_form_data.rb +78 -0
  33. data/lib/Berrycrawl/internal/multipart/multipart_form_data_part.rb +51 -0
  34. data/lib/Berrycrawl/internal/multipart/multipart_request.rb +40 -0
  35. data/lib/Berrycrawl/internal/types/array.rb +47 -0
  36. data/lib/Berrycrawl/internal/types/boolean.rb +34 -0
  37. data/lib/Berrycrawl/internal/types/enum.rb +56 -0
  38. data/lib/Berrycrawl/internal/types/hash.rb +36 -0
  39. data/lib/Berrycrawl/internal/types/model/field.rb +38 -0
  40. data/lib/Berrycrawl/internal/types/model.rb +208 -0
  41. data/lib/Berrycrawl/internal/types/type.rb +35 -0
  42. data/lib/Berrycrawl/internal/types/union.rb +161 -0
  43. data/lib/Berrycrawl/internal/types/unknown.rb +15 -0
  44. data/lib/Berrycrawl/internal/types/utils.rb +116 -0
  45. data/lib/Berrycrawl/jobs/client.rb +127 -0
  46. data/lib/Berrycrawl/jobs/types/cancel_jobs_request.rb +11 -0
  47. data/lib/Berrycrawl/jobs/types/get_jobs_request.rb +15 -0
  48. data/lib/Berrycrawl/jobs/types/list_jobs_request.rb +17 -0
  49. data/lib/Berrycrawl/jobs/types/list_jobs_request_status.rb +17 -0
  50. data/lib/Berrycrawl/jobs/types/list_jobs_request_type.rb +14 -0
  51. data/lib/Berrycrawl/types/account_response.rb +11 -0
  52. data/lib/Berrycrawl/types/account_response_data.rb +21 -0
  53. data/lib/Berrycrawl/types/account_response_data_plan.rb +17 -0
  54. data/lib/Berrycrawl/types/account_response_data_queue.rb +11 -0
  55. data/lib/Berrycrawl/types/action_dto.rb +21 -0
  56. data/lib/Berrycrawl/types/action_dto_direction.rb +12 -0
  57. data/lib/Berrycrawl/types/action_dto_type.rb +18 -0
  58. data/lib/Berrycrawl/types/agent_config_dto.rb +11 -0
  59. data/lib/Berrycrawl/types/agent_config_dto_mode.rb +12 -0
  60. data/lib/Berrycrawl/types/brand_asset.rb +17 -0
  61. data/lib/Berrycrawl/types/brand_profile.rb +27 -0
  62. data/lib/Berrycrawl/types/brand_profile_colors_item.rb +11 -0
  63. data/lib/Berrycrawl/types/brand_profile_fonts_item.rb +11 -0
  64. data/lib/Berrycrawl/types/brand_profile_socials_item.rb +11 -0
  65. data/lib/Berrycrawl/types/brand_response.rb +11 -0
  66. data/lib/Berrycrawl/types/brand_response_data.rb +11 -0
  67. data/lib/Berrycrawl/types/brand_response_data_meta.rb +15 -0
  68. data/lib/Berrycrawl/types/cancel_job_response.rb +11 -0
  69. data/lib/Berrycrawl/types/cancel_job_response_data.rb +11 -0
  70. data/lib/Berrycrawl/types/change_tracking_format_dto.rb +15 -0
  71. data/lib/Berrycrawl/types/change_tracking_format_dto_type.rb +11 -0
  72. data/lib/Berrycrawl/types/crawl_dto.rb +41 -0
  73. data/lib/Berrycrawl/types/crawl_dto_sitemap.rb +13 -0
  74. data/lib/Berrycrawl/types/extract_dto.rb +29 -0
  75. data/lib/Berrycrawl/types/extract_webhook_config_dto.rb +15 -0
  76. data/lib/Berrycrawl/types/job_created_response.rb +15 -0
  77. data/lib/Berrycrawl/types/job_response.rb +11 -0
  78. data/lib/Berrycrawl/types/job_response_data.rb +37 -0
  79. data/lib/Berrycrawl/types/job_response_data_errors_item.rb +11 -0
  80. data/lib/Berrycrawl/types/job_summary.rb +29 -0
  81. data/lib/Berrycrawl/types/job_summary_type.rb +12 -0
  82. data/lib/Berrycrawl/types/json_format_dto.rb +13 -0
  83. data/lib/Berrycrawl/types/json_format_dto_type.rb +11 -0
  84. data/lib/Berrycrawl/types/list_jobs_response.rb +11 -0
  85. data/lib/Berrycrawl/types/list_jobs_response_data.rb +11 -0
  86. data/lib/Berrycrawl/types/list_webhooks_response.rb +11 -0
  87. data/lib/Berrycrawl/types/location_dto.rb +11 -0
  88. data/lib/Berrycrawl/types/map_dto.rb +23 -0
  89. data/lib/Berrycrawl/types/map_dto_sitemap.rb +13 -0
  90. data/lib/Berrycrawl/types/map_link.rb +13 -0
  91. data/lib/Berrycrawl/types/map_response.rb +15 -0
  92. data/lib/Berrycrawl/types/message_response.rb +11 -0
  93. data/lib/Berrycrawl/types/pagination.rb +15 -0
  94. data/lib/Berrycrawl/types/parse_dto.rb +11 -0
  95. data/lib/Berrycrawl/types/scrape_dto.rb +49 -0
  96. data/lib/Berrycrawl/types/scrape_dto_formats_item.rb +17 -0
  97. data/lib/Berrycrawl/types/scrape_dto_formats_item_zero.rb +18 -0
  98. data/lib/Berrycrawl/types/scrape_dto_proxy.rb +16 -0
  99. data/lib/Berrycrawl/types/scrape_metadata.rb +17 -0
  100. data/lib/Berrycrawl/types/scrape_response.rb +17 -0
  101. data/lib/Berrycrawl/types/scrape_response_credits.rb +9 -0
  102. data/lib/Berrycrawl/types/screenshot_clip_dto.rb +15 -0
  103. data/lib/Berrycrawl/types/screenshot_cookie_dto.rb +21 -0
  104. data/lib/Berrycrawl/types/screenshot_cookie_dto_same_site.rb +13 -0
  105. data/lib/Berrycrawl/types/screenshot_dto.rb +79 -0
  106. data/lib/Berrycrawl/types/screenshot_dto_color_scheme.rb +12 -0
  107. data/lib/Berrycrawl/types/screenshot_dto_device.rb +15 -0
  108. data/lib/Berrycrawl/types/screenshot_dto_format.rb +13 -0
  109. data/lib/Berrycrawl/types/screenshot_dto_full_page_algorithm.rb +13 -0
  110. data/lib/Berrycrawl/types/screenshot_dto_proxy.rb +16 -0
  111. data/lib/Berrycrawl/types/screenshot_dto_response_format.rb +12 -0
  112. data/lib/Berrycrawl/types/screenshot_dto_scale.rb +12 -0
  113. data/lib/Berrycrawl/types/screenshot_dto_wait_until.rb +13 -0
  114. data/lib/Berrycrawl/types/screenshot_location_dto.rb +11 -0
  115. data/lib/Berrycrawl/types/screenshot_viewport_dto.rb +11 -0
  116. data/lib/Berrycrawl/types/search_dto.rb +23 -0
  117. data/lib/Berrycrawl/types/search_response.rb +19 -0
  118. data/lib/Berrycrawl/types/search_response_provider.rb +11 -0
  119. data/lib/Berrycrawl/types/search_result.rb +19 -0
  120. data/lib/Berrycrawl/types/search_result_provider.rb +11 -0
  121. data/lib/Berrycrawl/types/summary_format_dto.rb +11 -0
  122. data/lib/Berrycrawl/types/summary_format_dto_type.rb +11 -0
  123. data/lib/Berrycrawl/types/test_webhook_response.rb +15 -0
  124. data/lib/Berrycrawl/types/webhook.rb +23 -0
  125. data/lib/Berrycrawl/types/webhook_config_dto.rb +15 -0
  126. data/lib/Berrycrawl/types/webhook_response.rb +11 -0
  127. data/lib/Berrycrawl/version.rb +5 -0
  128. data/lib/Berrycrawl/webhooks/client.rb +214 -0
  129. data/lib/Berrycrawl/webhooks/types/create_webhook_dto.rb +13 -0
  130. data/lib/Berrycrawl/webhooks/types/delete_webhooks_request.rb +11 -0
  131. data/lib/Berrycrawl/webhooks/types/get_webhooks_request.rb +11 -0
  132. data/lib/Berrycrawl/webhooks/types/test_webhook_dto.rb +15 -0
  133. data/lib/Berrycrawl/webhooks/types/update_webhook_dto.rb +17 -0
  134. data/lib/Berrycrawl.rb +130 -0
  135. data/reference.md +1759 -0
  136. metadata +179 -0
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ class SummaryFormatDto < Internal::Types::Model
6
+ field :query, -> { String }, optional: true, nullable: false
7
+
8
+ field :type, -> { Berrycrawl::Types::SummaryFormatDtoType }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ module SummaryFormatDtoType
6
+ extend Berrycrawl::Internal::Types::Enum
7
+
8
+ SUMMARY = "summary"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ class TestWebhookResponse < Internal::Types::Model
6
+ field :event, -> { String }, optional: false, nullable: false
7
+
8
+ field :message, -> { String }, optional: false, nullable: false
9
+
10
+ field :payload, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
11
+
12
+ field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ class Webhook < Internal::Types::Model
6
+ field :created_at, -> { String }, optional: true, nullable: false, api_name: "createdAt"
7
+
8
+ field :events, -> { Internal::Types::Array[String] }, optional: false, nullable: false
9
+
10
+ field :id, -> { String }, optional: false, nullable: false
11
+
12
+ field :is_active, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "isActive"
13
+
14
+ field :recent_deliveries, -> { Internal::Types::Array[Internal::Types::Hash[String, Object]] }, optional: true, nullable: false, api_name: "recentDeliveries"
15
+
16
+ field :secret, -> { String }, optional: true, nullable: false
17
+
18
+ field :updated_at, -> { String }, optional: true, nullable: false, api_name: "updatedAt"
19
+
20
+ field :url, -> { String }, optional: false, nullable: false
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ class WebhookConfigDto < Internal::Types::Model
6
+ field :events, -> { Internal::Types::Array[String] }, optional: false, nullable: false
7
+
8
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
9
+
10
+ field :secret, -> { String }, optional: true, nullable: false
11
+
12
+ field :url, -> { String }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Types
5
+ class WebhookResponse < Internal::Types::Model
6
+ field :data, -> { Berrycrawl::Types::Webhook }, optional: false, nullable: false
7
+
8
+ field :success, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,214 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ class Client
6
+ # @param client [Berrycrawl::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # @param request_options [Hash]
14
+ # @param _params [Hash]
15
+ # @option request_options [String] :base_url
16
+ # @option request_options [Hash{String => Object}] :additional_headers
17
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
18
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
19
+ # @option request_options [Integer] :timeout_in_seconds
20
+ #
21
+ # @return [Berrycrawl::Types::ListWebhooksResponse]
22
+ def list(request_options: {}, **_params)
23
+ request = Berrycrawl::Internal::JSON::Request.new(
24
+ base_url: request_options[:base_url],
25
+ method: "GET",
26
+ path: "webhooks",
27
+ request_options: request_options
28
+ )
29
+ begin
30
+ response = @client.send(request)
31
+ rescue Net::HTTPRequestTimeout
32
+ raise Berrycrawl::Errors::TimeoutError
33
+ end
34
+ code = response.code.to_i
35
+ if code.between?(200, 299)
36
+ Berrycrawl::Types::ListWebhooksResponse.load(response.body)
37
+ else
38
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
39
+ raise error_class.new(response.body, code: code)
40
+ end
41
+ end
42
+
43
+ # @param request_options [Hash]
44
+ # @param params [Berrycrawl::Webhooks::Types::CreateWebhookDto]
45
+ # @option request_options [String] :base_url
46
+ # @option request_options [Hash{String => Object}] :additional_headers
47
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
48
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
49
+ # @option request_options [Integer] :timeout_in_seconds
50
+ #
51
+ # @return [Berrycrawl::Types::WebhookResponse]
52
+ def create(request_options: {}, **params)
53
+ params = Berrycrawl::Internal::Types::Utils.normalize_keys(params)
54
+ request = Berrycrawl::Internal::JSON::Request.new(
55
+ base_url: request_options[:base_url],
56
+ method: "POST",
57
+ path: "webhooks",
58
+ body: Berrycrawl::Webhooks::Types::CreateWebhookDto.new(params).to_h,
59
+ request_options: request_options
60
+ )
61
+ begin
62
+ response = @client.send(request)
63
+ rescue Net::HTTPRequestTimeout
64
+ raise Berrycrawl::Errors::TimeoutError
65
+ end
66
+ code = response.code.to_i
67
+ if code.between?(200, 299)
68
+ Berrycrawl::Types::WebhookResponse.load(response.body)
69
+ else
70
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
71
+ raise error_class.new(response.body, code: code)
72
+ end
73
+ end
74
+
75
+ # @param request_options [Hash]
76
+ # @param params [Hash]
77
+ # @option request_options [String] :base_url
78
+ # @option request_options [Hash{String => Object}] :additional_headers
79
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
80
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
81
+ # @option request_options [Integer] :timeout_in_seconds
82
+ # @option params [String] :id
83
+ #
84
+ # @return [Berrycrawl::Types::WebhookResponse]
85
+ def get(request_options: {}, **params)
86
+ params = Berrycrawl::Internal::Types::Utils.normalize_keys(params)
87
+ request = Berrycrawl::Internal::JSON::Request.new(
88
+ base_url: request_options[:base_url],
89
+ method: "GET",
90
+ path: "webhooks/#{URI.encode_uri_component(params[:id].to_s)}",
91
+ request_options: request_options
92
+ )
93
+ begin
94
+ response = @client.send(request)
95
+ rescue Net::HTTPRequestTimeout
96
+ raise Berrycrawl::Errors::TimeoutError
97
+ end
98
+ code = response.code.to_i
99
+ if code.between?(200, 299)
100
+ Berrycrawl::Types::WebhookResponse.load(response.body)
101
+ else
102
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
103
+ raise error_class.new(response.body, code: code)
104
+ end
105
+ end
106
+
107
+ # @param request_options [Hash]
108
+ # @param params [Hash]
109
+ # @option request_options [String] :base_url
110
+ # @option request_options [Hash{String => Object}] :additional_headers
111
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
112
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
113
+ # @option request_options [Integer] :timeout_in_seconds
114
+ # @option params [String] :id
115
+ #
116
+ # @return [Berrycrawl::Types::MessageResponse]
117
+ def delete(request_options: {}, **params)
118
+ params = Berrycrawl::Internal::Types::Utils.normalize_keys(params)
119
+ request = Berrycrawl::Internal::JSON::Request.new(
120
+ base_url: request_options[:base_url],
121
+ method: "DELETE",
122
+ path: "webhooks/#{URI.encode_uri_component(params[:id].to_s)}",
123
+ request_options: request_options
124
+ )
125
+ begin
126
+ response = @client.send(request)
127
+ rescue Net::HTTPRequestTimeout
128
+ raise Berrycrawl::Errors::TimeoutError
129
+ end
130
+ code = response.code.to_i
131
+ if code.between?(200, 299)
132
+ Berrycrawl::Types::MessageResponse.load(response.body)
133
+ else
134
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
135
+ raise error_class.new(response.body, code: code)
136
+ end
137
+ end
138
+
139
+ # @param request_options [Hash]
140
+ # @param params [Berrycrawl::Webhooks::Types::UpdateWebhookDto]
141
+ # @option request_options [String] :base_url
142
+ # @option request_options [Hash{String => Object}] :additional_headers
143
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
144
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
145
+ # @option request_options [Integer] :timeout_in_seconds
146
+ # @option params [String] :id
147
+ #
148
+ # @return [Berrycrawl::Types::WebhookResponse]
149
+ def update(request_options: {}, **params)
150
+ params = Berrycrawl::Internal::Types::Utils.normalize_keys(params)
151
+ request_data = Berrycrawl::Webhooks::Types::UpdateWebhookDto.new(params).to_h
152
+ non_body_param_names = %w[id]
153
+ body = request_data.except(*non_body_param_names)
154
+
155
+ request = Berrycrawl::Internal::JSON::Request.new(
156
+ base_url: request_options[:base_url],
157
+ method: "PATCH",
158
+ path: "webhooks/#{URI.encode_uri_component(params[:id].to_s)}",
159
+ body: body,
160
+ request_options: request_options
161
+ )
162
+ begin
163
+ response = @client.send(request)
164
+ rescue Net::HTTPRequestTimeout
165
+ raise Berrycrawl::Errors::TimeoutError
166
+ end
167
+ code = response.code.to_i
168
+ if code.between?(200, 299)
169
+ Berrycrawl::Types::WebhookResponse.load(response.body)
170
+ else
171
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
172
+ raise error_class.new(response.body, code: code)
173
+ end
174
+ end
175
+
176
+ # @param request_options [Hash]
177
+ # @param params [Berrycrawl::Webhooks::Types::TestWebhookDto]
178
+ # @option request_options [String] :base_url
179
+ # @option request_options [Hash{String => Object}] :additional_headers
180
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
181
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
182
+ # @option request_options [Integer] :timeout_in_seconds
183
+ # @option params [String] :id
184
+ #
185
+ # @return [Berrycrawl::Types::TestWebhookResponse]
186
+ def test(request_options: {}, **params)
187
+ params = Berrycrawl::Internal::Types::Utils.normalize_keys(params)
188
+ request_data = Berrycrawl::Webhooks::Types::TestWebhookDto.new(params).to_h
189
+ non_body_param_names = %w[id]
190
+ body = request_data.except(*non_body_param_names)
191
+
192
+ request = Berrycrawl::Internal::JSON::Request.new(
193
+ base_url: request_options[:base_url],
194
+ method: "POST",
195
+ path: "webhooks/#{URI.encode_uri_component(params[:id].to_s)}/test",
196
+ body: body,
197
+ request_options: request_options
198
+ )
199
+ begin
200
+ response = @client.send(request)
201
+ rescue Net::HTTPRequestTimeout
202
+ raise Berrycrawl::Errors::TimeoutError
203
+ end
204
+ code = response.code.to_i
205
+ if code.between?(200, 299)
206
+ Berrycrawl::Types::TestWebhookResponse.load(response.body)
207
+ else
208
+ error_class = Berrycrawl::Errors::ResponseError.subclass_for_code(code)
209
+ raise error_class.new(response.body, code: code)
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ module Types
6
+ class CreateWebhookDto < Internal::Types::Model
7
+ field :events, -> { Internal::Types::Array[String] }, optional: false, nullable: false
8
+
9
+ field :url, -> { String }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ module Types
6
+ class DeleteWebhooksRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ module Types
6
+ class GetWebhooksRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ module Types
6
+ class TestWebhookDto < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :event, -> { String }, optional: false, nullable: false
10
+
11
+ field :payload, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Berrycrawl
4
+ module Webhooks
5
+ module Types
6
+ class UpdateWebhookDto < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :events, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
+
11
+ field :is_active, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isActive"
12
+
13
+ field :url, -> { String }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/Berrycrawl.rb ADDED
@@ -0,0 +1,130 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "net/http"
5
+ require "securerandom"
6
+
7
+ require_relative "Berrycrawl/internal/json/serializable"
8
+ require_relative "Berrycrawl/internal/types/type"
9
+ require_relative "Berrycrawl/internal/types/utils"
10
+ require_relative "Berrycrawl/internal/types/union"
11
+ require_relative "Berrycrawl/internal/errors/constraint_error"
12
+ require_relative "Berrycrawl/internal/errors/type_error"
13
+ require_relative "Berrycrawl/internal/http/base_request"
14
+ require_relative "Berrycrawl/internal/json/request"
15
+ require_relative "Berrycrawl/internal/http/raw_client"
16
+ require_relative "Berrycrawl/internal/multipart/multipart_encoder"
17
+ require_relative "Berrycrawl/internal/multipart/multipart_form_data_part"
18
+ require_relative "Berrycrawl/internal/multipart/multipart_form_data"
19
+ require_relative "Berrycrawl/internal/multipart/multipart_request"
20
+ require_relative "Berrycrawl/internal/types/model/field"
21
+ require_relative "Berrycrawl/internal/types/model"
22
+ require_relative "Berrycrawl/internal/types/array"
23
+ require_relative "Berrycrawl/internal/types/boolean"
24
+ require_relative "Berrycrawl/internal/types/enum"
25
+ require_relative "Berrycrawl/internal/types/hash"
26
+ require_relative "Berrycrawl/internal/types/unknown"
27
+ require_relative "Berrycrawl/errors/api_error"
28
+ require_relative "Berrycrawl/errors/response_error"
29
+ require_relative "Berrycrawl/errors/client_error"
30
+ require_relative "Berrycrawl/errors/redirect_error"
31
+ require_relative "Berrycrawl/errors/server_error"
32
+ require_relative "Berrycrawl/errors/timeout_error"
33
+ require_relative "Berrycrawl/internal/iterators/item_iterator"
34
+ require_relative "Berrycrawl/internal/iterators/cursor_item_iterator"
35
+ require_relative "Berrycrawl/internal/iterators/offset_item_iterator"
36
+ require_relative "Berrycrawl/internal/iterators/cursor_page_iterator"
37
+ require_relative "Berrycrawl/internal/iterators/offset_page_iterator"
38
+ require_relative "Berrycrawl/jobs/types/list_jobs_request_type"
39
+ require_relative "Berrycrawl/jobs/types/list_jobs_request_status"
40
+ require_relative "Berrycrawl/types/crawl_dto_sitemap"
41
+ require_relative "Berrycrawl/types/map_dto_sitemap"
42
+ require_relative "Berrycrawl/types/scrape_dto_formats_item_zero"
43
+ require_relative "Berrycrawl/types/change_tracking_format_dto_type"
44
+ require_relative "Berrycrawl/types/change_tracking_format_dto"
45
+ require_relative "Berrycrawl/types/json_format_dto_type"
46
+ require_relative "Berrycrawl/types/json_format_dto"
47
+ require_relative "Berrycrawl/types/summary_format_dto_type"
48
+ require_relative "Berrycrawl/types/summary_format_dto"
49
+ require_relative "Berrycrawl/types/scrape_dto_formats_item"
50
+ require_relative "Berrycrawl/types/scrape_dto_proxy"
51
+ require_relative "Berrycrawl/types/screenshot_dto_color_scheme"
52
+ require_relative "Berrycrawl/types/screenshot_dto_device"
53
+ require_relative "Berrycrawl/types/screenshot_dto_format"
54
+ require_relative "Berrycrawl/types/screenshot_dto_full_page_algorithm"
55
+ require_relative "Berrycrawl/types/screenshot_dto_proxy"
56
+ require_relative "Berrycrawl/types/screenshot_dto_response_format"
57
+ require_relative "Berrycrawl/types/screenshot_dto_scale"
58
+ require_relative "Berrycrawl/types/screenshot_dto_wait_until"
59
+ require_relative "Berrycrawl/types/account_response_data_plan"
60
+ require_relative "Berrycrawl/types/account_response_data_queue"
61
+ require_relative "Berrycrawl/types/account_response_data"
62
+ require_relative "Berrycrawl/types/account_response"
63
+ require_relative "Berrycrawl/types/action_dto_direction"
64
+ require_relative "Berrycrawl/types/action_dto_type"
65
+ require_relative "Berrycrawl/types/action_dto"
66
+ require_relative "Berrycrawl/types/agent_config_dto_mode"
67
+ require_relative "Berrycrawl/types/agent_config_dto"
68
+ require_relative "Berrycrawl/types/brand_asset"
69
+ require_relative "Berrycrawl/types/brand_profile_colors_item"
70
+ require_relative "Berrycrawl/types/brand_profile_fonts_item"
71
+ require_relative "Berrycrawl/types/brand_profile_socials_item"
72
+ require_relative "Berrycrawl/types/brand_profile"
73
+ require_relative "Berrycrawl/types/brand_response_data_meta"
74
+ require_relative "Berrycrawl/types/brand_response_data"
75
+ require_relative "Berrycrawl/types/brand_response"
76
+ require_relative "Berrycrawl/types/cancel_job_response_data"
77
+ require_relative "Berrycrawl/types/cancel_job_response"
78
+ require_relative "Berrycrawl/types/extract_webhook_config_dto"
79
+ require_relative "Berrycrawl/types/job_created_response"
80
+ require_relative "Berrycrawl/types/job_response_data_errors_item"
81
+ require_relative "Berrycrawl/types/job_summary_type"
82
+ require_relative "Berrycrawl/types/job_summary"
83
+ require_relative "Berrycrawl/types/pagination"
84
+ require_relative "Berrycrawl/types/job_response_data"
85
+ require_relative "Berrycrawl/types/job_response"
86
+ require_relative "Berrycrawl/types/list_jobs_response_data"
87
+ require_relative "Berrycrawl/types/list_jobs_response"
88
+ require_relative "Berrycrawl/types/webhook"
89
+ require_relative "Berrycrawl/types/list_webhooks_response"
90
+ require_relative "Berrycrawl/types/location_dto"
91
+ require_relative "Berrycrawl/types/map_link"
92
+ require_relative "Berrycrawl/types/map_response"
93
+ require_relative "Berrycrawl/types/message_response"
94
+ require_relative "Berrycrawl/types/scrape_metadata"
95
+ require_relative "Berrycrawl/types/scrape_response_credits"
96
+ require_relative "Berrycrawl/types/scrape_response"
97
+ require_relative "Berrycrawl/types/screenshot_clip_dto"
98
+ require_relative "Berrycrawl/types/screenshot_cookie_dto_same_site"
99
+ require_relative "Berrycrawl/types/screenshot_cookie_dto"
100
+ require_relative "Berrycrawl/types/screenshot_location_dto"
101
+ require_relative "Berrycrawl/types/screenshot_viewport_dto"
102
+ require_relative "Berrycrawl/types/search_response_provider"
103
+ require_relative "Berrycrawl/types/search_result_provider"
104
+ require_relative "Berrycrawl/types/search_result"
105
+ require_relative "Berrycrawl/types/search_response"
106
+ require_relative "Berrycrawl/types/test_webhook_response"
107
+ require_relative "Berrycrawl/types/webhook_config_dto"
108
+ require_relative "Berrycrawl/types/webhook_response"
109
+ require_relative "Berrycrawl/client"
110
+ require_relative "Berrycrawl/account/client"
111
+ require_relative "Berrycrawl/brand/client"
112
+ require_relative "Berrycrawl/brand/types/brand_dto"
113
+ require_relative "Berrycrawl/jobs/client"
114
+ require_relative "Berrycrawl/jobs/types/list_jobs_request"
115
+ require_relative "Berrycrawl/jobs/types/get_jobs_request"
116
+ require_relative "Berrycrawl/jobs/types/cancel_jobs_request"
117
+ require_relative "Berrycrawl/webhooks/client"
118
+ require_relative "Berrycrawl/webhooks/types/create_webhook_dto"
119
+ require_relative "Berrycrawl/webhooks/types/get_webhooks_request"
120
+ require_relative "Berrycrawl/webhooks/types/delete_webhooks_request"
121
+ require_relative "Berrycrawl/webhooks/types/update_webhook_dto"
122
+ require_relative "Berrycrawl/webhooks/types/test_webhook_dto"
123
+ require_relative "Berrycrawl/types/crawl_dto"
124
+ require_relative "Berrycrawl/types/extract_dto"
125
+ require_relative "Berrycrawl/types/map_dto"
126
+ require_relative "Berrycrawl/types/parse_dto"
127
+ require_relative "Berrycrawl/types/scrape_dto"
128
+ require_relative "Berrycrawl/types/screenshot_dto"
129
+ require_relative "Berrycrawl/types/search_dto"
130
+ require_relative "Berrycrawl/environment"