bytekit-sdk 0.3.0__py3-none-any.whl
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.
- bytekit/__init__.py +8 -0
- bytekit/api/__init__.py +1 -0
- bytekit/api/account/__init__.py +1 -0
- bytekit/api/account/get_account.py +157 -0
- bytekit/api/bulk/__init__.py +1 -0
- bytekit/api/bulk/create_bulk.py +204 -0
- bytekit/api/bulk/delete_bulk.py +177 -0
- bytekit/api/bulk/get_bulk.py +157 -0
- bytekit/api/bulk/list_bulk_screenshots.py +152 -0
- bytekit/api/fetch/__init__.py +1 -0
- bytekit/api/fetch/get_fetch.py +254 -0
- bytekit/api/fetch/post_fetch.py +178 -0
- bytekit/api/fetch_bulk/__init__.py +1 -0
- bytekit/api/fetch_bulk/create_fetch_bulk.py +180 -0
- bytekit/api/fetch_bulk/get_fetch_bulk.py +157 -0
- bytekit/api/monitors/__init__.py +1 -0
- bytekit/api/monitors/create_monitor.py +180 -0
- bytekit/api/monitors/delete_monitor.py +155 -0
- bytekit/api/monitors/get_monitor.py +157 -0
- bytekit/api/monitors/list_monitor_captures.py +188 -0
- bytekit/api/monitors/list_monitors.py +193 -0
- bytekit/api/monitors/update_monitor.py +191 -0
- bytekit/api/scrape/__init__.py +1 -0
- bytekit/api/scrape/create_scrape.py +197 -0
- bytekit/api/scrape/get_scrape.py +231 -0
- bytekit/api/scrape_bulk/__init__.py +1 -0
- bytekit/api/scrape_bulk/create_scrape_bulk.py +188 -0
- bytekit/api/scrape_bulk/get_scrape_bulk.py +157 -0
- bytekit/api/screenshots/__init__.py +1 -0
- bytekit/api/screenshots/create_screenshot.py +208 -0
- bytekit/api/screenshots/get_screenshot.py +177 -0
- bytekit/api/search/__init__.py +1 -0
- bytekit/api/search/create_search.py +225 -0
- bytekit/api/sitemap/__init__.py +1 -0
- bytekit/api/sitemap/create_sitemap.py +192 -0
- bytekit/api/sitemap/get_sitemap.py +157 -0
- bytekit/api/usage/__init__.py +1 -0
- bytekit/api/usage/get_usage.py +126 -0
- bytekit/api/usage/get_usage_by_endpoint.py +215 -0
- bytekit/api/usage/get_usage_daily.py +203 -0
- bytekit/api/webhooks/__init__.py +1 -0
- bytekit/api/webhooks/list_webhook_deliveries.py +214 -0
- bytekit/api/webhooks/retry_webhook_delivery.py +165 -0
- bytekit/client.py +418 -0
- bytekit/errors.py +18 -0
- bytekit/models/__init__.py +401 -0
- bytekit/models/account_bearer_response.py +207 -0
- bytekit/models/account_bearer_response_api_key.py +134 -0
- bytekit/models/account_bearer_response_api_key_environment.py +8 -0
- bytekit/models/account_bearer_response_auto_topup.py +83 -0
- bytekit/models/account_bearer_response_plan.py +150 -0
- bytekit/models/account_bearer_response_subscription.py +85 -0
- bytekit/models/account_bearer_response_subscription_plan.py +99 -0
- bytekit/models/account_bearer_response_subscription_status.py +10 -0
- bytekit/models/account_session_response.py +164 -0
- bytekit/models/account_session_response_notifications.py +51 -0
- bytekit/models/account_session_response_plan.py +150 -0
- bytekit/models/bandwidth_balance.py +91 -0
- bytekit/models/capture_response.py +216 -0
- bytekit/models/capture_response_outcome.py +10 -0
- bytekit/models/clip.py +83 -0
- bytekit/models/cookie.py +90 -0
- bytekit/models/create_bulk_body.py +155 -0
- bytekit/models/create_bulk_body_defaults.py +423 -0
- bytekit/models/create_bulk_body_defaults_device.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_2_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_3_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_formats_item.py +12 -0
- bytekit/models/create_bulk_body_defaults_type.py +9 -0
- bytekit/models/create_bulk_body_defaults_viewport_type_0.py +67 -0
- bytekit/models/create_bulk_body_defaults_wait_until.py +10 -0
- bytekit/models/create_bulk_body_items_item.py +380 -0
- bytekit/models/create_bulk_body_items_item_device.py +9 -0
- bytekit/models/create_bulk_body_items_item_formats_item.py +12 -0
- bytekit/models/create_bulk_body_items_item_scenario.py +10 -0
- bytekit/models/create_bulk_body_items_item_type.py +9 -0
- bytekit/models/create_bulk_body_items_item_viewport_type_0.py +67 -0
- bytekit/models/create_bulk_body_items_item_wait_until.py +10 -0
- bytekit/models/create_bulk_response_202.py +164 -0
- bytekit/models/create_bulk_response_202_status.py +10 -0
- bytekit/models/create_fetch_bulk_body.py +161 -0
- bytekit/models/create_fetch_bulk_body_defaults.py +91 -0
- bytekit/models/create_fetch_bulk_body_defaults_format.py +9 -0
- bytekit/models/create_fetch_bulk_body_metadata.py +44 -0
- bytekit/models/create_fetch_bulk_body_urls_item_type_1.py +102 -0
- bytekit/models/create_fetch_bulk_body_urls_item_type_1_format.py +9 -0
- bytekit/models/create_fetch_bulk_response_202.py +44 -0
- bytekit/models/create_scrape_bulk_body.py +179 -0
- bytekit/models/create_scrape_bulk_body_custom.py +52 -0
- bytekit/models/create_scrape_bulk_body_defaults.py +167 -0
- bytekit/models/create_scrape_bulk_body_defaults_formats_item.py +12 -0
- bytekit/models/create_scrape_bulk_body_defaults_headers.py +44 -0
- bytekit/models/create_scrape_bulk_body_items_item.py +226 -0
- bytekit/models/create_scrape_bulk_body_items_item_custom.py +50 -0
- bytekit/models/create_scrape_bulk_body_items_item_formats_item.py +12 -0
- bytekit/models/create_scrape_bulk_body_items_item_headers.py +44 -0
- bytekit/models/create_scrape_bulk_body_items_item_metadata.py +44 -0
- bytekit/models/create_scrape_bulk_response_202.py +166 -0
- bytekit/models/create_scrape_bulk_response_202_status.py +10 -0
- bytekit/models/create_search_body.py +140 -0
- bytekit/models/create_search_body_date_range.py +13 -0
- bytekit/models/create_search_body_type.py +10 -0
- bytekit/models/create_search_response_200.py +119 -0
- bytekit/models/create_search_response_200_results_item.py +161 -0
- bytekit/models/create_search_response_200_results_item_image.py +113 -0
- bytekit/models/create_search_response_502.py +46 -0
- bytekit/models/create_search_response_502_error.py +8 -0
- bytekit/models/credit_balance.py +91 -0
- bytekit/models/delete_bulk_response_200.py +164 -0
- bytekit/models/delete_bulk_response_200_status.py +11 -0
- bytekit/models/error.py +83 -0
- bytekit/models/error_error.py +100 -0
- bytekit/models/error_status.py +8 -0
- bytekit/models/fetch_request.py +276 -0
- bytekit/models/fetch_request_cache_ttl_type_1.py +8 -0
- bytekit/models/fetch_request_custom.py +48 -0
- bytekit/models/fetch_request_format.py +9 -0
- bytekit/models/fetch_request_markdown_images.py +11 -0
- bytekit/models/fetch_request_markdown_links.py +11 -0
- bytekit/models/fetch_request_markdown_mode.py +10 -0
- bytekit/models/get_bulk_response_200.py +164 -0
- bytekit/models/get_bulk_response_200_status.py +11 -0
- bytekit/models/get_fetch_bulk_response_200.py +44 -0
- bytekit/models/get_fetch_cache_ttl_type_1.py +8 -0
- bytekit/models/get_fetch_format.py +9 -0
- bytekit/models/get_scrape_bulk_response_200.py +164 -0
- bytekit/models/get_scrape_bulk_response_200_status.py +11 -0
- bytekit/models/get_usage_by_endpoint_response_200.py +114 -0
- bytekit/models/get_usage_by_endpoint_response_200_rows_item.py +90 -0
- bytekit/models/get_usage_by_endpoint_response_200_rows_item_endpoint.py +17 -0
- bytekit/models/get_usage_by_endpoint_response_200_totals.py +67 -0
- bytekit/models/get_usage_daily_response_200.py +97 -0
- bytekit/models/get_usage_daily_response_200_data_item.py +219 -0
- bytekit/models/get_usage_response_200.py +344 -0
- bytekit/models/get_usage_response_200_plan_type.py +10 -0
- bytekit/models/list_bulk_screenshots_response_200.py +44 -0
- bytekit/models/list_monitor_captures_response_200.py +101 -0
- bytekit/models/list_monitors_response_200.py +101 -0
- bytekit/models/list_monitors_status.py +12 -0
- bytekit/models/list_webhook_deliveries_response_200.py +101 -0
- bytekit/models/list_webhook_deliveries_status.py +11 -0
- bytekit/models/metadata.py +44 -0
- bytekit/models/monitor_create_request.py +219 -0
- bytekit/models/monitor_create_request_interval_type.py +11 -0
- bytekit/models/monitor_create_request_notify_on.py +9 -0
- bytekit/models/monitor_create_request_options.py +44 -0
- bytekit/models/monitor_create_request_scrape_options.py +44 -0
- bytekit/models/monitor_create_request_type.py +9 -0
- bytekit/models/monitor_create_request_webhook_headers.py +44 -0
- bytekit/models/monitor_create_response.py +423 -0
- bytekit/models/monitor_response.py +411 -0
- bytekit/models/monitor_response_interval_type.py +11 -0
- bytekit/models/monitor_response_metadata_type_0.py +44 -0
- bytekit/models/monitor_response_status.py +12 -0
- bytekit/models/monitor_response_type.py +9 -0
- bytekit/models/monitor_response_webhook_headers_type_0.py +44 -0
- bytekit/models/monitor_update_request.py +223 -0
- bytekit/models/monitor_update_request_interval_type.py +11 -0
- bytekit/models/monitor_update_request_notify_on.py +9 -0
- bytekit/models/monitor_update_request_options.py +44 -0
- bytekit/models/monitor_update_request_scrape_options.py +44 -0
- bytekit/models/monitor_update_request_status.py +9 -0
- bytekit/models/monitor_update_request_webhook_headers.py +44 -0
- bytekit/models/scrape_error_envelope.py +113 -0
- bytekit/models/scrape_error_envelope_error.py +93 -0
- bytekit/models/scrape_error_envelope_error_code.py +18 -0
- bytekit/models/scrape_error_envelope_schema_version.py +8 -0
- bytekit/models/scrape_error_envelope_status.py +8 -0
- bytekit/models/scrape_formats.py +183 -0
- bytekit/models/scrape_markdown_tokens.py +75 -0
- bytekit/models/scrape_metadata.py +262 -0
- bytekit/models/scrape_queued_envelope.py +124 -0
- bytekit/models/scrape_queued_envelope_schema_version.py +8 -0
- bytekit/models/scrape_queued_envelope_status.py +8 -0
- bytekit/models/scrape_request.py +485 -0
- bytekit/models/scrape_request_cache_ttl_type_1.py +8 -0
- bytekit/models/scrape_request_custom.py +48 -0
- bytekit/models/scrape_request_events_item.py +10 -0
- bytekit/models/scrape_request_formats_item.py +12 -0
- bytekit/models/scrape_request_headers.py +44 -0
- bytekit/models/scrape_request_markdown_images.py +11 -0
- bytekit/models/scrape_request_markdown_links.py +11 -0
- bytekit/models/scrape_request_markdown_mode.py +10 -0
- bytekit/models/scrape_request_token_encoding.py +9 -0
- bytekit/models/scrape_request_x_internal_scrape_path.py +8 -0
- bytekit/models/scrape_scored_image.py +128 -0
- bytekit/models/scrape_scored_link.py +94 -0
- bytekit/models/scrape_stats.py +75 -0
- bytekit/models/scrape_success_envelope.py +345 -0
- bytekit/models/scrape_success_envelope_cache.py +10 -0
- bytekit/models/scrape_success_envelope_custom.py +48 -0
- bytekit/models/scrape_success_envelope_schema_version.py +8 -0
- bytekit/models/scrape_success_envelope_status.py +8 -0
- bytekit/models/scrape_table.py +96 -0
- bytekit/models/scrape_table_kind.py +10 -0
- bytekit/models/scrape_warning.py +88 -0
- bytekit/models/scrape_warning_code.py +17 -0
- bytekit/models/screenshot_request.py +445 -0
- bytekit/models/screenshot_request_device.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_1.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_2_type_1.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_3_type_1.py +9 -0
- bytekit/models/screenshot_request_format.py +9 -0
- bytekit/models/screenshot_request_headers.py +44 -0
- bytekit/models/screenshot_request_wait_until.py +10 -0
- bytekit/models/screenshot_response.py +264 -0
- bytekit/models/screenshot_response_status.py +11 -0
- bytekit/models/sitemap_request.py +210 -0
- bytekit/models/sitemap_request_process_type_0.py +90 -0
- bytekit/models/sitemap_request_process_type_0_options.py +44 -0
- bytekit/models/sitemap_request_strategy.py +10 -0
- bytekit/models/sitemap_response.py +418 -0
- bytekit/models/sitemap_response_cache.py +10 -0
- bytekit/models/sitemap_response_metadata_type_0.py +44 -0
- bytekit/models/sitemap_response_process_type_0.py +44 -0
- bytekit/models/sitemap_response_sources_type_0.py +44 -0
- bytekit/models/sitemap_response_status.py +11 -0
- bytekit/models/viewport.py +67 -0
- bytekit/models/webhook_delivery_response.py +270 -0
- bytekit/models/webhook_delivery_response_event_type.py +14 -0
- bytekit/models/webhook_delivery_response_status.py +11 -0
- bytekit/py.typed +0 -0
- bytekit/types.py +54 -0
- bytekit_sdk-0.3.0.dist-info/METADATA +141 -0
- bytekit_sdk-0.3.0.dist-info/RECORD +227 -0
- bytekit_sdk-0.3.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import (
|
|
4
|
+
Any,
|
|
5
|
+
TypeVar,
|
|
6
|
+
Union,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from attrs import define as _attrs_define
|
|
10
|
+
from attrs import field as _attrs_field
|
|
11
|
+
from dateutil.parser import isoparse
|
|
12
|
+
|
|
13
|
+
from ..types import UNSET, Unset
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T", bound="GetUsageDailyResponse200DataItem")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@_attrs_define
|
|
19
|
+
class GetUsageDailyResponse200DataItem:
|
|
20
|
+
"""
|
|
21
|
+
Attributes:
|
|
22
|
+
date (datetime.date):
|
|
23
|
+
credits_single (int):
|
|
24
|
+
credits_bulk (int):
|
|
25
|
+
credits_monitor (int):
|
|
26
|
+
credits_search (int): Credits consumed by the search endpoint on this day.
|
|
27
|
+
credits_total (int):
|
|
28
|
+
bytes_total (int): Total bytes consumed on this day.
|
|
29
|
+
bytes_single (int): Bytes from single scrape requests.
|
|
30
|
+
bytes_bulk (int): Bytes from bulk requests.
|
|
31
|
+
bytes_scrape (int): Bytes from scrape requests.
|
|
32
|
+
bytes_monitor (int): Bytes from monitor requests.
|
|
33
|
+
bytes_screenshot (Union[Unset, int]): Bytes from screenshot requests.
|
|
34
|
+
bytes_recording (Union[Unset, int]): Bytes from recording requests.
|
|
35
|
+
bytes_scrape_md (Union[Unset, int]): Bytes from markdown-requested scrape requests.
|
|
36
|
+
bytes_fetch (Union[Unset, int]): Bytes from /v1/fetch requests.
|
|
37
|
+
bytes_fetch_md (Union[Unset, int]): Bytes from markdown-requested /v1/fetch requests.
|
|
38
|
+
bytes_crawl (Union[Unset, int]): Bytes from crawl (fetch) requests.
|
|
39
|
+
bytes_crawl_links (Union[Unset, int]): Bytes from crawl-links requests.
|
|
40
|
+
bytes_sitemap (Union[Unset, int]): Bytes from sitemap requests.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
date: datetime.date
|
|
44
|
+
credits_single: int
|
|
45
|
+
credits_bulk: int
|
|
46
|
+
credits_monitor: int
|
|
47
|
+
credits_search: int
|
|
48
|
+
credits_total: int
|
|
49
|
+
bytes_total: int
|
|
50
|
+
bytes_single: int
|
|
51
|
+
bytes_bulk: int
|
|
52
|
+
bytes_scrape: int
|
|
53
|
+
bytes_monitor: int
|
|
54
|
+
bytes_screenshot: Union[Unset, int] = UNSET
|
|
55
|
+
bytes_recording: Union[Unset, int] = UNSET
|
|
56
|
+
bytes_scrape_md: Union[Unset, int] = UNSET
|
|
57
|
+
bytes_fetch: Union[Unset, int] = UNSET
|
|
58
|
+
bytes_fetch_md: Union[Unset, int] = UNSET
|
|
59
|
+
bytes_crawl: Union[Unset, int] = UNSET
|
|
60
|
+
bytes_crawl_links: Union[Unset, int] = UNSET
|
|
61
|
+
bytes_sitemap: Union[Unset, int] = UNSET
|
|
62
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
63
|
+
|
|
64
|
+
def to_dict(self) -> dict[str, Any]:
|
|
65
|
+
date = self.date.isoformat()
|
|
66
|
+
|
|
67
|
+
credits_single = self.credits_single
|
|
68
|
+
|
|
69
|
+
credits_bulk = self.credits_bulk
|
|
70
|
+
|
|
71
|
+
credits_monitor = self.credits_monitor
|
|
72
|
+
|
|
73
|
+
credits_search = self.credits_search
|
|
74
|
+
|
|
75
|
+
credits_total = self.credits_total
|
|
76
|
+
|
|
77
|
+
bytes_total = self.bytes_total
|
|
78
|
+
|
|
79
|
+
bytes_single = self.bytes_single
|
|
80
|
+
|
|
81
|
+
bytes_bulk = self.bytes_bulk
|
|
82
|
+
|
|
83
|
+
bytes_scrape = self.bytes_scrape
|
|
84
|
+
|
|
85
|
+
bytes_monitor = self.bytes_monitor
|
|
86
|
+
|
|
87
|
+
bytes_screenshot = self.bytes_screenshot
|
|
88
|
+
|
|
89
|
+
bytes_recording = self.bytes_recording
|
|
90
|
+
|
|
91
|
+
bytes_scrape_md = self.bytes_scrape_md
|
|
92
|
+
|
|
93
|
+
bytes_fetch = self.bytes_fetch
|
|
94
|
+
|
|
95
|
+
bytes_fetch_md = self.bytes_fetch_md
|
|
96
|
+
|
|
97
|
+
bytes_crawl = self.bytes_crawl
|
|
98
|
+
|
|
99
|
+
bytes_crawl_links = self.bytes_crawl_links
|
|
100
|
+
|
|
101
|
+
bytes_sitemap = self.bytes_sitemap
|
|
102
|
+
|
|
103
|
+
field_dict: dict[str, Any] = {}
|
|
104
|
+
field_dict.update(self.additional_properties)
|
|
105
|
+
field_dict.update(
|
|
106
|
+
{
|
|
107
|
+
"date": date,
|
|
108
|
+
"credits_single": credits_single,
|
|
109
|
+
"credits_bulk": credits_bulk,
|
|
110
|
+
"credits_monitor": credits_monitor,
|
|
111
|
+
"credits_search": credits_search,
|
|
112
|
+
"credits_total": credits_total,
|
|
113
|
+
"bytes_total": bytes_total,
|
|
114
|
+
"bytes_single": bytes_single,
|
|
115
|
+
"bytes_bulk": bytes_bulk,
|
|
116
|
+
"bytes_scrape": bytes_scrape,
|
|
117
|
+
"bytes_monitor": bytes_monitor,
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
if bytes_screenshot is not UNSET:
|
|
121
|
+
field_dict["bytes_screenshot"] = bytes_screenshot
|
|
122
|
+
if bytes_recording is not UNSET:
|
|
123
|
+
field_dict["bytes_recording"] = bytes_recording
|
|
124
|
+
if bytes_scrape_md is not UNSET:
|
|
125
|
+
field_dict["bytes_scrape_md"] = bytes_scrape_md
|
|
126
|
+
if bytes_fetch is not UNSET:
|
|
127
|
+
field_dict["bytes_fetch"] = bytes_fetch
|
|
128
|
+
if bytes_fetch_md is not UNSET:
|
|
129
|
+
field_dict["bytes_fetch_md"] = bytes_fetch_md
|
|
130
|
+
if bytes_crawl is not UNSET:
|
|
131
|
+
field_dict["bytes_crawl"] = bytes_crawl
|
|
132
|
+
if bytes_crawl_links is not UNSET:
|
|
133
|
+
field_dict["bytes_crawl_links"] = bytes_crawl_links
|
|
134
|
+
if bytes_sitemap is not UNSET:
|
|
135
|
+
field_dict["bytes_sitemap"] = bytes_sitemap
|
|
136
|
+
|
|
137
|
+
return field_dict
|
|
138
|
+
|
|
139
|
+
@classmethod
|
|
140
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
141
|
+
d = dict(src_dict)
|
|
142
|
+
date = isoparse(d.pop("date")).date()
|
|
143
|
+
|
|
144
|
+
credits_single = d.pop("credits_single")
|
|
145
|
+
|
|
146
|
+
credits_bulk = d.pop("credits_bulk")
|
|
147
|
+
|
|
148
|
+
credits_monitor = d.pop("credits_monitor")
|
|
149
|
+
|
|
150
|
+
credits_search = d.pop("credits_search")
|
|
151
|
+
|
|
152
|
+
credits_total = d.pop("credits_total")
|
|
153
|
+
|
|
154
|
+
bytes_total = d.pop("bytes_total")
|
|
155
|
+
|
|
156
|
+
bytes_single = d.pop("bytes_single")
|
|
157
|
+
|
|
158
|
+
bytes_bulk = d.pop("bytes_bulk")
|
|
159
|
+
|
|
160
|
+
bytes_scrape = d.pop("bytes_scrape")
|
|
161
|
+
|
|
162
|
+
bytes_monitor = d.pop("bytes_monitor")
|
|
163
|
+
|
|
164
|
+
bytes_screenshot = d.pop("bytes_screenshot", UNSET)
|
|
165
|
+
|
|
166
|
+
bytes_recording = d.pop("bytes_recording", UNSET)
|
|
167
|
+
|
|
168
|
+
bytes_scrape_md = d.pop("bytes_scrape_md", UNSET)
|
|
169
|
+
|
|
170
|
+
bytes_fetch = d.pop("bytes_fetch", UNSET)
|
|
171
|
+
|
|
172
|
+
bytes_fetch_md = d.pop("bytes_fetch_md", UNSET)
|
|
173
|
+
|
|
174
|
+
bytes_crawl = d.pop("bytes_crawl", UNSET)
|
|
175
|
+
|
|
176
|
+
bytes_crawl_links = d.pop("bytes_crawl_links", UNSET)
|
|
177
|
+
|
|
178
|
+
bytes_sitemap = d.pop("bytes_sitemap", UNSET)
|
|
179
|
+
|
|
180
|
+
get_usage_daily_response_200_data_item = cls(
|
|
181
|
+
date=date,
|
|
182
|
+
credits_single=credits_single,
|
|
183
|
+
credits_bulk=credits_bulk,
|
|
184
|
+
credits_monitor=credits_monitor,
|
|
185
|
+
credits_search=credits_search,
|
|
186
|
+
credits_total=credits_total,
|
|
187
|
+
bytes_total=bytes_total,
|
|
188
|
+
bytes_single=bytes_single,
|
|
189
|
+
bytes_bulk=bytes_bulk,
|
|
190
|
+
bytes_scrape=bytes_scrape,
|
|
191
|
+
bytes_monitor=bytes_monitor,
|
|
192
|
+
bytes_screenshot=bytes_screenshot,
|
|
193
|
+
bytes_recording=bytes_recording,
|
|
194
|
+
bytes_scrape_md=bytes_scrape_md,
|
|
195
|
+
bytes_fetch=bytes_fetch,
|
|
196
|
+
bytes_fetch_md=bytes_fetch_md,
|
|
197
|
+
bytes_crawl=bytes_crawl,
|
|
198
|
+
bytes_crawl_links=bytes_crawl_links,
|
|
199
|
+
bytes_sitemap=bytes_sitemap,
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
get_usage_daily_response_200_data_item.additional_properties = d
|
|
203
|
+
return get_usage_daily_response_200_data_item
|
|
204
|
+
|
|
205
|
+
@property
|
|
206
|
+
def additional_keys(self) -> list[str]:
|
|
207
|
+
return list(self.additional_properties.keys())
|
|
208
|
+
|
|
209
|
+
def __getitem__(self, key: str) -> Any:
|
|
210
|
+
return self.additional_properties[key]
|
|
211
|
+
|
|
212
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
213
|
+
self.additional_properties[key] = value
|
|
214
|
+
|
|
215
|
+
def __delitem__(self, key: str) -> None:
|
|
216
|
+
del self.additional_properties[key]
|
|
217
|
+
|
|
218
|
+
def __contains__(self, key: str) -> bool:
|
|
219
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import (
|
|
4
|
+
TYPE_CHECKING,
|
|
5
|
+
Any,
|
|
6
|
+
TypeVar,
|
|
7
|
+
Union,
|
|
8
|
+
cast,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
from attrs import define as _attrs_define
|
|
12
|
+
from attrs import field as _attrs_field
|
|
13
|
+
from dateutil.parser import isoparse
|
|
14
|
+
|
|
15
|
+
from ..models.get_usage_response_200_plan_type import GetUsageResponse200PlanType
|
|
16
|
+
from ..types import UNSET, Unset
|
|
17
|
+
|
|
18
|
+
if TYPE_CHECKING:
|
|
19
|
+
from ..models.bandwidth_balance import BandwidthBalance
|
|
20
|
+
from ..models.credit_balance import CreditBalance
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
T = TypeVar("T", bound="GetUsageResponse200")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@_attrs_define
|
|
27
|
+
class GetUsageResponse200:
|
|
28
|
+
"""
|
|
29
|
+
Attributes:
|
|
30
|
+
period_start (datetime.datetime):
|
|
31
|
+
period_end (datetime.datetime):
|
|
32
|
+
credits_used (int):
|
|
33
|
+
credits_single (int):
|
|
34
|
+
credits_bulk (int):
|
|
35
|
+
credits_monitor (int):
|
|
36
|
+
credits_search (int): Credits consumed by the search endpoint this billing period. Reported as a distinct line
|
|
37
|
+
item, not folded into other per-source credit counts.
|
|
38
|
+
credits_limit (int):
|
|
39
|
+
credits_remaining (int):
|
|
40
|
+
has_overage (bool):
|
|
41
|
+
overage_credits (int):
|
|
42
|
+
plan_name (str): Human-readable plan name (e.g. "Starter", "Pro").
|
|
43
|
+
plan_price_cents (int): Plan base price in cents.
|
|
44
|
+
plan_type (GetUsageResponse200PlanType): Derived plan category. "payg" for pay-as-you-go plans, "free" for the
|
|
45
|
+
free tier, "subscription" for all others.
|
|
46
|
+
period_days_elapsed (int): Days elapsed since period_start.
|
|
47
|
+
bytes_used (int): Present in dual/bytes billing mode.
|
|
48
|
+
bytes_single (int):
|
|
49
|
+
bytes_bulk (int):
|
|
50
|
+
bytes_scrape (int):
|
|
51
|
+
bytes_monitor (int):
|
|
52
|
+
bytes_limit (int):
|
|
53
|
+
bytes_remaining (int):
|
|
54
|
+
rollover_bytes (int):
|
|
55
|
+
topup_bytes (int):
|
|
56
|
+
request_count (int): Total API requests in the current billing period.
|
|
57
|
+
request_count_previous_period (Union[None, int]): Total API requests in the previous billing period. Null when
|
|
58
|
+
no prior period exists (first billing period).
|
|
59
|
+
playground_api_key_id (Union[None, str]): The account's playground API key id (ak_-prefixed), or null if none
|
|
60
|
+
exists. Playground traffic (requests issued from the dashboard playground) is billed into the account totals
|
|
61
|
+
under this key, but the key is hidden from the key-management list. The usage dashboard uses this id to offer a
|
|
62
|
+
"Playground" filter so per-key usage reconciles with the overall total.
|
|
63
|
+
bandwidth (BandwidthBalance):
|
|
64
|
+
credits_ (CreditBalance):
|
|
65
|
+
topup_spent_cents (Union[Unset, int]): Total top-up spend in cents for this billing period. Present only in
|
|
66
|
+
dual/bytes billing mode.
|
|
67
|
+
topup_balance_bytes (Union[Unset, int]): Remaining top-up bytes: max(0, topup_bytes − max(0, bytes_used −
|
|
68
|
+
included_bytes − rollover_bytes)). Present only in dual/bytes billing mode.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
period_start: datetime.datetime
|
|
72
|
+
period_end: datetime.datetime
|
|
73
|
+
credits_used: int
|
|
74
|
+
credits_single: int
|
|
75
|
+
credits_bulk: int
|
|
76
|
+
credits_monitor: int
|
|
77
|
+
credits_search: int
|
|
78
|
+
credits_limit: int
|
|
79
|
+
credits_remaining: int
|
|
80
|
+
has_overage: bool
|
|
81
|
+
overage_credits: int
|
|
82
|
+
plan_name: str
|
|
83
|
+
plan_price_cents: int
|
|
84
|
+
plan_type: GetUsageResponse200PlanType
|
|
85
|
+
period_days_elapsed: int
|
|
86
|
+
bytes_used: int
|
|
87
|
+
bytes_single: int
|
|
88
|
+
bytes_bulk: int
|
|
89
|
+
bytes_scrape: int
|
|
90
|
+
bytes_monitor: int
|
|
91
|
+
bytes_limit: int
|
|
92
|
+
bytes_remaining: int
|
|
93
|
+
rollover_bytes: int
|
|
94
|
+
topup_bytes: int
|
|
95
|
+
request_count: int
|
|
96
|
+
request_count_previous_period: Union[None, int]
|
|
97
|
+
playground_api_key_id: Union[None, str]
|
|
98
|
+
bandwidth: "BandwidthBalance"
|
|
99
|
+
credits_: "CreditBalance"
|
|
100
|
+
topup_spent_cents: Union[Unset, int] = UNSET
|
|
101
|
+
topup_balance_bytes: Union[Unset, int] = UNSET
|
|
102
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
103
|
+
|
|
104
|
+
def to_dict(self) -> dict[str, Any]:
|
|
105
|
+
period_start = self.period_start.isoformat()
|
|
106
|
+
|
|
107
|
+
period_end = self.period_end.isoformat()
|
|
108
|
+
|
|
109
|
+
credits_used = self.credits_used
|
|
110
|
+
|
|
111
|
+
credits_single = self.credits_single
|
|
112
|
+
|
|
113
|
+
credits_bulk = self.credits_bulk
|
|
114
|
+
|
|
115
|
+
credits_monitor = self.credits_monitor
|
|
116
|
+
|
|
117
|
+
credits_search = self.credits_search
|
|
118
|
+
|
|
119
|
+
credits_limit = self.credits_limit
|
|
120
|
+
|
|
121
|
+
credits_remaining = self.credits_remaining
|
|
122
|
+
|
|
123
|
+
has_overage = self.has_overage
|
|
124
|
+
|
|
125
|
+
overage_credits = self.overage_credits
|
|
126
|
+
|
|
127
|
+
plan_name = self.plan_name
|
|
128
|
+
|
|
129
|
+
plan_price_cents = self.plan_price_cents
|
|
130
|
+
|
|
131
|
+
plan_type = self.plan_type.value
|
|
132
|
+
|
|
133
|
+
period_days_elapsed = self.period_days_elapsed
|
|
134
|
+
|
|
135
|
+
bytes_used = self.bytes_used
|
|
136
|
+
|
|
137
|
+
bytes_single = self.bytes_single
|
|
138
|
+
|
|
139
|
+
bytes_bulk = self.bytes_bulk
|
|
140
|
+
|
|
141
|
+
bytes_scrape = self.bytes_scrape
|
|
142
|
+
|
|
143
|
+
bytes_monitor = self.bytes_monitor
|
|
144
|
+
|
|
145
|
+
bytes_limit = self.bytes_limit
|
|
146
|
+
|
|
147
|
+
bytes_remaining = self.bytes_remaining
|
|
148
|
+
|
|
149
|
+
rollover_bytes = self.rollover_bytes
|
|
150
|
+
|
|
151
|
+
topup_bytes = self.topup_bytes
|
|
152
|
+
|
|
153
|
+
request_count = self.request_count
|
|
154
|
+
|
|
155
|
+
request_count_previous_period: Union[None, int]
|
|
156
|
+
request_count_previous_period = self.request_count_previous_period
|
|
157
|
+
|
|
158
|
+
playground_api_key_id: Union[None, str]
|
|
159
|
+
playground_api_key_id = self.playground_api_key_id
|
|
160
|
+
|
|
161
|
+
bandwidth = self.bandwidth.to_dict()
|
|
162
|
+
|
|
163
|
+
credits_ = self.credits_.to_dict()
|
|
164
|
+
|
|
165
|
+
topup_spent_cents = self.topup_spent_cents
|
|
166
|
+
|
|
167
|
+
topup_balance_bytes = self.topup_balance_bytes
|
|
168
|
+
|
|
169
|
+
field_dict: dict[str, Any] = {}
|
|
170
|
+
field_dict.update(self.additional_properties)
|
|
171
|
+
field_dict.update(
|
|
172
|
+
{
|
|
173
|
+
"period_start": period_start,
|
|
174
|
+
"period_end": period_end,
|
|
175
|
+
"credits_used": credits_used,
|
|
176
|
+
"credits_single": credits_single,
|
|
177
|
+
"credits_bulk": credits_bulk,
|
|
178
|
+
"credits_monitor": credits_monitor,
|
|
179
|
+
"credits_search": credits_search,
|
|
180
|
+
"credits_limit": credits_limit,
|
|
181
|
+
"credits_remaining": credits_remaining,
|
|
182
|
+
"has_overage": has_overage,
|
|
183
|
+
"overage_credits": overage_credits,
|
|
184
|
+
"plan_name": plan_name,
|
|
185
|
+
"plan_price_cents": plan_price_cents,
|
|
186
|
+
"plan_type": plan_type,
|
|
187
|
+
"period_days_elapsed": period_days_elapsed,
|
|
188
|
+
"bytes_used": bytes_used,
|
|
189
|
+
"bytes_single": bytes_single,
|
|
190
|
+
"bytes_bulk": bytes_bulk,
|
|
191
|
+
"bytes_scrape": bytes_scrape,
|
|
192
|
+
"bytes_monitor": bytes_monitor,
|
|
193
|
+
"bytes_limit": bytes_limit,
|
|
194
|
+
"bytes_remaining": bytes_remaining,
|
|
195
|
+
"rollover_bytes": rollover_bytes,
|
|
196
|
+
"topup_bytes": topup_bytes,
|
|
197
|
+
"request_count": request_count,
|
|
198
|
+
"request_count_previous_period": request_count_previous_period,
|
|
199
|
+
"playground_api_key_id": playground_api_key_id,
|
|
200
|
+
"bandwidth": bandwidth,
|
|
201
|
+
"credits": credits_,
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
if topup_spent_cents is not UNSET:
|
|
205
|
+
field_dict["topup_spent_cents"] = topup_spent_cents
|
|
206
|
+
if topup_balance_bytes is not UNSET:
|
|
207
|
+
field_dict["topup_balance_bytes"] = topup_balance_bytes
|
|
208
|
+
|
|
209
|
+
return field_dict
|
|
210
|
+
|
|
211
|
+
@classmethod
|
|
212
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
213
|
+
from ..models.bandwidth_balance import BandwidthBalance
|
|
214
|
+
from ..models.credit_balance import CreditBalance
|
|
215
|
+
|
|
216
|
+
d = dict(src_dict)
|
|
217
|
+
period_start = isoparse(d.pop("period_start"))
|
|
218
|
+
|
|
219
|
+
period_end = isoparse(d.pop("period_end"))
|
|
220
|
+
|
|
221
|
+
credits_used = d.pop("credits_used")
|
|
222
|
+
|
|
223
|
+
credits_single = d.pop("credits_single")
|
|
224
|
+
|
|
225
|
+
credits_bulk = d.pop("credits_bulk")
|
|
226
|
+
|
|
227
|
+
credits_monitor = d.pop("credits_monitor")
|
|
228
|
+
|
|
229
|
+
credits_search = d.pop("credits_search")
|
|
230
|
+
|
|
231
|
+
credits_limit = d.pop("credits_limit")
|
|
232
|
+
|
|
233
|
+
credits_remaining = d.pop("credits_remaining")
|
|
234
|
+
|
|
235
|
+
has_overage = d.pop("has_overage")
|
|
236
|
+
|
|
237
|
+
overage_credits = d.pop("overage_credits")
|
|
238
|
+
|
|
239
|
+
plan_name = d.pop("plan_name")
|
|
240
|
+
|
|
241
|
+
plan_price_cents = d.pop("plan_price_cents")
|
|
242
|
+
|
|
243
|
+
plan_type = GetUsageResponse200PlanType(d.pop("plan_type"))
|
|
244
|
+
|
|
245
|
+
period_days_elapsed = d.pop("period_days_elapsed")
|
|
246
|
+
|
|
247
|
+
bytes_used = d.pop("bytes_used")
|
|
248
|
+
|
|
249
|
+
bytes_single = d.pop("bytes_single")
|
|
250
|
+
|
|
251
|
+
bytes_bulk = d.pop("bytes_bulk")
|
|
252
|
+
|
|
253
|
+
bytes_scrape = d.pop("bytes_scrape")
|
|
254
|
+
|
|
255
|
+
bytes_monitor = d.pop("bytes_monitor")
|
|
256
|
+
|
|
257
|
+
bytes_limit = d.pop("bytes_limit")
|
|
258
|
+
|
|
259
|
+
bytes_remaining = d.pop("bytes_remaining")
|
|
260
|
+
|
|
261
|
+
rollover_bytes = d.pop("rollover_bytes")
|
|
262
|
+
|
|
263
|
+
topup_bytes = d.pop("topup_bytes")
|
|
264
|
+
|
|
265
|
+
request_count = d.pop("request_count")
|
|
266
|
+
|
|
267
|
+
def _parse_request_count_previous_period(data: object) -> Union[None, int]:
|
|
268
|
+
if data is None:
|
|
269
|
+
return data
|
|
270
|
+
return cast(Union[None, int], data)
|
|
271
|
+
|
|
272
|
+
request_count_previous_period = _parse_request_count_previous_period(
|
|
273
|
+
d.pop("request_count_previous_period")
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
def _parse_playground_api_key_id(data: object) -> Union[None, str]:
|
|
277
|
+
if data is None:
|
|
278
|
+
return data
|
|
279
|
+
return cast(Union[None, str], data)
|
|
280
|
+
|
|
281
|
+
playground_api_key_id = _parse_playground_api_key_id(
|
|
282
|
+
d.pop("playground_api_key_id")
|
|
283
|
+
)
|
|
284
|
+
|
|
285
|
+
bandwidth = BandwidthBalance.from_dict(d.pop("bandwidth"))
|
|
286
|
+
|
|
287
|
+
credits_ = CreditBalance.from_dict(d.pop("credits"))
|
|
288
|
+
|
|
289
|
+
topup_spent_cents = d.pop("topup_spent_cents", UNSET)
|
|
290
|
+
|
|
291
|
+
topup_balance_bytes = d.pop("topup_balance_bytes", UNSET)
|
|
292
|
+
|
|
293
|
+
get_usage_response_200 = cls(
|
|
294
|
+
period_start=period_start,
|
|
295
|
+
period_end=period_end,
|
|
296
|
+
credits_used=credits_used,
|
|
297
|
+
credits_single=credits_single,
|
|
298
|
+
credits_bulk=credits_bulk,
|
|
299
|
+
credits_monitor=credits_monitor,
|
|
300
|
+
credits_search=credits_search,
|
|
301
|
+
credits_limit=credits_limit,
|
|
302
|
+
credits_remaining=credits_remaining,
|
|
303
|
+
has_overage=has_overage,
|
|
304
|
+
overage_credits=overage_credits,
|
|
305
|
+
plan_name=plan_name,
|
|
306
|
+
plan_price_cents=plan_price_cents,
|
|
307
|
+
plan_type=plan_type,
|
|
308
|
+
period_days_elapsed=period_days_elapsed,
|
|
309
|
+
bytes_used=bytes_used,
|
|
310
|
+
bytes_single=bytes_single,
|
|
311
|
+
bytes_bulk=bytes_bulk,
|
|
312
|
+
bytes_scrape=bytes_scrape,
|
|
313
|
+
bytes_monitor=bytes_monitor,
|
|
314
|
+
bytes_limit=bytes_limit,
|
|
315
|
+
bytes_remaining=bytes_remaining,
|
|
316
|
+
rollover_bytes=rollover_bytes,
|
|
317
|
+
topup_bytes=topup_bytes,
|
|
318
|
+
request_count=request_count,
|
|
319
|
+
request_count_previous_period=request_count_previous_period,
|
|
320
|
+
playground_api_key_id=playground_api_key_id,
|
|
321
|
+
bandwidth=bandwidth,
|
|
322
|
+
credits_=credits_,
|
|
323
|
+
topup_spent_cents=topup_spent_cents,
|
|
324
|
+
topup_balance_bytes=topup_balance_bytes,
|
|
325
|
+
)
|
|
326
|
+
|
|
327
|
+
get_usage_response_200.additional_properties = d
|
|
328
|
+
return get_usage_response_200
|
|
329
|
+
|
|
330
|
+
@property
|
|
331
|
+
def additional_keys(self) -> list[str]:
|
|
332
|
+
return list(self.additional_properties.keys())
|
|
333
|
+
|
|
334
|
+
def __getitem__(self, key: str) -> Any:
|
|
335
|
+
return self.additional_properties[key]
|
|
336
|
+
|
|
337
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
338
|
+
self.additional_properties[key] = value
|
|
339
|
+
|
|
340
|
+
def __delitem__(self, key: str) -> None:
|
|
341
|
+
del self.additional_properties[key]
|
|
342
|
+
|
|
343
|
+
def __contains__(self, key: str) -> bool:
|
|
344
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="ListBulkScreenshotsResponse200")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class ListBulkScreenshotsResponse200:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
list_bulk_screenshots_response_200 = cls()
|
|
26
|
+
|
|
27
|
+
list_bulk_screenshots_response_200.additional_properties = d
|
|
28
|
+
return list_bulk_screenshots_response_200
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> Any:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|