aiinbx 0.7.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.

Potentially problematic release.


This version of aiinbx might be problematic. Click here for more details.

Files changed (64) hide show
  1. aiinbx/__init__.py +92 -0
  2. aiinbx/_base_client.py +1995 -0
  3. aiinbx/_client.py +422 -0
  4. aiinbx/_compat.py +219 -0
  5. aiinbx/_constants.py +14 -0
  6. aiinbx/_exceptions.py +108 -0
  7. aiinbx/_files.py +123 -0
  8. aiinbx/_models.py +835 -0
  9. aiinbx/_qs.py +150 -0
  10. aiinbx/_resource.py +43 -0
  11. aiinbx/_response.py +830 -0
  12. aiinbx/_streaming.py +331 -0
  13. aiinbx/_types.py +260 -0
  14. aiinbx/_utils/__init__.py +64 -0
  15. aiinbx/_utils/_compat.py +45 -0
  16. aiinbx/_utils/_datetime_parse.py +136 -0
  17. aiinbx/_utils/_logs.py +25 -0
  18. aiinbx/_utils/_proxy.py +65 -0
  19. aiinbx/_utils/_reflection.py +42 -0
  20. aiinbx/_utils/_resources_proxy.py +24 -0
  21. aiinbx/_utils/_streams.py +12 -0
  22. aiinbx/_utils/_sync.py +86 -0
  23. aiinbx/_utils/_transform.py +457 -0
  24. aiinbx/_utils/_typing.py +156 -0
  25. aiinbx/_utils/_utils.py +421 -0
  26. aiinbx/_version.py +4 -0
  27. aiinbx/lib/.keep +4 -0
  28. aiinbx/py.typed +0 -0
  29. aiinbx/resources/__init__.py +64 -0
  30. aiinbx/resources/domains.py +455 -0
  31. aiinbx/resources/emails.py +451 -0
  32. aiinbx/resources/meta.py +147 -0
  33. aiinbx/resources/threads.py +468 -0
  34. aiinbx/resources/webhooks.py +34 -0
  35. aiinbx/types/__init__.py +35 -0
  36. aiinbx/types/domain_create_params.py +11 -0
  37. aiinbx/types/domain_create_response.py +26 -0
  38. aiinbx/types/domain_delete_response.py +11 -0
  39. aiinbx/types/domain_list_response.py +50 -0
  40. aiinbx/types/domain_retrieve_response.py +46 -0
  41. aiinbx/types/domain_verify_response.py +149 -0
  42. aiinbx/types/email_reply_params.py +47 -0
  43. aiinbx/types/email_reply_response.py +15 -0
  44. aiinbx/types/email_retrieve_response.py +90 -0
  45. aiinbx/types/email_send_params.py +53 -0
  46. aiinbx/types/email_send_response.py +15 -0
  47. aiinbx/types/inbound_email_received_webhook_event.py +113 -0
  48. aiinbx/types/meta_webhooks_schema_response.py +298 -0
  49. aiinbx/types/outbound_email_bounced_webhook_event.py +44 -0
  50. aiinbx/types/outbound_email_clicked_webhook_event.py +36 -0
  51. aiinbx/types/outbound_email_complained_webhook_event.py +36 -0
  52. aiinbx/types/outbound_email_delivered_webhook_event.py +36 -0
  53. aiinbx/types/outbound_email_opened_webhook_event.py +32 -0
  54. aiinbx/types/outbound_email_rejected_webhook_event.py +30 -0
  55. aiinbx/types/thread_forward_params.py +43 -0
  56. aiinbx/types/thread_forward_response.py +15 -0
  57. aiinbx/types/thread_retrieve_response.py +100 -0
  58. aiinbx/types/thread_search_params.py +61 -0
  59. aiinbx/types/thread_search_response.py +43 -0
  60. aiinbx/types/unwrap_webhook_event.py +24 -0
  61. aiinbx-0.7.0.dist-info/METADATA +398 -0
  62. aiinbx-0.7.0.dist-info/RECORD +64 -0
  63. aiinbx-0.7.0.dist-info/WHEEL +4 -0
  64. aiinbx-0.7.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,455 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import httpx
