kalir-python 0.1.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.
Files changed (163) hide show
  1. kalir/__init__.py +11 -0
  2. kalir/api/__init__.py +1 -0
  3. kalir/api/assets/__init__.py +1 -0
  4. kalir/api/assets/create_asset.py +193 -0
  5. kalir/api/assets/delete_asset.py +182 -0
  6. kalir/api/assets/get_asset.py +186 -0
  7. kalir/api/assets/list_assets.py +165 -0
  8. kalir/api/assets/update_asset.py +206 -0
  9. kalir/api/events/__init__.py +1 -0
  10. kalir/api/events/get_event.py +194 -0
  11. kalir/api/events/ingest_event.py +215 -0
  12. kalir/api/events/list_events.py +259 -0
  13. kalir/api/exposures/__init__.py +1 -0
  14. kalir/api/exposures/count_exposures.py +165 -0
  15. kalir/api/exposures/get_infostealer_summary.py +181 -0
  16. kalir/api/exposures/list_exposures.py +225 -0
  17. kalir/api/incidents/__init__.py +1 -0
  18. kalir/api/incidents/get_incident.py +194 -0
  19. kalir/api/incidents/list_incidents.py +265 -0
  20. kalir/api/incidents/update_incident_status.py +207 -0
  21. kalir/api/intel/__init__.py +1 -0
  22. kalir/api/intel/get_ransomware_stats.py +165 -0
  23. kalir/api/intel/list_ransomware_victims.py +165 -0
  24. kalir/api/mentions/__init__.py +1 -0
  25. kalir/api/mentions/list_mentions.py +283 -0
  26. kalir/api/overview/__init__.py +1 -0
  27. kalir/api/overview/get_overview.py +184 -0
  28. kalir/api/phishing/__init__.py +1 -0
  29. kalir/api/phishing/list_phishing.py +245 -0
  30. kalir/api/reports/__init__.py +1 -0
  31. kalir/api/reports/create_report.py +193 -0
  32. kalir/api/reports/download_report.py +186 -0
  33. kalir/api/reports/list_reports.py +165 -0
  34. kalir/api/rules/__init__.py +1 -0
  35. kalir/api/rules/create_rule.py +193 -0
  36. kalir/api/rules/delete_rule.py +183 -0
  37. kalir/api/rules/get_rule.py +187 -0
  38. kalir/api/rules/list_rules.py +165 -0
  39. kalir/api/rules/replace_rule.py +207 -0
  40. kalir/api/takedowns/__init__.py +1 -0
  41. kalir/api/takedowns/count_takedowns.py +165 -0
  42. kalir/api/takedowns/create_takedown.py +193 -0
  43. kalir/api/takedowns/delete_takedown.py +183 -0
  44. kalir/api/takedowns/get_takedown.py +187 -0
  45. kalir/api/takedowns/list_takedowns.py +165 -0
  46. kalir/api/takedowns/replace_takedown.py +210 -0
  47. kalir/api/takedowns/update_takedown.py +210 -0
  48. kalir/api/webhooks/__init__.py +1 -0
  49. kalir/api/webhooks/create_webhook.py +222 -0
  50. kalir/api/webhooks/delete_webhook.py +190 -0
  51. kalir/api/webhooks/get_webhook.py +194 -0
  52. kalir/api/webhooks/get_webhook_delivery.py +194 -0
  53. kalir/api/webhooks/list_webhook_deliveries.py +239 -0
  54. kalir/api/webhooks/list_webhook_event_types.py +165 -0
  55. kalir/api/webhooks/list_webhooks.py +172 -0
  56. kalir/api/webhooks/retry_webhook_delivery.py +190 -0
  57. kalir/api/webhooks/rotate_webhook_secret.py +202 -0
  58. kalir/api/webhooks/send_webhook_test.py +202 -0
  59. kalir/api/webhooks/update_webhook.py +229 -0
  60. kalir/client.py +271 -0
  61. kalir/errors.py +14 -0
  62. kalir/models/__init__.py +195 -0
  63. kalir/models/asset.py +162 -0
  64. kalir/models/asset_create.py +122 -0
  65. kalir/models/asset_create_asset_type.py +14 -0
  66. kalir/models/asset_create_metadata.py +64 -0
  67. kalir/models/count_exposures_response_200.py +78 -0
  68. kalir/models/count_takedowns_response_200.py +96 -0
  69. kalir/models/create_report_body.py +96 -0
  70. kalir/models/create_report_body_type.py +10 -0
  71. kalir/models/create_webhook_response_201.py +111 -0
  72. kalir/models/error.py +84 -0
  73. kalir/models/error_error.py +106 -0
  74. kalir/models/error_error_type.py +15 -0
  75. kalir/models/event.py +151 -0
  76. kalir/models/event_asset.py +87 -0
  77. kalir/models/event_ingest.py +146 -0
  78. kalir/models/event_ingest_asset.py +87 -0
  79. kalir/models/event_ingest_evidence.py +64 -0
  80. kalir/models/event_ingest_source.py +87 -0
  81. kalir/models/exposure.py +137 -0
  82. kalir/models/exposure_webhook_event.py +152 -0
  83. kalir/models/exposure_webhook_event_data.py +115 -0
  84. kalir/models/exposure_webhook_event_data_exposure.py +149 -0
  85. kalir/models/exposure_webhook_event_data_infection.py +136 -0
  86. kalir/models/exposure_webhook_event_type.py +8 -0
  87. kalir/models/get_incident_response_200.py +174 -0
  88. kalir/models/get_infostealer_summary_response_200.py +100 -0
  89. kalir/models/get_ransomware_stats_response_200.py +156 -0
  90. kalir/models/get_ransomware_stats_response_200_top_countries_7d_item.py +64 -0
  91. kalir/models/get_ransomware_stats_response_200_top_groups_7d_item.py +64 -0
  92. kalir/models/incident.py +170 -0
  93. kalir/models/incident_severity.py +10 -0
  94. kalir/models/incident_status.py +10 -0
  95. kalir/models/incident_webhook_event.py +152 -0
  96. kalir/models/incident_webhook_event_data.py +115 -0
  97. kalir/models/incident_webhook_event_data_previous.py +88 -0
  98. kalir/models/incident_webhook_event_type.py +9 -0
  99. kalir/models/infostealer_domain_summary.py +122 -0
  100. kalir/models/infostealer_domain_summary_snapshot.py +201 -0
  101. kalir/models/infostealer_domain_summary_snapshot_top_employee_urls_item.py +87 -0
  102. kalir/models/infostealer_domain_summary_snapshot_top_families_item.py +87 -0
  103. kalir/models/list_assets_response_200.py +100 -0
  104. kalir/models/list_events_response_200.py +109 -0
  105. kalir/models/list_exposures_response_200.py +127 -0
  106. kalir/models/list_incidents_bucket.py +10 -0
  107. kalir/models/list_incidents_response_200.py +149 -0
  108. kalir/models/list_incidents_response_200_counts.py +106 -0
  109. kalir/models/list_incidents_status.py +12 -0
  110. kalir/models/list_mentions_response_200.py +122 -0
  111. kalir/models/list_mentions_source.py +8 -0
  112. kalir/models/list_phishing_response_200.py +122 -0
  113. kalir/models/list_phishing_verdict.py +11 -0
  114. kalir/models/list_ransomware_victims_response_200.py +109 -0
  115. kalir/models/list_ransomware_victims_response_200_victims_item.py +64 -0
  116. kalir/models/list_reports_response_200.py +109 -0
  117. kalir/models/list_rules_response_200.py +100 -0
  118. kalir/models/list_takedowns_response_200.py +109 -0
  119. kalir/models/list_webhook_deliveries_response_200.py +122 -0
  120. kalir/models/list_webhook_event_types_response_200.py +100 -0
  121. kalir/models/list_webhook_event_types_response_200_data_item.py +87 -0
  122. kalir/models/list_webhooks_response_200.py +100 -0
  123. kalir/models/mention.py +194 -0
  124. kalir/models/mention_source.py +8 -0
  125. kalir/models/overview.py +231 -0
  126. kalir/models/overview_assets.py +96 -0
  127. kalir/models/overview_exposures.py +105 -0
  128. kalir/models/overview_incidents.py +114 -0
  129. kalir/models/overview_phishing.py +87 -0
  130. kalir/models/overview_risk_level.py +10 -0
  131. kalir/models/overview_takedowns.py +87 -0
  132. kalir/models/pagination.py +105 -0
  133. kalir/models/phishing_domain.py +186 -0
  134. kalir/models/phishing_domain_verdict.py +11 -0
  135. kalir/models/report.py +182 -0
  136. kalir/models/report_parameters.py +181 -0
  137. kalir/models/report_parameters_date_range.py +11 -0
  138. kalir/models/report_parameters_language.py +8 -0
  139. kalir/models/report_parameters_sections_item.py +15 -0
  140. kalir/models/report_status.py +10 -0
  141. kalir/models/rotate_webhook_secret_response_200.py +87 -0
  142. kalir/models/rule.py +174 -0
  143. kalir/models/rule_input.py +134 -0
  144. kalir/models/rule_input_actions_item.py +64 -0
  145. kalir/models/takedown.py +163 -0
  146. kalir/models/takedown_create.py +113 -0
  147. kalir/models/takedown_update.py +96 -0
  148. kalir/models/update_incident_status_body.py +90 -0
  149. kalir/models/update_incident_status_body_status.py +10 -0
  150. kalir/models/webhook_delivery.py +274 -0
  151. kalir/models/webhook_delivery_payload.py +64 -0
  152. kalir/models/webhook_delivery_status.py +9 -0
  153. kalir/models/webhook_endpoint.py +216 -0
  154. kalir/models/webhook_endpoint_input.py +124 -0
  155. kalir/models/webhook_endpoint_input_event_types_item.py +11 -0
  156. kalir/models/webhook_incident.py +232 -0
  157. kalir/models/webhook_incident_severity.py +10 -0
  158. kalir/py.typed +1 -0
  159. kalir/types.py +53 -0
  160. kalir/webhooks.py +63 -0
  161. kalir_python-0.1.0.dist-info/METADATA +76 -0
  162. kalir_python-0.1.0.dist-info/RECORD +163 -0
  163. kalir_python-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,64 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ T = TypeVar("T", bound="ListRansomwareVictimsResponse200VictimsItem")
