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,181 @@
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.get_infostealer_summary_response_200 import GetInfostealerSummaryResponse200
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/infostealer-summary",
29
+ }
30
+
31
+
32
+ return _kwargs
33
+
34
+
35
+
36
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | GetInfostealerSummaryResponse200 | None:
37
+ if response.status_code == 200:
38
+ response_200 = GetInfostealerSummaryResponse200.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[Error | GetInfostealerSummaryResponse200]:
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[Error | GetInfostealerSummaryResponse200]:
78
+ """ Infostealer exposure by domain
79
+
80
+ Aggregate infostealer (device-compromise) intelligence for each monitored domain — compromised
81
+ employees and users, stealer families and affected corporate login URLs. Credentials are never
82
+ returned.
83
+
84
+ Raises:
85
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
86
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
87
+
88
+ Returns:
89
+ Response[Error | GetInfostealerSummaryResponse200]
90
+ """
91
+
92
+
93
+ kwargs = _get_kwargs(
94
+
95
+ )
96
+
97
+ response = client.get_httpx_client().request(
98
+ **kwargs,
99
+ )
100
+
101
+ return _build_response(client=client, response=response)
102
+
103
+ def sync(
104
+ *,
105
+ client: AuthenticatedClient,
106
+
107
+ ) -> Error | GetInfostealerSummaryResponse200 | None:
108
+ """ Infostealer exposure by domain
109
+
110
+ Aggregate infostealer (device-compromise) intelligence for each monitored domain — compromised
111
+ employees and users, stealer families and affected corporate login URLs. Credentials are never
112
+ returned.
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ Error | GetInfostealerSummaryResponse200
120
+ """
121
+
122
+
123
+ return sync_detailed(
124
+ client=client,
125
+
126
+ ).parsed
127
+
128
+ async def asyncio_detailed(
129
+ *,
130
+ client: AuthenticatedClient,
131
+
132
+ ) -> Response[Error | GetInfostealerSummaryResponse200]:
133
+ """ Infostealer exposure by domain
134
+
135
+ Aggregate infostealer (device-compromise) intelligence for each monitored domain — compromised
136
+ employees and users, stealer families and affected corporate login URLs. Credentials are never
137
+ returned.
138
+
139
+ Raises:
140
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
141
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
142
+
143
+ Returns:
144
+ Response[Error | GetInfostealerSummaryResponse200]
145
+ """
146
+
147
+
148
+ kwargs = _get_kwargs(
149
+
150
+ )
151
+
152
+ response = await client.get_async_httpx_client().request(
153
+ **kwargs
154
+ )
155
+
156
+ return _build_response(client=client, response=response)
157
+
158
+ async def asyncio(
159
+ *,
160
+ client: AuthenticatedClient,
161
+
162
+ ) -> Error | GetInfostealerSummaryResponse200 | None:
163
+ """ Infostealer exposure by domain
164
+
165
+ Aggregate infostealer (device-compromise) intelligence for each monitored domain — compromised
166
+ employees and users, stealer families and affected corporate login URLs. Credentials are never
167
+ returned.
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
+ Error | GetInfostealerSummaryResponse200
175
+ """
176
+
177
+
178
+ return (await asyncio_detailed(
179
+ client=client,
180
+
181
+ )).parsed
@@ -0,0 +1,225 @@
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_exposures_response_200 import ListExposuresResponse200
13
+ from ...types import UNSET, Unset
14
+ from typing import cast
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ *,
20
+ limit: int | Unset = 50,
21
+ offset: int | Unset = 0,
22
+ status: str | Unset = UNSET,
23
+
24
+ ) -> dict[str, Any]:
25
+
26
+
27
+
28
+
29
+ params: dict[str, Any] = {}
30
+
31
+ params["limit"] = limit
32
+
33
+ params["offset"] = offset
34
+
35
+ params["status"] = status
36
+
37
+
38
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
39
+
40
+
41
+ _kwargs: dict[str, Any] = {
42
+ "method": "get",
43
+ "url": "/v1/exposures",
44
+ "params": params,
45
+ }
46
+
47
+
48
+ return _kwargs
49
+
50
+
51
+
52
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | ListExposuresResponse200 | None:
53
+ if response.status_code == 200:
54
+ response_200 = ListExposuresResponse200.from_dict(response.json())
55
+
56
+
57
+
58
+ return response_200
59
+
60
+ if response.status_code == 401:
61
+ response_401 = Error.from_dict(response.json())
62
+
63
+
64
+
65
+ return response_401
66
+
67
+ if response.status_code == 429:
68
+ response_429 = Error.from_dict(response.json())
69
+
70
+
71
+
72
+ return response_429
73
+
74
+ if client.raise_on_unexpected_status:
75
+ raise errors.UnexpectedStatus(response.status_code, response.content)
76
+ else:
77
+ return None
78
+
79
+
80
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Error | ListExposuresResponse200]:
81
+ return Response(
82
+ status_code=HTTPStatus(response.status_code),
83
+ content=response.content,
84
+ headers=response.headers,
85
+ parsed=_parse_response(client=client, response=response),
86
+ )
87
+
88
+
89
+ def sync_detailed(
90
+ *,
91
+ client: AuthenticatedClient,
92
+ limit: int | Unset = 50,
93
+ offset: int | Unset = 0,
94
+ status: str | Unset = UNSET,
95
+
96
+ ) -> Response[Error | ListExposuresResponse200]:
97
+ """ List exposures
98
+
99
+ Args:
100
+ limit (int | Unset): Default: 50.
101
+ offset (int | Unset): Default: 0.
102
+ status (str | Unset):
103
+
104
+ Raises:
105
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
107
+
108
+ Returns:
109
+ Response[Error | ListExposuresResponse200]
110
+ """
111
+
112
+
113
+ kwargs = _get_kwargs(
114
+ limit=limit,
115
+ offset=offset,
116
+ status=status,
117
+
118
+ )
119
+
120
+ response = client.get_httpx_client().request(
121
+ **kwargs,
122
+ )
123
+
124
+ return _build_response(client=client, response=response)
125
+
126
+ def sync(
127
+ *,
128
+ client: AuthenticatedClient,
129
+ limit: int | Unset = 50,
130
+ offset: int | Unset = 0,
131
+ status: str | Unset = UNSET,
132
+
133
+ ) -> Error | ListExposuresResponse200 | None:
134
+ """ List exposures
135
+
136
+ Args:
137
+ limit (int | Unset): Default: 50.
138
+ offset (int | Unset): Default: 0.
139
+ status (str | Unset):
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 | ListExposuresResponse200
147
+ """
148
+
149
+
150
+ return sync_detailed(
151
+ client=client,
152
+ limit=limit,
153
+ offset=offset,
154
+ status=status,
155
+
156
+ ).parsed
157
+
158
+ async def asyncio_detailed(
159
+ *,
160
+ client: AuthenticatedClient,
161
+ limit: int | Unset = 50,
162
+ offset: int | Unset = 0,
163
+ status: str | Unset = UNSET,
164
+
165
+ ) -> Response[Error | ListExposuresResponse200]:
166
+ """ List exposures
167
+
168
+ Args:
169
+ limit (int | Unset): Default: 50.
170
+ offset (int | Unset): Default: 0.
171
+ status (str | Unset):
172
+
173
+ Raises:
174
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
175
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
176
+
177
+ Returns:
178
+ Response[Error | ListExposuresResponse200]
179
+ """
180
+
181
+
182
+ kwargs = _get_kwargs(
183
+ limit=limit,
184
+ offset=offset,
185
+ status=status,
186
+
187
+ )
188
+
189
+ response = await client.get_async_httpx_client().request(
190
+ **kwargs
191
+ )
192
+
193
+ return _build_response(client=client, response=response)
194
+
195
+ async def asyncio(
196
+ *,
197
+ client: AuthenticatedClient,
198
+ limit: int | Unset = 50,
199
+ offset: int | Unset = 0,
200
+ status: str | Unset = UNSET,
201
+
202
+ ) -> Error | ListExposuresResponse200 | None:
203
+ """ List exposures
204
+
205
+ Args:
206
+ limit (int | Unset): Default: 50.
207
+ offset (int | Unset): Default: 0.
208
+ status (str | Unset):
209
+
210
+ Raises:
211
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
212
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
213
+
214
+ Returns:
215
+ Error | ListExposuresResponse200
216
+ """
217
+
218
+
219
+ return (await asyncio_detailed(
220
+ client=client,
221
+ limit=limit,
222
+ offset=offset,
223
+ status=status,
224
+
225
+ )).parsed
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """
@@ -0,0 +1,194 @@
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.get_incident_response_200 import GetIncidentResponse200
13
+ from typing import cast
14
+ from uuid import UUID
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ id: UUID,
20
+
21
+ ) -> dict[str, Any]:
22
+
23
+
24
+
25
+
26
+
27
+
28
+ _kwargs: dict[str, Any] = {
29
+ "method": "get",
30
+ "url": "/v1/incidents/{id}".format(id=quote(str(id), safe=""),),
31
+ }
32
+
33
+
34
+ return _kwargs
35
+
36
+
37
+
38
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Error | GetIncidentResponse200 | None:
39
+ if response.status_code == 200:
40
+ response_200 = GetIncidentResponse200.from_dict(response.json())
41
+
42
+
43
+
44
+ return response_200
45
+
46
+ if response.status_code == 401:
47
+ response_401 = Error.from_dict(response.json())
48
+
49
+
50
+
51
+ return response_401
52
+
53
+ if response.status_code == 404:
54
+ response_404 = Error.from_dict(response.json())
55
+
56
+
57
+
58
+ return response_404
59
+
60
+ if response.status_code == 429:
61
+ response_429 = Error.from_dict(response.json())
62
+
63
+
64
+
65
+ return response_429
66
+
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Error | GetIncidentResponse200]:
74
+ return Response(
75
+ status_code=HTTPStatus(response.status_code),
76
+ content=response.content,
77
+ headers=response.headers,
78
+ parsed=_parse_response(client=client, response=response),
79
+ )
80
+
81
+
82
+ def sync_detailed(
83
+ id: UUID,
84
+ *,
85
+ client: AuthenticatedClient,
86
+
87
+ ) -> Response[Error | GetIncidentResponse200]:
88
+ """ Get a single incident
89
+
90
+ Args:
91
+ id (UUID):
92
+
93
+ Raises:
94
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
95
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
96
+
97
+ Returns:
98
+ Response[Error | GetIncidentResponse200]
99
+ """
100
+
101
+
102
+ kwargs = _get_kwargs(
103
+ id=id,
104
+
105
+ )
106
+
107
+ response = client.get_httpx_client().request(
108
+ **kwargs,
109
+ )
110
+
111
+ return _build_response(client=client, response=response)
112
+
113
+ def sync(
114
+ id: UUID,
115
+ *,
116
+ client: AuthenticatedClient,
117
+
118
+ ) -> Error | GetIncidentResponse200 | None:
119
+ """ Get a single incident
120
+
121
+ Args:
122
+ id (UUID):
123
+
124
+ Raises:
125
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
126
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
127
+
128
+ Returns:
129
+ Error | GetIncidentResponse200
130
+ """
131
+
132
+
133
+ return sync_detailed(
134
+ id=id,
135
+ client=client,
136
+
137
+ ).parsed
138
+
139
+ async def asyncio_detailed(
140
+ id: UUID,
141
+ *,
142
+ client: AuthenticatedClient,
143
+
144
+ ) -> Response[Error | GetIncidentResponse200]:
145
+ """ Get a single incident
146
+
147
+ Args:
148
+ id (UUID):
149
+
150
+ Raises:
151
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
152
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
153
+
154
+ Returns:
155
+ Response[Error | GetIncidentResponse200]
156
+ """
157
+
158
+
159
+ kwargs = _get_kwargs(
160
+ id=id,
161
+
162
+ )
163
+
164
+ response = await client.get_async_httpx_client().request(
165
+ **kwargs
166
+ )
167
+
168
+ return _build_response(client=client, response=response)
169
+
170
+ async def asyncio(
171
+ id: UUID,
172
+ *,
173
+ client: AuthenticatedClient,
174
+
175
+ ) -> Error | GetIncidentResponse200 | None:
176
+ """ Get a single incident
177
+
178
+ Args:
179
+ id (UUID):
180
+
181
+ Raises:
182
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
183
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
184
+
185
+ Returns:
186
+ Error | GetIncidentResponse200
187
+ """
188
+
189
+
190
+ return (await asyncio_detailed(
191
+ id=id,
192
+ client=client,
193
+
194
+ )).parsed