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
bytekit/models/clip.py
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
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="Clip")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class Clip:
|
|
12
|
+
"""
|
|
13
|
+
Attributes:
|
|
14
|
+
x (int):
|
|
15
|
+
y (int):
|
|
16
|
+
width (int):
|
|
17
|
+
height (int):
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
x: int
|
|
21
|
+
y: int
|
|
22
|
+
width: int
|
|
23
|
+
height: int
|
|
24
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
25
|
+
|
|
26
|
+
def to_dict(self) -> dict[str, Any]:
|
|
27
|
+
x = self.x
|
|
28
|
+
|
|
29
|
+
y = self.y
|
|
30
|
+
|
|
31
|
+
width = self.width
|
|
32
|
+
|
|
33
|
+
height = self.height
|
|
34
|
+
|
|
35
|
+
field_dict: dict[str, Any] = {}
|
|
36
|
+
field_dict.update(self.additional_properties)
|
|
37
|
+
field_dict.update(
|
|
38
|
+
{
|
|
39
|
+
"x": x,
|
|
40
|
+
"y": y,
|
|
41
|
+
"width": width,
|
|
42
|
+
"height": height,
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
return field_dict
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
50
|
+
d = dict(src_dict)
|
|
51
|
+
x = d.pop("x")
|
|
52
|
+
|
|
53
|
+
y = d.pop("y")
|
|
54
|
+
|
|
55
|
+
width = d.pop("width")
|
|
56
|
+
|
|
57
|
+
height = d.pop("height")
|
|
58
|
+
|
|
59
|
+
clip = cls(
|
|
60
|
+
x=x,
|
|
61
|
+
y=y,
|
|
62
|
+
width=width,
|
|
63
|
+
height=height,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
clip.additional_properties = d
|
|
67
|
+
return clip
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def additional_keys(self) -> list[str]:
|
|
71
|
+
return list(self.additional_properties.keys())
|
|
72
|
+
|
|
73
|
+
def __getitem__(self, key: str) -> Any:
|
|
74
|
+
return self.additional_properties[key]
|
|
75
|
+
|
|
76
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
77
|
+
self.additional_properties[key] = value
|
|
78
|
+
|
|
79
|
+
def __delitem__(self, key: str) -> None:
|
|
80
|
+
del self.additional_properties[key]
|
|
81
|
+
|
|
82
|
+
def __contains__(self, key: str) -> bool:
|
|
83
|
+
return key in self.additional_properties
|
bytekit/models/cookie.py
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
TypeVar,
|
|
5
|
+
Union,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
from attrs import define as _attrs_define
|
|
9
|
+
|
|
10
|
+
from ..types import UNSET, Unset
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound="Cookie")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@_attrs_define
|
|
16
|
+
class Cookie:
|
|
17
|
+
"""
|
|
18
|
+
Attributes:
|
|
19
|
+
name (str):
|
|
20
|
+
value (str):
|
|
21
|
+
domain (Union[Unset, str]):
|
|
22
|
+
path (Union[Unset, str]):
|
|
23
|
+
secure (Union[Unset, bool]):
|
|
24
|
+
http_only (Union[Unset, bool]):
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
name: str
|
|
28
|
+
value: str
|
|
29
|
+
domain: Union[Unset, str] = UNSET
|
|
30
|
+
path: Union[Unset, str] = UNSET
|
|
31
|
+
secure: Union[Unset, bool] = UNSET
|
|
32
|
+
http_only: Union[Unset, bool] = UNSET
|
|
33
|
+
|
|
34
|
+
def to_dict(self) -> dict[str, Any]:
|
|
35
|
+
name = self.name
|
|
36
|
+
|
|
37
|
+
value = self.value
|
|
38
|
+
|
|
39
|
+
domain = self.domain
|
|
40
|
+
|
|
41
|
+
path = self.path
|
|
42
|
+
|
|
43
|
+
secure = self.secure
|
|
44
|
+
|
|
45
|
+
http_only = self.http_only
|
|
46
|
+
|
|
47
|
+
field_dict: dict[str, Any] = {}
|
|
48
|
+
|
|
49
|
+
field_dict.update(
|
|
50
|
+
{
|
|
51
|
+
"name": name,
|
|
52
|
+
"value": value,
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
if domain is not UNSET:
|
|
56
|
+
field_dict["domain"] = domain
|
|
57
|
+
if path is not UNSET:
|
|
58
|
+
field_dict["path"] = path
|
|
59
|
+
if secure is not UNSET:
|
|
60
|
+
field_dict["secure"] = secure
|
|
61
|
+
if http_only is not UNSET:
|
|
62
|
+
field_dict["httpOnly"] = http_only
|
|
63
|
+
|
|
64
|
+
return field_dict
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
68
|
+
d = dict(src_dict)
|
|
69
|
+
name = d.pop("name")
|
|
70
|
+
|
|
71
|
+
value = d.pop("value")
|
|
72
|
+
|
|
73
|
+
domain = d.pop("domain", UNSET)
|
|
74
|
+
|
|
75
|
+
path = d.pop("path", UNSET)
|
|
76
|
+
|
|
77
|
+
secure = d.pop("secure", UNSET)
|
|
78
|
+
|
|
79
|
+
http_only = d.pop("httpOnly", UNSET)
|
|
80
|
+
|
|
81
|
+
cookie = cls(
|
|
82
|
+
name=name,
|
|
83
|
+
value=value,
|
|
84
|
+
domain=domain,
|
|
85
|
+
path=path,
|
|
86
|
+
secure=secure,
|
|
87
|
+
http_only=http_only,
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
return cookie
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
TYPE_CHECKING,
|
|
4
|
+
Any,
|
|
5
|
+
TypeVar,
|
|
6
|
+
Union,
|
|
7
|
+
cast,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from attrs import define as _attrs_define
|
|
11
|
+
from attrs import field as _attrs_field
|
|
12
|
+
|
|
13
|
+
from ..types import UNSET, Unset
|
|
14
|
+
|
|
15
|
+
if TYPE_CHECKING:
|
|
16
|
+
from ..models.create_bulk_body_defaults import CreateBulkBodyDefaults
|
|
17
|
+
from ..models.create_bulk_body_items_item import CreateBulkBodyItemsItem
|
|
18
|
+
from ..models.metadata import Metadata
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
T = TypeVar("T", bound="CreateBulkBody")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@_attrs_define
|
|
25
|
+
class CreateBulkBody:
|
|
26
|
+
"""Provide `urls` (simple list) OR `items` (per-item config), not
|
|
27
|
+
both. `type` selects the capture kind per entry — only
|
|
28
|
+
`screenshot` and `scrape` are accepted (`recording` is
|
|
29
|
+
deactivated). Behaviour fields may be set per item or via
|
|
30
|
+
`defaults`; a per-item value overrides the matching default.
|
|
31
|
+
|
|
32
|
+
Attributes:
|
|
33
|
+
webhook_url (str): Webhook endpoint URL (HTTPS only; http:// rejected with 400 invalid_url, reason
|
|
34
|
+
scheme_unsupported)
|
|
35
|
+
urls (Union[Unset, list[str]]): Simple URL list. Provide urls OR items, not both.
|
|
36
|
+
items (Union[Unset, list['CreateBulkBodyItemsItem']]): Per-item configs. Provide urls OR items, not both.
|
|
37
|
+
defaults (Union[Unset, CreateBulkBodyDefaults]): Default behaviour applied to every entry unless the item
|
|
38
|
+
overrides it.
|
|
39
|
+
webhook_secret (Union[Unset, str]):
|
|
40
|
+
metadata (Union[Unset, Metadata]): Arbitrary key-value metadata. Max 4096 bytes when JSON-serialized.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
webhook_url: str
|
|
44
|
+
urls: Union[Unset, list[str]] = UNSET
|
|
45
|
+
items: Union[Unset, list["CreateBulkBodyItemsItem"]] = UNSET
|
|
46
|
+
defaults: Union[Unset, "CreateBulkBodyDefaults"] = UNSET
|
|
47
|
+
webhook_secret: Union[Unset, str] = UNSET
|
|
48
|
+
metadata: Union[Unset, "Metadata"] = UNSET
|
|
49
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
50
|
+
|
|
51
|
+
def to_dict(self) -> dict[str, Any]:
|
|
52
|
+
webhook_url = self.webhook_url
|
|
53
|
+
|
|
54
|
+
urls: Union[Unset, list[str]] = UNSET
|
|
55
|
+
if not isinstance(self.urls, Unset):
|
|
56
|
+
urls = self.urls
|
|
57
|
+
|
|
58
|
+
items: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
59
|
+
if not isinstance(self.items, Unset):
|
|
60
|
+
items = []
|
|
61
|
+
for items_item_data in self.items:
|
|
62
|
+
items_item = items_item_data.to_dict()
|
|
63
|
+
items.append(items_item)
|
|
64
|
+
|
|
65
|
+
defaults: Union[Unset, dict[str, Any]] = UNSET
|
|
66
|
+
if not isinstance(self.defaults, Unset):
|
|
67
|
+
defaults = self.defaults.to_dict()
|
|
68
|
+
|
|
69
|
+
webhook_secret = self.webhook_secret
|
|
70
|
+
|
|
71
|
+
metadata: Union[Unset, dict[str, Any]] = UNSET
|
|
72
|
+
if not isinstance(self.metadata, Unset):
|
|
73
|
+
metadata = self.metadata.to_dict()
|
|
74
|
+
|
|
75
|
+
field_dict: dict[str, Any] = {}
|
|
76
|
+
field_dict.update(self.additional_properties)
|
|
77
|
+
field_dict.update(
|
|
78
|
+
{
|
|
79
|
+
"webhook_url": webhook_url,
|
|
80
|
+
}
|
|
81
|
+
)
|
|
82
|
+
if urls is not UNSET:
|
|
83
|
+
field_dict["urls"] = urls
|
|
84
|
+
if items is not UNSET:
|
|
85
|
+
field_dict["items"] = items
|
|
86
|
+
if defaults is not UNSET:
|
|
87
|
+
field_dict["defaults"] = defaults
|
|
88
|
+
if webhook_secret is not UNSET:
|
|
89
|
+
field_dict["webhook_secret"] = webhook_secret
|
|
90
|
+
if metadata is not UNSET:
|
|
91
|
+
field_dict["metadata"] = metadata
|
|
92
|
+
|
|
93
|
+
return field_dict
|
|
94
|
+
|
|
95
|
+
@classmethod
|
|
96
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
97
|
+
from ..models.create_bulk_body_defaults import CreateBulkBodyDefaults
|
|
98
|
+
from ..models.create_bulk_body_items_item import CreateBulkBodyItemsItem
|
|
99
|
+
from ..models.metadata import Metadata
|
|
100
|
+
|
|
101
|
+
d = dict(src_dict)
|
|
102
|
+
webhook_url = d.pop("webhook_url")
|
|
103
|
+
|
|
104
|
+
urls = cast(list[str], d.pop("urls", UNSET))
|
|
105
|
+
|
|
106
|
+
items = []
|
|
107
|
+
_items = d.pop("items", UNSET)
|
|
108
|
+
for items_item_data in _items or []:
|
|
109
|
+
items_item = CreateBulkBodyItemsItem.from_dict(items_item_data)
|
|
110
|
+
|
|
111
|
+
items.append(items_item)
|
|
112
|
+
|
|
113
|
+
_defaults = d.pop("defaults", UNSET)
|
|
114
|
+
defaults: Union[Unset, CreateBulkBodyDefaults]
|
|
115
|
+
if isinstance(_defaults, Unset):
|
|
116
|
+
defaults = UNSET
|
|
117
|
+
else:
|
|
118
|
+
defaults = CreateBulkBodyDefaults.from_dict(_defaults)
|
|
119
|
+
|
|
120
|
+
webhook_secret = d.pop("webhook_secret", UNSET)
|
|
121
|
+
|
|
122
|
+
_metadata = d.pop("metadata", UNSET)
|
|
123
|
+
metadata: Union[Unset, Metadata]
|
|
124
|
+
if isinstance(_metadata, Unset):
|
|
125
|
+
metadata = UNSET
|
|
126
|
+
else:
|
|
127
|
+
metadata = Metadata.from_dict(_metadata)
|
|
128
|
+
|
|
129
|
+
create_bulk_body = cls(
|
|
130
|
+
webhook_url=webhook_url,
|
|
131
|
+
urls=urls,
|
|
132
|
+
items=items,
|
|
133
|
+
defaults=defaults,
|
|
134
|
+
webhook_secret=webhook_secret,
|
|
135
|
+
metadata=metadata,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
create_bulk_body.additional_properties = d
|
|
139
|
+
return create_bulk_body
|
|
140
|
+
|
|
141
|
+
@property
|
|
142
|
+
def additional_keys(self) -> list[str]:
|
|
143
|
+
return list(self.additional_properties.keys())
|
|
144
|
+
|
|
145
|
+
def __getitem__(self, key: str) -> Any:
|
|
146
|
+
return self.additional_properties[key]
|
|
147
|
+
|
|
148
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
149
|
+
self.additional_properties[key] = value
|
|
150
|
+
|
|
151
|
+
def __delitem__(self, key: str) -> None:
|
|
152
|
+
del self.additional_properties[key]
|
|
153
|
+
|
|
154
|
+
def __contains__(self, key: str) -> bool:
|
|
155
|
+
return key in self.additional_properties
|