18
+
19
+
20
+
21
+ @_attrs_define
22
+ class ListRansomwareVictimsResponse200VictimsItem:
23
+
24
+
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+
28
+
29
+
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+
33
+ field_dict: dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+
36
+ return field_dict
37
+
38
+
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+ list_ransomware_victims_response_200_victims_item = cls(
44
+ )
45
+
46
+
47
+ list_ransomware_victims_response_200_victims_item.additional_properties = d
48
+ return list_ransomware_victims_response_200_victims_item
49
+
50
+ @property
51
+ def additional_keys(self) -> list[str]:
52
+ return list(self.additional_properties.keys())
53
+
54
+ def __getitem__(self, key: str) -> Any:
55
+ return self.additional_properties[key]
56
+
57
+ def __setitem__(self, key: str, value: Any) -> None:
58
+ self.additional_properties[key] = value
59
+
60
+ def __delitem__(self, key: str) -> None:
61
+ del self.additional_properties[key]
62
+
63
+ def __contains__(self, key: str) -> bool:
64
+ return key in self.additional_properties
@@ -0,0 +1,109 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.report import Report
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ListReportsResponse200")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ListReportsResponse200:
27
+ """
28
+ Attributes:
29
+ reports (list[Report] | Unset):
30
+ total (int | Unset):
31
+ """
32
+
33
+ reports: list[Report] | Unset = UNSET
34
+ total: int | Unset = UNSET
35
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
+
37
+
38
+
39
+
40
+
41
+ def to_dict(self) -> dict[str, Any]:
42
+ from ..models.report import Report # noqa: PLC0415
43
+ reports: list[dict[str, Any]] | Unset = UNSET
44
+ if not isinstance(self.reports, Unset):
45
+ reports = []
46
+ for reports_item_data in self.reports:
47
+ reports_item = reports_item_data.to_dict()
48
+ reports.append(reports_item)
49
+
50
+
51
+
52
+ total = self.total
53
+
54
+
55
+ field_dict: dict[str, Any] = {}
56
+ field_dict.update(self.additional_properties)
57
+ field_dict.update({
58
+ })
59
+ if reports is not UNSET:
60
+ field_dict["reports"] = reports
61
+ if total is not UNSET:
62
+ field_dict["total"] = total
63
+
64
+ return field_dict
65
+
66
+
67
+
68
+ @classmethod
69
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
70
+ from ..models.report import Report # noqa: PLC0415
71
+ d = dict(src_dict)
72
+ _reports = d.pop("reports", UNSET)
73
+ reports: list[Report] | Unset = UNSET
74
+ if _reports is not UNSET:
75
+ reports = []
76
+ for reports_item_data in _reports:
77
+ reports_item = Report.from_dict(reports_item_data)
78
+
79
+
80
+
81
+ reports.append(reports_item)
82
+
83
+
84
+ total = d.pop("total", UNSET)
85
+
86
+ list_reports_response_200 = cls(
87
+ reports=reports,
88
+ total=total,
89
+ )
90
+
91
+
92
+ list_reports_response_200.additional_properties = d
93
+ return list_reports_response_200
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,100 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.rule import Rule
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ListRulesResponse200")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ListRulesResponse200:
27
+ """
28
+ Attributes:
29
+ rules (list[Rule] | Unset):
30
+ """
31
+
32
+ rules: list[Rule] | Unset = UNSET
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+
36
+
37
+
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ from ..models.rule import Rule # noqa: PLC0415
41
+ rules: list[dict[str, Any]] | Unset = UNSET
42
+ if not isinstance(self.rules, Unset):
43
+ rules = []
44
+ for rules_item_data in self.rules:
45
+ rules_item = rules_item_data.to_dict()
46
+ rules.append(rules_item)
47
+
48
+
49
+
50
+
51
+ field_dict: dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update({
54
+ })
55
+ if rules is not UNSET:
56
+ field_dict["rules"] = rules
57
+
58
+ return field_dict
59
+
60
+
61
+
62
+ @classmethod
63
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
64
+ from ..models.rule import Rule # noqa: PLC0415
65
+ d = dict(src_dict)
66
+ _rules = d.pop("rules", UNSET)
67
+ rules: list[Rule] | Unset = UNSET
68
+ if _rules is not UNSET:
69
+ rules = []
70
+ for rules_item_data in _rules:
71
+ rules_item = Rule.from_dict(rules_item_data)
72
+
73
+
74
+
75
+ rules.append(rules_item)
76
+
77
+
78
+ list_rules_response_200 = cls(
79
+ rules=rules,
80
+ )
81
+
82
+
83
+ list_rules_response_200.additional_properties = d
84
+ return list_rules_response_200
85
+
86
+ @property
87
+ def additional_keys(self) -> list[str]:
88
+ return list(self.additional_properties.keys())
89
+
90
+ def __getitem__(self, key: str) -> Any:
91
+ return self.additional_properties[key]
92
+
93
+ def __setitem__(self, key: str, value: Any) -> None:
94
+ self.additional_properties[key] = value
95
+
96
+ def __delitem__(self, key: str) -> None:
97
+ del self.additional_properties[key]
98
+
99
+ def __contains__(self, key: str) -> bool:
100
+ return key in self.additional_properties
@@ -0,0 +1,109 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.takedown import Takedown
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ListTakedownsResponse200")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ListTakedownsResponse200:
27
+ """
28
+ Attributes:
29
+ takedowns (list[Takedown] | Unset):
30
+ total (int | Unset):
31
+ """
32
+
33
+ takedowns: list[Takedown] | Unset = UNSET
34
+ total: int | Unset = UNSET
35
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
+
37
+
38
+
39
+
40
+
41
+ def to_dict(self) -> dict[str, Any]:
42
+ from ..models.takedown import Takedown # noqa: PLC0415
43
+ takedowns: list[dict[str, Any]] | Unset = UNSET
44
+ if not isinstance(self.takedowns, Unset):
45
+ takedowns = []
46
+ for takedowns_item_data in self.takedowns:
47
+ takedowns_item = takedowns_item_data.to_dict()
48
+ takedowns.append(takedowns_item)
49
+
50
+
51
+
52
+ total = self.total
53
+
54
+
55
+ field_dict: dict[str, Any] = {}
56
+ field_dict.update(self.additional_properties)
57
+ field_dict.update({
58
+ })
59
+ if takedowns is not UNSET:
60
+ field_dict["takedowns"] = takedowns
61
+ if total is not UNSET:
62
+ field_dict["total"] = total
63
+
64
+ return field_dict
65
+
66
+
67
+
68
+ @classmethod
69
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
70
+ from ..models.takedown import Takedown # noqa: PLC0415
71
+ d = dict(src_dict)
72
+ _takedowns = d.pop("takedowns", UNSET)
73
+ takedowns: list[Takedown] | Unset = UNSET
74
+ if _takedowns is not UNSET:
75
+ takedowns = []
76
+ for takedowns_item_data in _takedowns:
77
+ takedowns_item = Takedown.from_dict(takedowns_item_data)
78
+
79
+
80
+
81
+ takedowns.append(takedowns_item)
82
+
83
+
84
+ total = d.pop("total", UNSET)
85
+
86
+ list_takedowns_response_200 = cls(
87
+ takedowns=takedowns,
88
+ total=total,
89
+ )
90
+
91
+
92
+ list_takedowns_response_200.additional_properties = d
93
+ return list_takedowns_response_200
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,122 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.pagination import Pagination
16
+ from ..models.webhook_delivery import WebhookDelivery
17
+
18
+
19
+
20
+
21
+
22
+ T = TypeVar("T", bound="ListWebhookDeliveriesResponse200")
23
+
24
+
25
+
26
+ @_attrs_define
27
+ class ListWebhookDeliveriesResponse200:
28
+ """
29
+ Attributes:
30
+ data (list[WebhookDelivery] | Unset):
31
+ pagination (Pagination | Unset):
32
+ """
33
+
34
+ data: list[WebhookDelivery] | Unset = UNSET
35
+ pagination: Pagination | Unset = UNSET
36
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
37
+
38
+
39
+
40
+
41
+
42
+ def to_dict(self) -> dict[str, Any]:
43
+ from ..models.pagination import Pagination # noqa: PLC0415
44
+ from ..models.webhook_delivery import WebhookDelivery # noqa: PLC0415
45
+ data: list[dict[str, Any]] | Unset = UNSET
46
+ if not isinstance(self.data, Unset):
47
+ data = []
48
+ for data_item_data in self.data:
49
+ data_item = data_item_data.to_dict()
50
+ data.append(data_item)
51
+
52
+
53
+
54
+ pagination: dict[str, Any] | Unset = UNSET
55
+ if not isinstance(self.pagination, Unset):
56
+ pagination = self.pagination.to_dict()
57
+
58
+
59
+ field_dict: dict[str, Any] = {}
60
+ field_dict.update(self.additional_properties)
61
+ field_dict.update({
62
+ })
63
+ if data is not UNSET:
64
+ field_dict["data"] = data
65
+ if pagination is not UNSET:
66
+ field_dict["pagination"] = pagination
67
+
68
+ return field_dict
69
+
70
+
71
+
72
+ @classmethod
73
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
74
+ from ..models.pagination import Pagination # noqa: PLC0415
75
+ from ..models.webhook_delivery import WebhookDelivery # noqa: PLC0415
76
+ d = dict(src_dict)
77
+ _data = d.pop("data", UNSET)
78
+ data: list[WebhookDelivery] | Unset = UNSET
79
+ if _data is not UNSET:
80
+ data = []
81
+ for data_item_data in _data:
82
+ data_item = WebhookDelivery.from_dict(data_item_data)
83
+
84
+
85
+
86
+ data.append(data_item)
87
+
88
+
89
+ _pagination = d.pop("pagination", UNSET)
90
+ pagination: Pagination | Unset
91
+ if isinstance(_pagination, Unset):
92
+ pagination = UNSET
93
+ else:
94
+ pagination = Pagination.from_dict(_pagination)
95
+
96
+
97
+
98
+
99
+ list_webhook_deliveries_response_200 = cls(
100
+ data=data,
101
+ pagination=pagination,
102
+ )
103
+
104
+
105
+ list_webhook_deliveries_response_200.additional_properties = d
106
+ return list_webhook_deliveries_response_200
107
+
108
+ @property
109
+ def additional_keys(self) -> list[str]:
110
+ return list(self.additional_properties.keys())
111
+
112
+ def __getitem__(self, key: str) -> Any:
113
+ return self.additional_properties[key]
114
+
115
+ def __setitem__(self, key: str, value: Any) -> None:
116
+ self.additional_properties[key] = value
117
+
118
+ def __delitem__(self, key: str) -> None:
119
+ del self.additional_properties[key]
120
+
121
+ def __contains__(self, key: str) -> bool:
122
+ return key in self.additional_properties
@@ -0,0 +1,100 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+ from typing import cast
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.list_webhook_event_types_response_200_data_item import ListWebhookEventTypesResponse200DataItem
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="ListWebhookEventTypesResponse200")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class ListWebhookEventTypesResponse200:
27
+ """
28
+ Attributes:
29
+ data (list[ListWebhookEventTypesResponse200DataItem] | Unset):
30
+ """
31
+
32
+ data: list[ListWebhookEventTypesResponse200DataItem] | Unset = UNSET
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+
36
+
37
+
38
+
39
+ def to_dict(self) -> dict[str, Any]:
40
+ from ..models.list_webhook_event_types_response_200_data_item import ListWebhookEventTypesResponse200DataItem # noqa: PLC0415
41
+ data: list[dict[str, Any]] | Unset = UNSET
42
+ if not isinstance(self.data, Unset):
43
+ data = []
44
+ for data_item_data in self.data:
45
+ data_item = data_item_data.to_dict()
46
+ data.append(data_item)
47
+
48
+
49
+
50
+
51
+ field_dict: dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update({
54
+ })
55
+ if data is not UNSET:
56
+ field_dict["data"] = data
57
+
58
+ return field_dict
59
+
60
+
61
+
62
+ @classmethod
63
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
64
+ from ..models.list_webhook_event_types_response_200_data_item import ListWebhookEventTypesResponse200DataItem # noqa: PLC0415
65
+ d = dict(src_dict)
66
+ _data = d.pop("data", UNSET)
67
+ data: list[ListWebhookEventTypesResponse200DataItem] | Unset = UNSET
68
+ if _data is not UNSET:
69
+ data = []
70
+ for data_item_data in _data:
71
+ data_item = ListWebhookEventTypesResponse200DataItem.from_dict(data_item_data)
72
+
73
+
74
+
75
+ data.append(data_item)
76
+
77
+
78
+ list_webhook_event_types_response_200 = cls(
79
+ data=data,
80
+ )
81
+
82
+
83
+ list_webhook_event_types_response_200.additional_properties = d
84
+ return list_webhook_event_types_response_200
85
+
86
+ @property
87
+ def additional_keys(self) -> list[str]:
88
+ return list(self.additional_properties.keys())
89
+
90
+ def __getitem__(self, key: str) -> Any:
91
+ return self.additional_properties[key]
92
+
93
+ def __setitem__(self, key: str, value: Any) -> None:
94
+ self.additional_properties[key] = value
95
+
96
+ def __delitem__(self, key: str) -> None:
97
+ del self.additional_properties[key]
98
+
99
+ def __contains__(self, key: str) -> bool:
100
+ return key in self.additional_properties
@@ -0,0 +1,87 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+
14
+
15
+
16
+
17
+
18
+ T = TypeVar("T", bound="ListWebhookEventTypesResponse200DataItem")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class ListWebhookEventTypesResponse200DataItem:
24
+ """
25
+ Attributes:
26
+ type_ (str | Unset):
27
+ description (str | Unset):
28
+ """
29
+
30
+ type_: str | Unset = UNSET
31
+ description: str | Unset = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+
35
+
36
+
37
+
38
+ def to_dict(self) -> dict[str, Any]:
39
+ type_ = self.type_
40
+
41
+ description = self.description
42
+
43
+
44
+ field_dict: dict[str, Any] = {}
45
+ field_dict.update(self.additional_properties)
46
+ field_dict.update({
47
+ })
48
+ if type_ is not UNSET:
49
+ field_dict["type"] = type_
50
+ if description is not UNSET:
51
+ field_dict["description"] = description
52
+
53
+ return field_dict
54
+
55
+
56
+
57
+ @classmethod
58
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
59
+ d = dict(src_dict)
60
+ type_ = d.pop("type", UNSET)
61
+
62
+ description = d.pop("description", UNSET)
63
+
64
+ list_webhook_event_types_response_200_data_item = cls(
65
+ type_=type_,
66
+ description=description,
67
+ )
68
+
69
+
70
+ list_webhook_event_types_response_200_data_item.additional_properties = d
71
+ return list_webhook_event_types_response_200_data_item
72
+
73
+ @property
74
+ def additional_keys(self) -> list[str]:
75
+ return list(self.additional_properties.keys())
76
+
77
+ def __getitem__(self, key: str) -> Any:
78
+ return self.additional_properties[key]
79
+
80
+ def __setitem__(self, key: str, value: Any) -> None:
81
+ self.additional_properties[key] = value
82
+
83
+ def __delitem__(self, key: str) -> None:
84
+ del self.additional_properties[key]
85
+
86
+ def __contains__(self, key: str) -> bool:
87
+ return key in self.additional_properties