6
+
7
+ from ..types import domain_create_params
8
+ from .._types import Body, Query, Headers, NotGiven, not_given
9
+ from .._utils import maybe_transform, async_maybe_transform
10
+ from .._compat import cached_property
11
+ from .._resource import SyncAPIResource, AsyncAPIResource
12
+ from .._response import (
13
+ to_raw_response_wrapper,
14
+ to_streamed_response_wrapper,
15
+ async_to_raw_response_wrapper,
16
+ async_to_streamed_response_wrapper,
17
+ )
18
+ from .._base_client import make_request_options
19
+ from ..types.domain_list_response import DomainListResponse
20
+ from ..types.domain_create_response import DomainCreateResponse
21
+ from ..types.domain_delete_response import DomainDeleteResponse
22
+ from ..types.domain_verify_response import DomainVerifyResponse
23
+ from ..types.domain_retrieve_response import DomainRetrieveResponse
24
+
25
+ __all__ = ["DomainsResource", "AsyncDomainsResource"]
26
+
27
+
28
+ class DomainsResource(SyncAPIResource):
29
+ @cached_property
30
+ def with_raw_response(self) -> DomainsResourceWithRawResponse:
31
+ """
32
+ This property can be used as a prefix for any HTTP method call to return
33
+ the raw response object instead of the parsed content.
34
+
35
+ For more information, see https://www.github.com/aiinbx/aiinbx-py#accessing-raw-response-data-eg-headers
36
+ """
37
+ return DomainsResourceWithRawResponse(self)
38
+
39
+ @cached_property
40
+ def with_streaming_response(self) -> DomainsResourceWithStreamingResponse:
41
+ """
42
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
43
+
44
+ For more information, see https://www.github.com/aiinbx/aiinbx-py#with_streaming_response
45
+ """
46
+ return DomainsResourceWithStreamingResponse(self)
47
+
48
+ def create(
49
+ self,
50
+ *,
51
+ domain: str,
52
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
53
+ # The extra values given here take precedence over values defined on the client or passed to this method.
54
+ extra_headers: Headers | None = None,
55
+ extra_query: Query | None = None,
56
+ extra_body: Body | None = None,
57
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
58
+ ) -> DomainCreateResponse:
59
+ """
60
+ Create a new domain for the organization and return required DNS records to
61
+ configure.
62
+
63
+ Args:
64
+ extra_headers: Send extra headers
65
+
66
+ extra_query: Add additional query parameters to the request
67
+
68
+ extra_body: Add additional JSON properties to the request
69
+
70
+ timeout: Override the client-level default timeout for this request, in seconds
71
+ """
72
+ return self._post(
73
+ "/domains",
74
+ body=maybe_transform({"domain": domain}, domain_create_params.DomainCreateParams),
75
+ options=make_request_options(
76
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
77
+ ),
78
+ cast_to=DomainCreateResponse,
79
+ )
80
+
81
+ def retrieve(
82
+ self,
83
+ domain_id: str,
84
+ *,
85
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
86
+ # The extra values given here take precedence over values defined on the client or passed to this method.
87
+ extra_headers: Headers | None = None,
88
+ extra_query: Query | None = None,
89
+ extra_body: Body | None = None,
90
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
91
+ ) -> DomainRetrieveResponse:
92
+ """
93
+ Retrieve a domain by its ID
94
+
95
+ Args:
96
+ extra_headers: Send extra headers
97
+
98
+ extra_query: Add additional query parameters to the request
99
+
100
+ extra_body: Add additional JSON properties to the request
101
+
102
+ timeout: Override the client-level default timeout for this request, in seconds
103
+ """
104
+ if not domain_id:
105
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
106
+ return self._get(
107
+ f"/domains/{domain_id}",
108
+ options=make_request_options(
109
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
110
+ ),
111
+ cast_to=DomainRetrieveResponse,
112
+ )
113
+
114
+ def list(
115
+ self,
116
+ *,
117
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
118
+ # The extra values given here take precedence over values defined on the client or passed to this method.
119
+ extra_headers: Headers | None = None,
120
+ extra_query: Query | None = None,
121
+ extra_body: Body | None = None,
122
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
123
+ ) -> DomainListResponse:
124
+ """List all domains belonging to the API key's organization"""
125
+ return self._get(
126
+ "/domains",
127
+ options=make_request_options(
128
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
129
+ ),
130
+ cast_to=DomainListResponse,
131
+ )
132
+
133
+ def delete(
134
+ self,
135
+ domain_id: str,
136
+ *,
137
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
138
+ # The extra values given here take precedence over values defined on the client or passed to this method.
139
+ extra_headers: Headers | None = None,
140
+ extra_query: Query | None = None,
141
+ extra_body: Body | None = None,
142
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
143
+ ) -> DomainDeleteResponse:
144
+ """
145
+ Delete a domain by ID from the organization
146
+
147
+ Args:
148
+ extra_headers: Send extra headers
149
+
150
+ extra_query: Add additional query parameters to the request
151
+
152
+ extra_body: Add additional JSON properties to the request
153
+
154
+ timeout: Override the client-level default timeout for this request, in seconds
155
+ """
156
+ if not domain_id:
157
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
158
+ return self._delete(
159
+ f"/domains/{domain_id}",
160
+ options=make_request_options(
161
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
162
+ ),
163
+ cast_to=DomainDeleteResponse,
164
+ )
165
+
166
+ def verify(
167
+ self,
168
+ domain_id: str,
169
+ *,
170
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
171
+ # The extra values given here take precedence over values defined on the client or passed to this method.
172
+ extra_headers: Headers | None = None,
173
+ extra_query: Query | None = None,
174
+ extra_body: Body | None = None,
175
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
176
+ ) -> DomainVerifyResponse:
177
+ """
178
+ Run verification checks for the domain and update its stored status and DNS
179
+ record verification flags.
180
+
181
+ Args:
182
+ extra_headers: Send extra headers
183
+
184
+ extra_query: Add additional query parameters to the request
185
+
186
+ extra_body: Add additional JSON properties to the request
187
+
188
+ timeout: Override the client-level default timeout for this request, in seconds
189
+ """
190
+ if not domain_id:
191
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
192
+ return self._post(
193
+ f"/domains/{domain_id}/verify",
194
+ options=make_request_options(
195
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
196
+ ),
197
+ cast_to=DomainVerifyResponse,
198
+ )
199
+
200
+
201
+ class AsyncDomainsResource(AsyncAPIResource):
202
+ @cached_property
203
+ def with_raw_response(self) -> AsyncDomainsResourceWithRawResponse:
204
+ """
205
+ This property can be used as a prefix for any HTTP method call to return
206
+ the raw response object instead of the parsed content.
207
+
208
+ For more information, see https://www.github.com/aiinbx/aiinbx-py#accessing-raw-response-data-eg-headers
209
+ """
210
+ return AsyncDomainsResourceWithRawResponse(self)
211
+
212
+ @cached_property
213
+ def with_streaming_response(self) -> AsyncDomainsResourceWithStreamingResponse:
214
+ """
215
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
216
+
217
+ For more information, see https://www.github.com/aiinbx/aiinbx-py#with_streaming_response
218
+ """
219
+ return AsyncDomainsResourceWithStreamingResponse(self)
220
+
221
+ async def create(
222
+ self,
223
+ *,
224
+ domain: str,
225
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
226
+ # The extra values given here take precedence over values defined on the client or passed to this method.
227
+ extra_headers: Headers | None = None,
228
+ extra_query: Query | None = None,
229
+ extra_body: Body | None = None,
230
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
231
+ ) -> DomainCreateResponse:
232
+ """
233
+ Create a new domain for the organization and return required DNS records to
234
+ configure.
235
+
236
+ Args:
237
+ extra_headers: Send extra headers
238
+
239
+ extra_query: Add additional query parameters to the request
240
+
241
+ extra_body: Add additional JSON properties to the request
242
+
243
+ timeout: Override the client-level default timeout for this request, in seconds
244
+ """
245
+ return await self._post(
246
+ "/domains",
247
+ body=await async_maybe_transform({"domain": domain}, domain_create_params.DomainCreateParams),
248
+ options=make_request_options(
249
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
250
+ ),
251
+ cast_to=DomainCreateResponse,
252
+ )
253
+
254
+ async def retrieve(
255
+ self,
256
+ domain_id: str,
257
+ *,
258
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
259
+ # The extra values given here take precedence over values defined on the client or passed to this method.
260
+ extra_headers: Headers | None = None,
261
+ extra_query: Query | None = None,
262
+ extra_body: Body | None = None,
263
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
264
+ ) -> DomainRetrieveResponse:
265
+ """
266
+ Retrieve a domain by its ID
267
+
268
+ Args:
269
+ extra_headers: Send extra headers
270
+
271
+ extra_query: Add additional query parameters to the request
272
+
273
+ extra_body: Add additional JSON properties to the request
274
+
275
+ timeout: Override the client-level default timeout for this request, in seconds
276
+ """
277
+ if not domain_id:
278
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
279
+ return await self._get(
280
+ f"/domains/{domain_id}",
281
+ options=make_request_options(
282
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
283
+ ),
284
+ cast_to=DomainRetrieveResponse,
285
+ )
286
+
287
+ async def list(
288
+ self,
289
+ *,
290
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
291
+ # The extra values given here take precedence over values defined on the client or passed to this method.
292
+ extra_headers: Headers | None = None,
293
+ extra_query: Query | None = None,
294
+ extra_body: Body | None = None,
295
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
296
+ ) -> DomainListResponse:
297
+ """List all domains belonging to the API key's organization"""
298
+ return await self._get(
299
+ "/domains",
300
+ options=make_request_options(
301
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
302
+ ),
303
+ cast_to=DomainListResponse,
304
+ )
305
+
306
+ async def delete(
307
+ self,
308
+ domain_id: str,
309
+ *,
310
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
311
+ # The extra values given here take precedence over values defined on the client or passed to this method.
312
+ extra_headers: Headers | None = None,
313
+ extra_query: Query | None = None,
314
+ extra_body: Body | None = None,
315
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
316
+ ) -> DomainDeleteResponse:
317
+ """
318
+ Delete a domain by ID from the organization
319
+
320
+ Args:
321
+ extra_headers: Send extra headers
322
+
323
+ extra_query: Add additional query parameters to the request
324
+
325
+ extra_body: Add additional JSON properties to the request
326
+
327
+ timeout: Override the client-level default timeout for this request, in seconds
328
+ """
329
+ if not domain_id:
330
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
331
+ return await self._delete(
332
+ f"/domains/{domain_id}",
333
+ options=make_request_options(
334
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
335
+ ),
336
+ cast_to=DomainDeleteResponse,
337
+ )
338
+
339
+ async def verify(
340
+ self,
341
+ domain_id: str,
342
+ *,
343
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
344
+ # The extra values given here take precedence over values defined on the client or passed to this method.
345
+ extra_headers: Headers | None = None,
346
+ extra_query: Query | None = None,
347
+ extra_body: Body | None = None,
348
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
349
+ ) -> DomainVerifyResponse:
350
+ """
351
+ Run verification checks for the domain and update its stored status and DNS
352
+ record verification flags.
353
+
354
+ Args:
355
+ extra_headers: Send extra headers
356
+
357
+ extra_query: Add additional query parameters to the request
358
+
359
+ extra_body: Add additional JSON properties to the request
360
+
361
+ timeout: Override the client-level default timeout for this request, in seconds
362
+ """
363
+ if not domain_id:
364
+ raise ValueError(f"Expected a non-empty value for `domain_id` but received {domain_id!r}")
365
+ return await self._post(
366
+ f"/domains/{domain_id}/verify",
367
+ options=make_request_options(
368
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
369
+ ),
370
+ cast_to=DomainVerifyResponse,
371
+ )
372
+
373
+
374
+ class DomainsResourceWithRawResponse:
375
+ def __init__(self, domains: DomainsResource) -> None:
376
+ self._domains = domains
377
+
378
+ self.create = to_raw_response_wrapper(
379
+ domains.create,
380
+ )
381
+ self.retrieve = to_raw_response_wrapper(
382
+ domains.retrieve,
383
+ )
384
+ self.list = to_raw_response_wrapper(
385
+ domains.list,
386
+ )
387
+ self.delete = to_raw_response_wrapper(
388
+ domains.delete,
389
+ )
390
+ self.verify = to_raw_response_wrapper(
391
+ domains.verify,
392
+ )
393
+
394
+
395
+ class AsyncDomainsResourceWithRawResponse:
396
+ def __init__(self, domains: AsyncDomainsResource) -> None:
397
+ self._domains = domains
398
+
399
+ self.create = async_to_raw_response_wrapper(
400
+ domains.create,
401
+ )
402
+ self.retrieve = async_to_raw_response_wrapper(
403
+ domains.retrieve,
404
+ )
405
+ self.list = async_to_raw_response_wrapper(
406
+ domains.list,
407
+ )
408
+ self.delete = async_to_raw_response_wrapper(
409
+ domains.delete,
410
+ )
411
+ self.verify = async_to_raw_response_wrapper(
412
+ domains.verify,
413
+ )
414
+
415
+
416
+ class DomainsResourceWithStreamingResponse:
417
+ def __init__(self, domains: DomainsResource) -> None:
418
+ self._domains = domains
419
+
420
+ self.create = to_streamed_response_wrapper(
421
+ domains.create,
422
+ )
423
+ self.retrieve = to_streamed_response_wrapper(
424
+ domains.retrieve,
425
+ )
426
+ self.list = to_streamed_response_wrapper(
427
+ domains.list,
428
+ )
429
+ self.delete = to_streamed_response_wrapper(
430
+ domains.delete,
431
+ )
432
+ self.verify = to_streamed_response_wrapper(
433
+ domains.verify,
434
+ )
435
+
436
+
437
+ class AsyncDomainsResourceWithStreamingResponse:
438
+ def __init__(self, domains: AsyncDomainsResource) -> None:
439
+ self._domains = domains
440
+
441
+ self.create = async_to_streamed_response_wrapper(
442
+ domains.create,
443
+ )
444
+ self.retrieve = async_to_streamed_response_wrapper(
445
+ domains.retrieve,
446
+ )
447
+ self.list = async_to_streamed_response_wrapper(
448
+ domains.list,
449
+ )
450
+ self.delete = async_to_streamed_response_wrapper(
451
+ domains.delete,
452
+ )
453
+ self.verify = async_to_streamed_response_wrapper(
454
+ domains.verify,
455
+ )