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,215 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error import Error
12
+ from ...models.event import Event
13
+ from ...models.event_ingest import EventIngest
14
+ from typing import cast
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ *,
20
+ body: EventIngest,
21
+
22
+ ) -> dict[str, Any]:
23
+ headers: dict[str, Any] = {}
24
+
25
+
26
+
27
+
28
+
29
+
30
+ _kwargs: dict[str, Any] = {
31
+ "method": "post",
32
+ "url": "/v1/events",
33
+ }
34
+
35
+ _kwargs["json"] = body.to_dict()
36
+
37
+ headers["Content-Type"] = "application/json"
38
+
39
+ _kwargs["headers"] = headers
40
+ return _kwargs
41
+
42
+
43
+
44
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | Event | None:
45
+ if response.status_code == 202:
46
+ response_202 = Event.from_dict(response.json())
47
+
48
+
49
+
50
+ return response_202
51
+
52
+ if response.status_code == 400:
53
+ response_400 = Error.from_dict(response.json())
54
+
55
+
56
+
57
+ return response_400
58
+
59
+ if response.status_code == 401:
60
+ response_401 = Error.from_dict(response.json())
61
+
62
+
63
+
64
+ return response_401
65
+
66
+ if response.status_code == 403:
67
+ response_403 = Error.from_dict(response.json())
68
+
69
+
70
+
71
+ return response_403
72
+
73
+ if response.status_code == 429:
74
+ response_429 = Error.from_dict(response.json())
75
+
76
+
77
+
78
+ return response_429
79
+
80
+ if client.raise_on_unexpected_status:
81
+ raise errors.UnexpectedStatus(response.status_code, response.content)
82
+ else:
83
+ return None
84
+
85
+
86
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Error | Event]:
87
+ return Response(
88
+ status_code=HTTPStatus(response.status_code),
89
+ content=response.content,
90
+ headers=response.headers,
91
+ parsed=_parse_response(client=client, response=response),
92
+ )
93
+
94
+
95
+ def sync_detailed(
96
+ *,
97
+ client: AuthenticatedClient,
98
+ body: EventIngest,
99
+
100
+ ) -> Response[Error | Event]:
101
+ """ Ingest an event
102
+
103
+ Push a signal into Kalir. The event flows through the rules engine and may trigger an incident.
104
+
105
+ Args:
106
+ body (EventIngest):
107
+
108
+ Raises:
109
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
110
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
111
+
112
+ Returns:
113
+ Response[Error | Event]
114
+ """
115
+
116
+
117
+ kwargs = _get_kwargs(
118
+ body=body,
119
+
120
+ )
121
+
122
+ response = client.get_httpx_client().request(
123
+ **kwargs,
124
+ )
125
+
126
+ return _build_response(client=client, response=response)
127
+
128
+ def sync(
129
+ *,
130
+ client: AuthenticatedClient,
131
+ body: EventIngest,
132
+
133
+ ) -> Error | Event | None:
134
+ """ Ingest an event
135
+
136
+ Push a signal into Kalir. The event flows through the rules engine and may trigger an incident.
137
+
138
+ Args:
139
+ body (EventIngest):
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Error | Event
147
+ """
148
+
149
+
150
+ return sync_detailed(
151
+ client=client,
152
+ body=body,
153
+
154
+ ).parsed
155
+
156
+ async def asyncio_detailed(
157
+ *,
158
+ client: AuthenticatedClient,
159
+ body: EventIngest,
160
+
161
+ ) -> Response[Error | Event]:
162
+ """ Ingest an event
163
+
164
+ Push a signal into Kalir. The event flows through the rules engine and may trigger an incident.
165
+
166
+ Args:
167
+ body (EventIngest):
168
+
169
+ Raises:
170
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
171
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
172
+
173
+ Returns:
174
+ Response[Error | Event]
175
+ """
176
+
177
+
178
+ kwargs = _get_kwargs(
179
+ body=body,
180
+
181
+ )
182
+
183
+ response = await client.get_async_httpx_client().request(
184
+ **kwargs
185
+ )
186
+
187
+ return _build_response(client=client, response=response)
188
+
189
+ async def asyncio(
190
+ *,
191
+ client: AuthenticatedClient,
192
+ body: EventIngest,
193
+
194
+ ) -> Error | Event | None:
195
+ """ Ingest an event
196
+
197
+ Push a signal into Kalir. The event flows through the rules engine and may trigger an incident.
198
+
199
+ Args:
200
+ body (EventIngest):
201
+
202
+ Raises:
203
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
204
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
205
+
206
+ Returns:
207
+ Error | Event
208
+ """
209
+
210
+
211
+ return (await asyncio_detailed(
212
+ client=client,
213
+ body=body,
214
+
215
+ )).parsed
@@ -0,0 +1,259 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.error import Error
12
+ from ...models.list_events_response_200 import ListEventsResponse200
13
+ from ...types import UNSET, Unset
14
+ from typing import cast
15
+ from uuid import UUID
16
+
17
+
18
+
19
+ def _get_kwargs(
20
+ *,
21
+ incident_id: UUID | Unset = UNSET,
22
+ search: str | Unset = UNSET,
23
+ hide_fp: bool | Unset = False,
24
+ limit: int | Unset = 50,
25
+ offset: int | Unset = 0,
26
+
27
+ ) -> dict[str, Any]:
28
+
29
+
30
+
31
+
32
+ params: dict[str, Any] = {}
33
+
34
+ json_incident_id: str | Unset = UNSET
35
+ if not isinstance(incident_id, Unset):
36
+ json_incident_id = str(incident_id)
37
+ params["incident_id"] = json_incident_id
38
+
39
+ params["search"] = search
40
+
41
+ params["hide_fp"] = hide_fp
42
+
43
+ params["limit"] = limit
44
+
45
+ params["offset"] = offset
46
+
47
+
48
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
49
+
50
+
51
+ _kwargs: dict[str, Any] = {
52
+ "method": "get",
53
+ "url": "/v1/events/list",
54
+ "params": params,
55
+ }
56
+
57
+
58
+ return _kwargs
59
+
60
+
61
+
62
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | ListEventsResponse200 | None:
63
+ if response.status_code == 200:
64
+ response_200 = ListEventsResponse200.from_dict(response.json())
65
+
66
+
67
+
68
+ return response_200
69
+
70
+ if response.status_code == 401:
71
+ response_401 = Error.from_dict(response.json())
72
+
73
+
74
+
75
+ return response_401
76
+
77
+ if response.status_code == 429:
78
+ response_429 = Error.from_dict(response.json())
79
+
80
+
81
+
82
+ return response_429
83
+
84
+ if client.raise_on_unexpected_status:
85
+ raise errors.UnexpectedStatus(response.status_code, response.content)
86
+ else:
87
+ return None
88
+
89
+
90
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Error | ListEventsResponse200]:
91
+ return Response(
92
+ status_code=HTTPStatus(response.status_code),
93
+ content=response.content,
94
+ headers=response.headers,
95
+ parsed=_parse_response(client=client, response=response),
96
+ )
97
+
98
+
99
+ def sync_detailed(
100
+ *,
101
+ client: AuthenticatedClient,
102
+ incident_id: UUID | Unset = UNSET,
103
+ search: str | Unset = UNSET,
104
+ hide_fp: bool | Unset = False,
105
+ limit: int | Unset = 50,
106
+ offset: int | Unset = 0,
107
+
108
+ ) -> Response[Error | ListEventsResponse200]:
109
+ """ List events
110
+
111
+ Args:
112
+ incident_id (UUID | Unset):
113
+ search (str | Unset):
114
+ hide_fp (bool | Unset): Default: False.
115
+ limit (int | Unset): Default: 50.
116
+ offset (int | Unset): Default: 0.
117
+
118
+ Raises:
119
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
120
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
121
+
122
+ Returns:
123
+ Response[Error | ListEventsResponse200]
124
+ """
125
+
126
+
127
+ kwargs = _get_kwargs(
128
+ incident_id=incident_id,
129
+ search=search,
130
+ hide_fp=hide_fp,
131
+ limit=limit,
132
+ offset=offset,
133
+
134
+ )
135
+
136
+ response = client.get_httpx_client().request(
137
+ **kwargs,
138
+ )
139
+
140
+ return _build_response(client=client, response=response)
141
+
142
+ def sync(
143
+ *,
144
+ client: AuthenticatedClient,
145
+ incident_id: UUID | Unset = UNSET,
146
+ search: str | Unset = UNSET,
147
+ hide_fp: bool | Unset = False,
148
+ limit: int | Unset = 50,
149
+ offset: int | Unset = 0,
150
+
151
+ ) -> Error | ListEventsResponse200 | None:
152
+ """ List events
153
+
154
+ Args:
155
+ incident_id (UUID | Unset):
156
+ search (str | Unset):
157
+ hide_fp (bool | Unset): Default: False.
158
+ limit (int | Unset): Default: 50.
159
+ offset (int | Unset): Default: 0.
160
+
161
+ Raises:
162
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
163
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
164
+
165
+ Returns:
166
+ Error | ListEventsResponse200
167
+ """
168
+
169
+
170
+ return sync_detailed(
171
+ client=client,
172
+ incident_id=incident_id,
173
+ search=search,
174
+ hide_fp=hide_fp,
175
+ limit=limit,
176
+ offset=offset,
177
+
178
+ ).parsed
179
+
180
+ async def asyncio_detailed(
181
+ *,
182
+ client: AuthenticatedClient,
183
+ incident_id: UUID | Unset = UNSET,
184
+ search: str | Unset = UNSET,
185
+ hide_fp: bool | Unset = False,
186
+ limit: int | Unset = 50,
187
+ offset: int | Unset = 0,
188
+
189
+ ) -> Response[Error | ListEventsResponse200]:
190
+ """ List events
191
+
192
+ Args:
193
+ incident_id (UUID | Unset):
194
+ search (str | Unset):
195
+ hide_fp (bool | Unset): Default: False.
196
+ limit (int | Unset): Default: 50.
197
+ offset (int | Unset): Default: 0.
198
+
199
+ Raises:
200
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
201
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
202
+
203
+ Returns:
204
+ Response[Error | ListEventsResponse200]
205
+ """
206
+
207
+
208
+ kwargs = _get_kwargs(
209
+ incident_id=incident_id,
210
+ search=search,
211
+ hide_fp=hide_fp,
212
+ limit=limit,
213
+ offset=offset,
214
+
215
+ )
216
+
217
+ response = await client.get_async_httpx_client().request(
218
+ **kwargs
219
+ )
220
+
221
+ return _build_response(client=client, response=response)
222
+
223
+ async def asyncio(
224
+ *,
225
+ client: AuthenticatedClient,
226
+ incident_id: UUID | Unset = UNSET,
227
+ search: str | Unset = UNSET,
228
+ hide_fp: bool | Unset = False,
229
+ limit: int | Unset = 50,
230
+ offset: int | Unset = 0,
231
+
232
+ ) -> Error | ListEventsResponse200 | None:
233
+ """ List events
234
+
235
+ Args:
236
+ incident_id (UUID | Unset):
237
+ search (str | Unset):
238
+ hide_fp (bool | Unset): Default: False.
239
+ limit (int | Unset): Default: 50.
240
+ offset (int | Unset): Default: 0.
241
+
242
+ Raises:
243
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
244
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
245
+
246
+ Returns:
247
+ Error | ListEventsResponse200
248
+ """
249
+
250
+
251
+ return (await asyncio_detailed(
252
+ client=client,
253
+ incident_id=incident_id,
254
+ search=search,
255
+ hide_fp=hide_fp,
256
+ limit=limit,
257
+ offset=offset,
258
+
259
+ )).parsed
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """
@@ -0,0 +1,165 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.count_exposures_response_200 import CountExposuresResponse200
12
+ from ...models.error import Error
13
+ from typing import cast
14
+
15
+
16
+
17
+ def _get_kwargs(
18
+
19
+ ) -> dict[str, Any]:
20
+
21
+
22
+
23
+
24
+
25
+
26
+ _kwargs: dict[str, Any] = {
27
+ "method": "get",
28
+ "url": "/v1/exposures/count",
29
+ }
30
+
31
+
32
+ return _kwargs
33
+
34
+
35
+
36
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> CountExposuresResponse200 | Error | None:
37
+ if response.status_code == 200:
38
+ response_200 = CountExposuresResponse200.from_dict(response.json())
39
+
40
+
41
+
42
+ return response_200
43
+
44
+ if response.status_code == 401:
45
+ response_401 = Error.from_dict(response.json())
46
+
47
+
48
+
49
+ return response_401
50
+
51
+ if response.status_code == 429:
52
+ response_429 = Error.from_dict(response.json())
53
+
54
+
55
+
56
+ return response_429
57
+
58
+ if client.raise_on_unexpected_status:
59
+ raise errors.UnexpectedStatus(response.status_code, response.content)
60
+ else:
61
+ return None
62
+
63
+
64
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[CountExposuresResponse200 | Error]:
65
+ return Response(
66
+ status_code=HTTPStatus(response.status_code),
67
+ content=response.content,
68
+ headers=response.headers,
69
+ parsed=_parse_response(client=client, response=response),
70
+ )
71
+
72
+
73
+ def sync_detailed(
74
+ *,
75
+ client: AuthenticatedClient,
76
+
77
+ ) -> Response[CountExposuresResponse200 | Error]:
78
+ """ Total exposure count for the org
79
+
80
+ Raises:
81
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
82
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
83
+
84
+ Returns:
85
+ Response[CountExposuresResponse200 | Error]
86
+ """
87
+
88
+
89
+ kwargs = _get_kwargs(
90
+
91
+ )
92
+
93
+ response = client.get_httpx_client().request(
94
+ **kwargs,
95
+ )
96
+
97
+ return _build_response(client=client, response=response)
98
+
99
+ def sync(
100
+ *,
101
+ client: AuthenticatedClient,
102
+
103
+ ) -> CountExposuresResponse200 | Error | None:
104
+ """ Total exposure count for the org
105
+
106
+ Raises:
107
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
108
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
109
+
110
+ Returns:
111
+ CountExposuresResponse200 | Error
112
+ """
113
+
114
+
115
+ return sync_detailed(
116
+ client=client,
117
+
118
+ ).parsed
119
+
120
+ async def asyncio_detailed(
121
+ *,
122
+ client: AuthenticatedClient,
123
+
124
+ ) -> Response[CountExposuresResponse200 | Error]:
125
+ """ Total exposure count for the org
126
+
127
+ Raises:
128
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
129
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
130
+
131
+ Returns:
132
+ Response[CountExposuresResponse200 | Error]
133
+ """
134
+
135
+
136
+ kwargs = _get_kwargs(
137
+
138
+ )
139
+
140
+ response = await client.get_async_httpx_client().request(
141
+ **kwargs
142
+ )
143
+
144
+ return _build_response(client=client, response=response)
145
+
146
+ async def asyncio(
147
+ *,
148
+ client: AuthenticatedClient,
149
+
150
+ ) -> CountExposuresResponse200 | Error | None:
151
+ """ Total exposure count for the org
152
+
153
+ Raises:
154
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
155
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
156
+
157
+ Returns:
158
+ CountExposuresResponse200 | Error
159
+ """
160
+
161
+
162
+ return (await asyncio_detailed(
163
+ client=client,
164
+
165
+ )).parsed