aiinbx 0.82.0__tar.gz → 0.138.0__tar.gz

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 (102) hide show
  1. aiinbx-0.138.0/.release-please-manifest.json +3 -0
  2. {aiinbx-0.82.0 → aiinbx-0.138.0}/CHANGELOG.md +461 -0
  3. {aiinbx-0.82.0 → aiinbx-0.138.0}/PKG-INFO +1 -1
  4. {aiinbx-0.82.0 → aiinbx-0.138.0}/pyproject.toml +2 -2
  5. {aiinbx-0.82.0 → aiinbx-0.138.0}/requirements-dev.lock +3 -1
  6. {aiinbx-0.82.0 → aiinbx-0.138.0}/requirements.lock +4 -4
  7. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_streaming.py +12 -10
  8. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_version.py +1 -1
  9. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/emails.py +16 -0
  10. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/threads.py +8 -0
  11. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/email_reply_params.py +4 -0
  12. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/email_send_params.py +4 -0
  13. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/thread_forward_params.py +4 -0
  14. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/test_emails.py +8 -0
  15. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/test_threads.py +4 -0
  16. aiinbx-0.82.0/.release-please-manifest.json +0 -3
  17. {aiinbx-0.82.0 → aiinbx-0.138.0}/.gitignore +0 -0
  18. {aiinbx-0.82.0 → aiinbx-0.138.0}/CONTRIBUTING.md +0 -0
  19. {aiinbx-0.82.0 → aiinbx-0.138.0}/LICENSE +0 -0
  20. {aiinbx-0.82.0 → aiinbx-0.138.0}/README.md +0 -0
  21. {aiinbx-0.82.0 → aiinbx-0.138.0}/SECURITY.md +0 -0
  22. {aiinbx-0.82.0 → aiinbx-0.138.0}/api.md +0 -0
  23. {aiinbx-0.82.0 → aiinbx-0.138.0}/bin/check-release-environment +0 -0
  24. {aiinbx-0.82.0 → aiinbx-0.138.0}/bin/publish-pypi +0 -0
  25. {aiinbx-0.82.0 → aiinbx-0.138.0}/examples/.keep +0 -0
  26. {aiinbx-0.82.0 → aiinbx-0.138.0}/noxfile.py +0 -0
  27. {aiinbx-0.82.0 → aiinbx-0.138.0}/release-please-config.json +0 -0
  28. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/ai_inbx/lib/.keep +0 -0
  29. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/__init__.py +0 -0
  30. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_base_client.py +0 -0
  31. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_client.py +0 -0
  32. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_compat.py +0 -0
  33. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_constants.py +0 -0
  34. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_exceptions.py +0 -0
  35. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_files.py +0 -0
  36. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_models.py +0 -0
  37. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_qs.py +0 -0
  38. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_resource.py +0 -0
  39. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_response.py +0 -0
  40. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_types.py +0 -0
  41. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/__init__.py +0 -0
  42. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_compat.py +0 -0
  43. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_datetime_parse.py +0 -0
  44. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_logs.py +0 -0
  45. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_proxy.py +0 -0
  46. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_reflection.py +0 -0
  47. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_resources_proxy.py +0 -0
  48. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_streams.py +0 -0
  49. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_sync.py +0 -0
  50. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_transform.py +0 -0
  51. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_typing.py +0 -0
  52. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/_utils/_utils.py +0 -0
  53. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/lib/.keep +0 -0
  54. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/py.typed +0 -0
  55. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/__init__.py +0 -0
  56. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/domains.py +0 -0
  57. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/meta.py +0 -0
  58. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/resources/webhooks.py +0 -0
  59. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/__init__.py +0 -0
  60. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_create_params.py +0 -0
  61. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_create_response.py +0 -0
  62. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_delete_response.py +0 -0
  63. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_list_response.py +0 -0
  64. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_retrieve_response.py +0 -0
  65. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/domain_verify_response.py +0 -0
  66. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/email_reply_response.py +0 -0
  67. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/email_retrieve_response.py +0 -0
  68. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/email_send_response.py +0 -0
  69. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/inbound_email_received_webhook_event.py +0 -0
  70. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/meta_webhooks_schema_response.py +0 -0
  71. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_bounced_webhook_event.py +0 -0
  72. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_clicked_webhook_event.py +0 -0
  73. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_complained_webhook_event.py +0 -0
  74. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_delivered_webhook_event.py +0 -0
  75. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_opened_webhook_event.py +0 -0
  76. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/outbound_email_rejected_webhook_event.py +0 -0
  77. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/thread_forward_response.py +0 -0
  78. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/thread_retrieve_response.py +0 -0
  79. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/thread_search_params.py +0 -0
  80. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/thread_search_response.py +0 -0
  81. {aiinbx-0.82.0 → aiinbx-0.138.0}/src/aiinbx/types/unwrap_webhook_event.py +0 -0
  82. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/__init__.py +0 -0
  83. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/__init__.py +0 -0
  84. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/test_domains.py +0 -0
  85. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/test_meta.py +0 -0
  86. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/api_resources/test_webhooks.py +0 -0
  87. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/conftest.py +0 -0
  88. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/sample_file.txt +0 -0
  89. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_client.py +0 -0
  90. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_deepcopy.py +0 -0
  91. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_extract_files.py +0 -0
  92. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_files.py +0 -0
  93. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_models.py +0 -0
  94. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_qs.py +0 -0
  95. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_required_args.py +0 -0
  96. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_response.py +0 -0
  97. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_streaming.py +0 -0
  98. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_transform.py +0 -0
  99. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_utils/test_datetime_parse.py +0 -0
  100. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_utils/test_proxy.py +0 -0
  101. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/test_utils/test_typing.py +0 -0
  102. {aiinbx-0.82.0 → aiinbx-0.138.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.138.0"
3
+ }
@@ -1,5 +1,466 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.138.0 (2025-11-28)
4
+
5
+ Full Changelog: [v0.137.0...v0.138.0](https://github.com/aiinbx/aiinbx-py/compare/v0.137.0...v0.138.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([09c3046](https://github.com/aiinbx/aiinbx-py/commit/09c304687aff9b0c077e2fc6d4adf82fb372f15c))
10
+
11
+ ## 0.137.0 (2025-11-28)
12
+
13
+ Full Changelog: [v0.136.1...v0.137.0](https://github.com/aiinbx/aiinbx-py/compare/v0.136.1...v0.137.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([9e3f137](https://github.com/aiinbx/aiinbx-py/commit/9e3f1371f8e85a0cc852ecf1f4fab5b90dc4fb86))
18
+
19
+
20
+ ### Chores
21
+
22
+ * **deps:** mypy 1.18.1 has a regression, pin to 1.17 ([58a443e](https://github.com/aiinbx/aiinbx-py/commit/58a443ebe51ac4353efdd467ca54711874274f90))
23
+
24
+ ## 0.136.1 (2025-11-28)
25
+
26
+ Full Changelog: [v0.136.0...v0.136.1](https://github.com/aiinbx/aiinbx-py/compare/v0.136.0...v0.136.1)
27
+
28
+ ### Bug Fixes
29
+
30
+ * ensure streams are always closed ([88c6253](https://github.com/aiinbx/aiinbx-py/commit/88c62534172f141a2e010f7f839d7f41c5d76421))
31
+
32
+ ## 0.136.0 (2025-11-28)
33
+
34
+ Full Changelog: [v0.135.0...v0.136.0](https://github.com/aiinbx/aiinbx-py/compare/v0.135.0...v0.136.0)
35
+
36
+ ### Features
37
+
38
+ * **api:** api update ([cc6c0e5](https://github.com/aiinbx/aiinbx-py/commit/cc6c0e5bf7fb1948cc25d5b005ad7ace696a3d6a))
39
+
40
+ ## 0.135.0 (2025-11-28)
41
+
42
+ Full Changelog: [v0.134.0...v0.135.0](https://github.com/aiinbx/aiinbx-py/compare/v0.134.0...v0.135.0)
43
+
44
+ ### Features
45
+
46
+ * **api:** api update ([c1c9d42](https://github.com/aiinbx/aiinbx-py/commit/c1c9d42e0a6cdc01f07887ad4421cda7b27d5b68))
47
+
48
+ ## 0.134.0 (2025-11-28)
49
+
50
+ Full Changelog: [v0.133.0...v0.134.0](https://github.com/aiinbx/aiinbx-py/compare/v0.133.0...v0.134.0)
51
+
52
+ ### Features
53
+
54
+ * **api:** api update ([cdcc0a1](https://github.com/aiinbx/aiinbx-py/commit/cdcc0a1d1fe270f881718204e53ca2bdbc46d2af))
55
+
56
+ ## 0.133.0 (2025-11-27)
57
+
58
+ Full Changelog: [v0.132.0...v0.133.0](https://github.com/aiinbx/aiinbx-py/compare/v0.132.0...v0.133.0)
59
+
60
+ ### Features
61
+
62
+ * **api:** api update ([8757ad9](https://github.com/aiinbx/aiinbx-py/commit/8757ad9c38aa02b44eb8f2e621d46284db003d41))
63
+
64
+ ## 0.132.0 (2025-11-27)
65
+
66
+ Full Changelog: [v0.131.0...v0.132.0](https://github.com/aiinbx/aiinbx-py/compare/v0.131.0...v0.132.0)
67
+
68
+ ### Features
69
+
70
+ * **api:** api update ([846674f](https://github.com/aiinbx/aiinbx-py/commit/846674f1b868319d45604f64646c4cf33e7167c0))
71
+
72
+ ## 0.131.0 (2025-11-27)
73
+
74
+ Full Changelog: [v0.130.0...v0.131.0](https://github.com/aiinbx/aiinbx-py/compare/v0.130.0...v0.131.0)
75
+
76
+ ### Features
77
+
78
+ * **api:** api update ([321051f](https://github.com/aiinbx/aiinbx-py/commit/321051f80554aef2b8b1eafc1e02ea3b816fba65))
79
+
80
+ ## 0.130.0 (2025-11-27)
81
+
82
+ Full Changelog: [v0.129.0...v0.130.0](https://github.com/aiinbx/aiinbx-py/compare/v0.129.0...v0.130.0)
83
+
84
+ ### Features
85
+
86
+ * **api:** api update ([43181c8](https://github.com/aiinbx/aiinbx-py/commit/43181c833258ac26b24e10408daa683d8e04b890))
87
+
88
+ ## 0.129.0 (2025-11-27)
89
+
90
+ Full Changelog: [v0.128.0...v0.129.0](https://github.com/aiinbx/aiinbx-py/compare/v0.128.0...v0.129.0)
91
+
92
+ ### Features
93
+
94
+ * **api:** api update ([8f6ecda](https://github.com/aiinbx/aiinbx-py/commit/8f6ecda13bf2429a19d2a55e54e69b5bea0900d1))
95
+
96
+ ## 0.128.0 (2025-11-27)
97
+
98
+ Full Changelog: [v0.127.0...v0.128.0](https://github.com/aiinbx/aiinbx-py/compare/v0.127.0...v0.128.0)
99
+
100
+ ### Features
101
+
102
+ * **api:** api update ([a20b075](https://github.com/aiinbx/aiinbx-py/commit/a20b07507df2445d16ddfc51444e74b21f8d7de6))
103
+
104
+ ## 0.127.0 (2025-11-27)
105
+
106
+ Full Changelog: [v0.126.0...v0.127.0](https://github.com/aiinbx/aiinbx-py/compare/v0.126.0...v0.127.0)
107
+
108
+ ### Features
109
+
110
+ * **api:** api update ([0b84926](https://github.com/aiinbx/aiinbx-py/commit/0b84926b5cf96395625bdc63000f46b9e8a8350e))
111
+
112
+ ## 0.126.0 (2025-11-27)
113
+
114
+ Full Changelog: [v0.125.0...v0.126.0](https://github.com/aiinbx/aiinbx-py/compare/v0.125.0...v0.126.0)
115
+
116
+ ### Features
117
+
118
+ * **api:** api update ([81a5def](https://github.com/aiinbx/aiinbx-py/commit/81a5def407f2c6754f03f7bf0ec0a5f63b10beb9))
119
+
120
+ ## 0.125.0 (2025-11-27)
121
+
122
+ Full Changelog: [v0.124.0...v0.125.0](https://github.com/aiinbx/aiinbx-py/compare/v0.124.0...v0.125.0)
123
+
124
+ ### Features
125
+
126
+ * **api:** api update ([193fff3](https://github.com/aiinbx/aiinbx-py/commit/193fff355124c4506dc2b183406b20da726eabbd))
127
+
128
+ ## 0.124.0 (2025-11-27)
129
+
130
+ Full Changelog: [v0.123.0...v0.124.0](https://github.com/aiinbx/aiinbx-py/compare/v0.123.0...v0.124.0)
131
+
132
+ ### Features
133
+
134
+ * **api:** api update ([e7736f1](https://github.com/aiinbx/aiinbx-py/commit/e7736f160122248339a3d5dd8ff391923bbb5a19))
135
+
136
+ ## 0.123.0 (2025-11-27)
137
+
138
+ Full Changelog: [v0.122.0...v0.123.0](https://github.com/aiinbx/aiinbx-py/compare/v0.122.0...v0.123.0)
139
+
140
+ ### Features
141
+
142
+ * **api:** api update ([1fccae6](https://github.com/aiinbx/aiinbx-py/commit/1fccae6162f505a74e0a3e5c02418a8ef95cd236))
143
+
144
+ ## 0.122.0 (2025-11-26)
145
+
146
+ Full Changelog: [v0.121.0...v0.122.0](https://github.com/aiinbx/aiinbx-py/compare/v0.121.0...v0.122.0)
147
+
148
+ ### Features
149
+
150
+ * **api:** api update ([30d6f68](https://github.com/aiinbx/aiinbx-py/commit/30d6f68cb3eb6b28ee4c3e5e0f0e34e6835c2259))
151
+
152
+ ## 0.121.0 (2025-11-26)
153
+
154
+ Full Changelog: [v0.120.0...v0.121.0](https://github.com/aiinbx/aiinbx-py/compare/v0.120.0...v0.121.0)
155
+
156
+ ### Features
157
+
158
+ * **api:** api update ([e004638](https://github.com/aiinbx/aiinbx-py/commit/e004638a8e6a91fe7c65bcd2259533902cceb515))
159
+
160
+ ## 0.120.0 (2025-11-26)
161
+
162
+ Full Changelog: [v0.119.0...v0.120.0](https://github.com/aiinbx/aiinbx-py/compare/v0.119.0...v0.120.0)
163
+
164
+ ### Features
165
+
166
+ * **api:** api update ([3d1c487](https://github.com/aiinbx/aiinbx-py/commit/3d1c4875fb7ec53eedf38c4d1815a4f49567a641))
167
+
168
+ ## 0.119.0 (2025-11-26)
169
+
170
+ Full Changelog: [v0.118.0...v0.119.0](https://github.com/aiinbx/aiinbx-py/compare/v0.118.0...v0.119.0)
171
+
172
+ ### Features
173
+
174
+ * **api:** api update ([5be4d48](https://github.com/aiinbx/aiinbx-py/commit/5be4d48d60bddd84137cbbad403e679eef6eade1))
175
+
176
+ ## 0.118.0 (2025-11-26)
177
+
178
+ Full Changelog: [v0.117.0...v0.118.0](https://github.com/aiinbx/aiinbx-py/compare/v0.117.0...v0.118.0)
179
+
180
+ ### Features
181
+
182
+ * **api:** api update ([6d769dd](https://github.com/aiinbx/aiinbx-py/commit/6d769dd6056b216be9a4e405f1c38fbb7fc3bd98))
183
+
184
+ ## 0.117.0 (2025-11-26)
185
+
186
+ Full Changelog: [v0.116.0...v0.117.0](https://github.com/aiinbx/aiinbx-py/compare/v0.116.0...v0.117.0)
187
+
188
+ ### Features
189
+
190
+ * **api:** api update ([4f55a97](https://github.com/aiinbx/aiinbx-py/commit/4f55a97efc6a614715039c6adbd64e6a5ef42aa8))
191
+
192
+ ## 0.116.0 (2025-11-26)
193
+
194
+ Full Changelog: [v0.115.0...v0.116.0](https://github.com/aiinbx/aiinbx-py/compare/v0.115.0...v0.116.0)
195
+
196
+ ### Features
197
+
198
+ * **api:** api update ([d810f79](https://github.com/aiinbx/aiinbx-py/commit/d810f79a9c7039c1976c9ef80e160626970f3078))
199
+
200
+ ## 0.115.0 (2025-11-26)
201
+
202
+ Full Changelog: [v0.114.0...v0.115.0](https://github.com/aiinbx/aiinbx-py/compare/v0.114.0...v0.115.0)
203
+
204
+ ### Features
205
+
206
+ * **api:** api update ([b0b5411](https://github.com/aiinbx/aiinbx-py/commit/b0b541149a6e29cd98395f9654fe5a57593ab09a))
207
+
208
+ ## 0.114.0 (2025-11-26)
209
+
210
+ Full Changelog: [v0.113.0...v0.114.0](https://github.com/aiinbx/aiinbx-py/compare/v0.113.0...v0.114.0)
211
+
212
+ ### Features
213
+
214
+ * **api:** api update ([bcc7e3c](https://github.com/aiinbx/aiinbx-py/commit/bcc7e3ca3d442fad1c0354983356ceb2ef83d05a))
215
+
216
+ ## 0.113.0 (2025-11-26)
217
+
218
+ Full Changelog: [v0.112.0...v0.113.0](https://github.com/aiinbx/aiinbx-py/compare/v0.112.0...v0.113.0)
219
+
220
+ ### Features
221
+
222
+ * **api:** api update ([f1cfc4c](https://github.com/aiinbx/aiinbx-py/commit/f1cfc4c131a165581b58bccf346353d0ee7aa73f))
223
+
224
+ ## 0.112.0 (2025-11-26)
225
+
226
+ Full Changelog: [v0.111.0...v0.112.0](https://github.com/aiinbx/aiinbx-py/compare/v0.111.0...v0.112.0)
227
+
228
+ ### Features
229
+
230
+ * **api:** api update ([0217e4f](https://github.com/aiinbx/aiinbx-py/commit/0217e4f6a37ff0f72b24f647e46e2126ca079e6b))
231
+
232
+ ## 0.111.0 (2025-11-26)
233
+
234
+ Full Changelog: [v0.110.0...v0.111.0](https://github.com/aiinbx/aiinbx-py/compare/v0.110.0...v0.111.0)
235
+
236
+ ### Features
237
+
238
+ * **api:** api update ([47d695c](https://github.com/aiinbx/aiinbx-py/commit/47d695c2780c119f0a3e754461d09edc9218c488))
239
+
240
+ ## 0.110.0 (2025-11-25)
241
+
242
+ Full Changelog: [v0.109.0...v0.110.0](https://github.com/aiinbx/aiinbx-py/compare/v0.109.0...v0.110.0)
243
+
244
+ ### Features
245
+
246
+ * **api:** api update ([904d6fc](https://github.com/aiinbx/aiinbx-py/commit/904d6fca59a6de80f9db2832ac1e92e326fc32c9))
247
+
248
+ ## 0.109.0 (2025-11-25)
249
+
250
+ Full Changelog: [v0.108.0...v0.109.0](https://github.com/aiinbx/aiinbx-py/compare/v0.108.0...v0.109.0)
251
+
252
+ ### Features
253
+
254
+ * **api:** api update ([9dfa658](https://github.com/aiinbx/aiinbx-py/commit/9dfa658c022e27a0862f3bce8d4e3b524d2497d9))
255
+
256
+ ## 0.108.0 (2025-11-25)
257
+
258
+ Full Changelog: [v0.107.0...v0.108.0](https://github.com/aiinbx/aiinbx-py/compare/v0.107.0...v0.108.0)
259
+
260
+ ### Features
261
+
262
+ * **api:** api update ([d3fd7c9](https://github.com/aiinbx/aiinbx-py/commit/d3fd7c9d952f18802eae02b6766181e5e5e42fe2))
263
+
264
+ ## 0.107.0 (2025-11-25)
265
+
266
+ Full Changelog: [v0.106.0...v0.107.0](https://github.com/aiinbx/aiinbx-py/compare/v0.106.0...v0.107.0)
267
+
268
+ ### Features
269
+
270
+ * **api:** api update ([9c59858](https://github.com/aiinbx/aiinbx-py/commit/9c59858f8e0d43584637920f9c6fd8e84b71199a))
271
+
272
+ ## 0.106.0 (2025-11-25)
273
+
274
+ Full Changelog: [v0.105.0...v0.106.0](https://github.com/aiinbx/aiinbx-py/compare/v0.105.0...v0.106.0)
275
+
276
+ ### Features
277
+
278
+ * **api:** api update ([8e56bc0](https://github.com/aiinbx/aiinbx-py/commit/8e56bc0e74dd0bb896c2ce09e65fc688511a39f2))
279
+
280
+ ## 0.105.0 (2025-11-25)
281
+
282
+ Full Changelog: [v0.104.0...v0.105.0](https://github.com/aiinbx/aiinbx-py/compare/v0.104.0...v0.105.0)
283
+
284
+ ### Features
285
+
286
+ * **api:** api update ([bd1404c](https://github.com/aiinbx/aiinbx-py/commit/bd1404c07eff87288b3f656c1b2dbd22b7a0b8df))
287
+
288
+ ## 0.104.0 (2025-11-25)
289
+
290
+ Full Changelog: [v0.103.0...v0.104.0](https://github.com/aiinbx/aiinbx-py/compare/v0.103.0...v0.104.0)
291
+
292
+ ### Features
293
+
294
+ * **api:** api update ([32c9c5c](https://github.com/aiinbx/aiinbx-py/commit/32c9c5cef6d392062ac1ecc0f048cce94397895f))
295
+
296
+ ## 0.103.0 (2025-11-25)
297
+
298
+ Full Changelog: [v0.102.0...v0.103.0](https://github.com/aiinbx/aiinbx-py/compare/v0.102.0...v0.103.0)
299
+
300
+ ### Features
301
+
302
+ * **api:** api update ([75297ac](https://github.com/aiinbx/aiinbx-py/commit/75297ace0f7ac44bec8e177b77692f4a40baf589))
303
+
304
+ ## 0.102.0 (2025-11-25)
305
+
306
+ Full Changelog: [v0.101.0...v0.102.0](https://github.com/aiinbx/aiinbx-py/compare/v0.101.0...v0.102.0)
307
+
308
+ ### Features
309
+
310
+ * **api:** api update ([628467e](https://github.com/aiinbx/aiinbx-py/commit/628467e4ff7ec410357dec20a7b82082d5c1804c))
311
+
312
+ ## 0.101.0 (2025-11-25)
313
+
314
+ Full Changelog: [v0.100.0...v0.101.0](https://github.com/aiinbx/aiinbx-py/compare/v0.100.0...v0.101.0)
315
+
316
+ ### Features
317
+
318
+ * **api:** api update ([a446d3e](https://github.com/aiinbx/aiinbx-py/commit/a446d3ea2acab4df5748e8bd67971d4d7b42045c))
319
+
320
+ ## 0.100.0 (2025-11-25)
321
+
322
+ Full Changelog: [v0.99.0...v0.100.0](https://github.com/aiinbx/aiinbx-py/compare/v0.99.0...v0.100.0)
323
+
324
+ ### Features
325
+
326
+ * **api:** api update ([c6bf192](https://github.com/aiinbx/aiinbx-py/commit/c6bf19267425b36e5b03333be4183ae93b626d34))
327
+
328
+ ## 0.99.0 (2025-11-25)
329
+
330
+ Full Changelog: [v0.98.0...v0.99.0](https://github.com/aiinbx/aiinbx-py/compare/v0.98.0...v0.99.0)
331
+
332
+ ### Features
333
+
334
+ * **api:** api update ([8e1a0d7](https://github.com/aiinbx/aiinbx-py/commit/8e1a0d7e991761b039049d7c115f5ac9e0e574dc))
335
+
336
+ ## 0.98.0 (2025-11-25)
337
+
338
+ Full Changelog: [v0.97.0...v0.98.0](https://github.com/aiinbx/aiinbx-py/compare/v0.97.0...v0.98.0)
339
+
340
+ ### Features
341
+
342
+ * **api:** api update ([bead2f2](https://github.com/aiinbx/aiinbx-py/commit/bead2f2f878227f6df01064c48d4e9f6881c8cb2))
343
+
344
+ ## 0.97.0 (2025-11-24)
345
+
346
+ Full Changelog: [v0.96.0...v0.97.0](https://github.com/aiinbx/aiinbx-py/compare/v0.96.0...v0.97.0)
347
+
348
+ ### Features
349
+
350
+ * **api:** api update ([57d31b8](https://github.com/aiinbx/aiinbx-py/commit/57d31b82d58e5664b867376a055be7e8f81c94c3))
351
+
352
+ ## 0.96.0 (2025-11-24)
353
+
354
+ Full Changelog: [v0.95.0...v0.96.0](https://github.com/aiinbx/aiinbx-py/compare/v0.95.0...v0.96.0)
355
+
356
+ ### Features
357
+
358
+ * **api:** api update ([e127d5f](https://github.com/aiinbx/aiinbx-py/commit/e127d5f9b1f2cd89e539540dc3f3a37bc5ea6fe5))
359
+
360
+ ## 0.95.0 (2025-11-24)
361
+
362
+ Full Changelog: [v0.94.0...v0.95.0](https://github.com/aiinbx/aiinbx-py/compare/v0.94.0...v0.95.0)
363
+
364
+ ### Features
365
+
366
+ * **api:** api update ([9a2361e](https://github.com/aiinbx/aiinbx-py/commit/9a2361ed0342c66ff96a3d3f43b0dae54e51ad61))
367
+
368
+ ## 0.94.0 (2025-11-24)
369
+
370
+ Full Changelog: [v0.93.0...v0.94.0](https://github.com/aiinbx/aiinbx-py/compare/v0.93.0...v0.94.0)
371
+
372
+ ### Features
373
+
374
+ * **api:** api update ([65d321c](https://github.com/aiinbx/aiinbx-py/commit/65d321ca0e96d03c657b459cd93c2198b0752a81))
375
+
376
+ ## 0.93.0 (2025-11-24)
377
+
378
+ Full Changelog: [v0.92.0...v0.93.0](https://github.com/aiinbx/aiinbx-py/compare/v0.92.0...v0.93.0)
379
+
380
+ ### Features
381
+
382
+ * **api:** api update ([285dc04](https://github.com/aiinbx/aiinbx-py/commit/285dc0421ae30c79ddfa4f79b66b58e23a3c3f53))
383
+
384
+ ## 0.92.0 (2025-11-24)
385
+
386
+ Full Changelog: [v0.91.0...v0.92.0](https://github.com/aiinbx/aiinbx-py/compare/v0.91.0...v0.92.0)
387
+
388
+ ### Features
389
+
390
+ * **api:** api update ([8a01ec4](https://github.com/aiinbx/aiinbx-py/commit/8a01ec46537fa5d1b22eece2f933df8651b060a6))
391
+
392
+ ## 0.91.0 (2025-11-24)
393
+
394
+ Full Changelog: [v0.90.0...v0.91.0](https://github.com/aiinbx/aiinbx-py/compare/v0.90.0...v0.91.0)
395
+
396
+ ### Features
397
+
398
+ * **api:** api update ([4e16918](https://github.com/aiinbx/aiinbx-py/commit/4e1691835040f44cd0a9aec32038c5a5f983648a))
399
+
400
+ ## 0.90.0 (2025-11-24)
401
+
402
+ Full Changelog: [v0.89.0...v0.90.0](https://github.com/aiinbx/aiinbx-py/compare/v0.89.0...v0.90.0)
403
+
404
+ ### Features
405
+
406
+ * **api:** api update ([9d6c65c](https://github.com/aiinbx/aiinbx-py/commit/9d6c65c5e0c0d28ecd2207dd3588b9f87905cef4))
407
+
408
+ ## 0.89.0 (2025-11-23)
409
+
410
+ Full Changelog: [v0.88.0...v0.89.0](https://github.com/aiinbx/aiinbx-py/compare/v0.88.0...v0.89.0)
411
+
412
+ ### Features
413
+
414
+ * **api:** api update ([0f2a29c](https://github.com/aiinbx/aiinbx-py/commit/0f2a29c468ef2523c24c6248919e0b064f1481cf))
415
+
416
+ ## 0.88.0 (2025-11-23)
417
+
418
+ Full Changelog: [v0.87.0...v0.88.0](https://github.com/aiinbx/aiinbx-py/compare/v0.87.0...v0.88.0)
419
+
420
+ ### Features
421
+
422
+ * **api:** api update ([7563af9](https://github.com/aiinbx/aiinbx-py/commit/7563af9cc1ca5f3a20cb1c8d6a4cc8930c4fcc58))
423
+
424
+ ## 0.87.0 (2025-11-23)
425
+
426
+ Full Changelog: [v0.86.0...v0.87.0](https://github.com/aiinbx/aiinbx-py/compare/v0.86.0...v0.87.0)
427
+
428
+ ### Features
429
+
430
+ * **api:** api update ([db583db](https://github.com/aiinbx/aiinbx-py/commit/db583db372d4c4089dfd2e4c8987edb5f2c15626))
431
+
432
+ ## 0.86.0 (2025-11-23)
433
+
434
+ Full Changelog: [v0.85.0...v0.86.0](https://github.com/aiinbx/aiinbx-py/compare/v0.85.0...v0.86.0)
435
+
436
+ ### Features
437
+
438
+ * **api:** api update ([78971fb](https://github.com/aiinbx/aiinbx-py/commit/78971fbff92489b6ff981a84d44ac1a89341242c))
439
+
440
+ ## 0.85.0 (2025-11-23)
441
+
442
+ Full Changelog: [v0.84.0...v0.85.0](https://github.com/aiinbx/aiinbx-py/compare/v0.84.0...v0.85.0)
443
+
444
+ ### Features
445
+
446
+ * **api:** api update ([c449694](https://github.com/aiinbx/aiinbx-py/commit/c449694fba8d6b3ee2363cd162bb84b2323ddbb1))
447
+
448
+ ## 0.84.0 (2025-11-23)
449
+
450
+ Full Changelog: [v0.83.0...v0.84.0](https://github.com/aiinbx/aiinbx-py/compare/v0.83.0...v0.84.0)
451
+
452
+ ### Features
453
+
454
+ * **api:** api update ([5e04bd8](https://github.com/aiinbx/aiinbx-py/commit/5e04bd8ef846531ea62b1a04b429a1cba86fc52d))
455
+
456
+ ## 0.83.0 (2025-11-23)
457
+
458
+ Full Changelog: [v0.82.0...v0.83.0](https://github.com/aiinbx/aiinbx-py/compare/v0.82.0...v0.83.0)
459
+
460
+ ### Features
461
+
462
+ * **api:** api update ([17120cb](https://github.com/aiinbx/aiinbx-py/commit/17120cb060710e880444ab8659c02848fe763f13))
463
+
3
464
  ## 0.82.0 (2025-11-23)
4
465
 
5
466
  Full Changelog: [v0.81.0...v0.82.0](https://github.com/aiinbx/aiinbx-py/compare/v0.81.0...v0.82.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aiinbx
3
- Version: 0.82.0
3
+ Version: 0.138.0
4
4
  Summary: The official Python library for the AIInbx API
5
5
  Project-URL: Homepage, https://github.com/aiinbx/aiinbx-py
6
6
  Project-URL: Repository, https://github.com/aiinbx/aiinbx-py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aiinbx"
3
- version = "0.82.0"
3
+ version = "0.138.0"
4
4
  description = "The official Python library for the AIInbx API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -46,7 +46,7 @@ managed = true
46
46
  # version pins are in requirements-dev.lock
47
47
  dev-dependencies = [
48
48
  "pyright==1.1.399",
49
- "mypy",
49
+ "mypy==1.17",
50
50
  "respx",
51
51
  "pytest",
52
52
  "pytest-asyncio",
@@ -72,7 +72,7 @@ mdurl==0.1.2
72
72
  multidict==6.4.4
73
73
  # via aiohttp
74
74
  # via yarl
75
- mypy==1.14.1
75
+ mypy==1.17.0
76
76
  mypy-extensions==1.0.0
77
77
  # via mypy
78
78
  nodeenv==1.8.0
@@ -81,6 +81,8 @@ nox==2023.4.22
81
81
  packaging==23.2
82
82
  # via nox
83
83
  # via pytest
84
+ pathspec==0.12.1
85
+ # via mypy
84
86
  platformdirs==3.11.0
85
87
  # via virtualenv
86
88
  pluggy==1.5.0
@@ -55,21 +55,21 @@ multidict==6.4.4
55
55
  propcache==0.3.1
56
56
  # via aiohttp
57
57
  # via yarl
58
- pydantic==2.11.9
58
+ pydantic==2.12.5
59
59
  # via aiinbx
60
- pydantic-core==2.33.2
60
+ pydantic-core==2.41.5
61
61
  # via pydantic
62
62
  sniffio==1.3.0
63
63
  # via aiinbx
64
64
  # via anyio
65
- typing-extensions==4.12.2
65
+ typing-extensions==4.15.0
66
66
  # via aiinbx
67
67
  # via anyio
68
68
  # via multidict
69
69
  # via pydantic
70
70
  # via pydantic-core
71
71
  # via typing-inspection
72
- typing-inspection==0.4.1
72
+ typing-inspection==0.4.2
73
73
  # via pydantic
74
74
  yarl==1.20.0
75
75
  # via aiohttp
@@ -54,11 +54,12 @@ class Stream(Generic[_T]):
54
54
  process_data = self._client._process_response_data
55
55
  iterator = self._iter_events()
56
56
 
57
- for sse in iterator:
58
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
59
-
60
- # As we might not fully consume the response stream, we need to close it explicitly
61
- response.close()
57
+ try:
58
+ for sse in iterator:
59
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
60
+ finally:
61
+ # Ensure the response is closed even if the consumer doesn't read all data
62
+ response.close()
62
63
 
63
64
  def __enter__(self) -> Self:
64
65
  return self
@@ -117,11 +118,12 @@ class AsyncStream(Generic[_T]):
117
118
  process_data = self._client._process_response_data
118
119
  iterator = self._iter_events()
119
120
 
120
- async for sse in iterator:
121
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
122
-
123
- # As we might not fully consume the response stream, we need to close it explicitly
124
- await response.aclose()
121
+ try:
122
+ async for sse in iterator:
123
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
124
+ finally:
125
+ # Ensure the response is closed even if the consumer doesn't read all data
126
+ await response.aclose()
125
127
 
126
128
  async def __aenter__(self) -> Self:
127
129
  return self
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "aiinbx"
4
- __version__ = "0.82.0" # x-release-please-version
4
+ __version__ = "0.138.0" # x-release-please-version
@@ -95,6 +95,8 @@ class EmailsResource(SyncAPIResource):
95
95
  subject: str | Omit = omit,
96
96
  text: str | Omit = omit,
97
97
  to: Union[str, SequenceNotStr[str]] | Omit = omit,
98
+ track_clicks: bool | Omit = omit,
99
+ track_opens: bool | Omit = omit,
98
100
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
99
101
  # The extra values given here take precedence over values defined on the client or passed to this method.
100
102
  extra_headers: Headers | None = None,
@@ -134,6 +136,8 @@ class EmailsResource(SyncAPIResource):
134
136
  "subject": subject,
135
137
  "text": text,
136
138
  "to": to,
139
+ "track_clicks": track_clicks,
140
+ "track_opens": track_opens,
137
141
  },
138
142
  email_reply_params.EmailReplyParams,
139
143
  ),
@@ -160,6 +164,8 @@ class EmailsResource(SyncAPIResource):
160
164
  reply_to: Union[str, SequenceNotStr[str]] | Omit = omit,
161
165
  text: str | Omit = omit,
162
166
  thread_id: str | Omit = omit,
167
+ track_clicks: bool | Omit = omit,
168
+ track_opens: bool | Omit = omit,
163
169
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
164
170
  # The extra values given here take precedence over values defined on the client or passed to this method.
165
171
  extra_headers: Headers | None = None,
@@ -200,6 +206,8 @@ class EmailsResource(SyncAPIResource):
200
206
  "reply_to": reply_to,
201
207
  "text": text,
202
208
  "thread_id": thread_id,
209
+ "track_clicks": track_clicks,
210
+ "track_opens": track_opens,
203
211
  },
204
212
  email_send_params.EmailSendParams,
205
213
  ),
@@ -280,6 +288,8 @@ class AsyncEmailsResource(AsyncAPIResource):
280
288
  subject: str | Omit = omit,
281
289
  text: str | Omit = omit,
282
290
  to: Union[str, SequenceNotStr[str]] | Omit = omit,
291
+ track_clicks: bool | Omit = omit,
292
+ track_opens: bool | Omit = omit,
283
293
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
284
294
  # The extra values given here take precedence over values defined on the client or passed to this method.
285
295
  extra_headers: Headers | None = None,
@@ -319,6 +329,8 @@ class AsyncEmailsResource(AsyncAPIResource):
319
329
  "subject": subject,
320
330
  "text": text,
321
331
  "to": to,
332
+ "track_clicks": track_clicks,
333
+ "track_opens": track_opens,
322
334
  },
323
335
  email_reply_params.EmailReplyParams,
324
336
  ),
@@ -345,6 +357,8 @@ class AsyncEmailsResource(AsyncAPIResource):
345
357
  reply_to: Union[str, SequenceNotStr[str]] | Omit = omit,
346
358
  text: str | Omit = omit,
347
359
  thread_id: str | Omit = omit,
360
+ track_clicks: bool | Omit = omit,
361
+ track_opens: bool | Omit = omit,
348
362
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
349
363
  # The extra values given here take precedence over values defined on the client or passed to this method.
350
364
  extra_headers: Headers | None = None,
@@ -385,6 +399,8 @@ class AsyncEmailsResource(AsyncAPIResource):
385
399
  "reply_to": reply_to,
386
400
  "text": text,
387
401
  "thread_id": thread_id,
402
+ "track_clicks": track_clicks,
403
+ "track_opens": track_opens,
388
404
  },
389
405
  email_send_params.EmailSendParams,
390
406
  ),
@@ -95,6 +95,8 @@ class ThreadsResource(SyncAPIResource):
95
95
  include_attachments: bool | Omit = omit,
96
96
  is_draft: bool | Omit = omit,
97
97
  note: str | Omit = omit,
98
+ track_clicks: bool | Omit = omit,
99
+ track_opens: bool | Omit = omit,
98
100
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
99
101
  # The extra values given here take precedence over values defined on the client or passed to this method.
100
102
  extra_headers: Headers | None = None,
@@ -129,6 +131,8 @@ class ThreadsResource(SyncAPIResource):
129
131
  "include_attachments": include_attachments,
130
132
  "is_draft": is_draft,
131
133
  "note": note,
134
+ "track_clicks": track_clicks,
135
+ "track_opens": track_opens,
132
136
  },
133
137
  thread_forward_params.ThreadForwardParams,
134
138
  ),
@@ -288,6 +292,8 @@ class AsyncThreadsResource(AsyncAPIResource):
288
292
  include_attachments: bool | Omit = omit,
289
293
  is_draft: bool | Omit = omit,
290
294
  note: str | Omit = omit,
295
+ track_clicks: bool | Omit = omit,
296
+ track_opens: bool | Omit = omit,
291
297
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
292
298
  # The extra values given here take precedence over values defined on the client or passed to this method.
293
299
  extra_headers: Headers | None = None,
@@ -322,6 +328,8 @@ class AsyncThreadsResource(AsyncAPIResource):
322
328
  "include_attachments": include_attachments,
323
329
  "is_draft": is_draft,
324
330
  "note": note,
331
+ "track_clicks": track_clicks,
332
+ "track_opens": track_opens,
325
333
  },
326
334
  thread_forward_params.ThreadForwardParams,
327
335
  ),
@@ -34,6 +34,10 @@ class EmailReplyParams(TypedDict, total=False):
34
34
 
35
35
  to: Union[str, SequenceNotStr[str]]
36
36
 
37
+ track_clicks: bool
38
+
39
+ track_opens: bool
40
+
37
41
 
38
42
  class Attachment(TypedDict, total=False):
39
43
  content: Required[str]
@@ -40,6 +40,10 @@ class EmailSendParams(TypedDict, total=False):
40
40
 
41
41
  thread_id: Annotated[str, PropertyInfo(alias="threadId")]
42
42
 
43
+ track_clicks: bool
44
+
45
+ track_opens: bool
46
+
43
47
 
44
48
  class Attachment(TypedDict, total=False):
45
49
  content: Required[str]
@@ -30,6 +30,10 @@ class ThreadForwardParams(TypedDict, total=False):
30
30
 
31
31
  note: str
32
32
 
33
+ track_clicks: bool
34
+
35
+ track_opens: bool
36
+
33
37
 
34
38
  class Attachment(TypedDict, total=False):
35
39
  content: Required[str]
@@ -97,6 +97,8 @@ class TestEmails:
97
97
  subject="subject",
98
98
  text="text",
99
99
  to="dev@stainless.com",
100
+ track_clicks=True,
101
+ track_opens=True,
100
102
  )
101
103
  assert_matches_type(EmailReplyResponse, email, path=["response"])
102
104
 
@@ -177,6 +179,8 @@ class TestEmails:
177
179
  reply_to="dev@stainless.com",
178
180
  text="text",
179
181
  thread_id="threadId",
182
+ track_clicks=True,
183
+ track_opens=True,
180
184
  )
181
185
  assert_matches_type(EmailSendResponse, email, path=["response"])
182
186
 
@@ -294,6 +298,8 @@ class TestAsyncEmails:
294
298
  subject="subject",
295
299
  text="text",
296
300
  to="dev@stainless.com",
301
+ track_clicks=True,
302
+ track_opens=True,
297
303
  )
298
304
  assert_matches_type(EmailReplyResponse, email, path=["response"])
299
305
 
@@ -374,6 +380,8 @@ class TestAsyncEmails:
374
380
  reply_to="dev@stainless.com",
375
381
  text="text",
376
382
  thread_id="threadId",
383
+ track_clicks=True,
384
+ track_opens=True,
377
385
  )
378
386
  assert_matches_type(EmailSendResponse, email, path=["response"])
379
387
 
@@ -94,6 +94,8 @@ class TestThreads:
94
94
  include_attachments=True,
95
95
  is_draft=True,
96
96
  note="note",
97
+ track_clicks=True,
98
+ track_opens=True,
97
99
  )
98
100
  assert_matches_type(ThreadForwardResponse, thread, path=["response"])
99
101
 
@@ -264,6 +266,8 @@ class TestAsyncThreads:
264
266
  include_attachments=True,
265
267
  is_draft=True,
266
268
  note="note",
269
+ track_clicks=True,
270
+ track_opens=True,
267
271
  )
268
272
  assert_matches_type(ThreadForwardResponse, thread, path=["response"])
269
273
 
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.82.0"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes