gmt-python-sdk 0.42.0__tar.gz → 0.43.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 (155) hide show
  1. gmt_python_sdk-0.43.0/.release-please-manifest.json +3 -0
  2. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/CHANGELOG.md +8 -0
  3. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/PKG-INFO +1 -1
  4. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/api.md +1 -34
  5. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/pyproject.toml +1 -1
  6. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_client.py +19 -44
  7. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_version.py +1 -1
  8. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/__init__.py +0 -14
  9. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/referral/referral.py +4 -2
  10. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/purchases/bulk.py +23 -35
  11. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/purchases_by_hash.py +22 -2
  12. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/__init__.py +0 -4
  13. gmt_python_sdk-0.43.0/src/gmt/types/telegram/__init__.py +3 -0
  14. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/purchases/test_bulk.py +46 -114
  15. gmt_python_sdk-0.42.0/.release-please-manifest.json +0 -3
  16. gmt_python_sdk-0.42.0/src/gmt/resources/telegram/__init__.py +0 -33
  17. gmt_python_sdk-0.42.0/src/gmt/resources/telegram/purchases.py +0 -514
  18. gmt_python_sdk-0.42.0/src/gmt/resources/telegram/telegram.py +0 -298
  19. gmt_python_sdk-0.42.0/src/gmt/types/telegram/__init__.py +0 -12
  20. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_create_premium_params.py +0 -15
  21. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_create_premium_response.py +0 -21
  22. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_create_stars_params.py +0 -15
  23. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_create_stars_response.py +0 -21
  24. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_list_premium_params.py +0 -15
  25. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_list_premium_response.py +0 -22
  26. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_list_stars_params.py +0 -15
  27. gmt_python_sdk-0.42.0/src/gmt/types/telegram/purchase_list_stars_response.py +0 -22
  28. gmt_python_sdk-0.42.0/src/gmt/types/telegram_get_premium_price_params.py +0 -12
  29. gmt_python_sdk-0.42.0/src/gmt/types/telegram_get_premium_price_response.py +0 -13
  30. gmt_python_sdk-0.42.0/src/gmt/types/telegram_get_stars_price_params.py +0 -12
  31. gmt_python_sdk-0.42.0/src/gmt/types/telegram_get_stars_price_response.py +0 -13
  32. gmt_python_sdk-0.42.0/tests/api_resources/telegram/__init__.py +0 -1
  33. gmt_python_sdk-0.42.0/tests/api_resources/telegram/test_purchases.py +0 -326
  34. gmt_python_sdk-0.42.0/tests/api_resources/test_telegram.py +0 -163
  35. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/.gitignore +0 -0
  36. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/CONTRIBUTING.md +0 -0
  37. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/LICENSE +0 -0
  38. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/README.md +0 -0
  39. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/SECURITY.md +0 -0
  40. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/bin/check-release-environment +0 -0
  41. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/bin/publish-pypi +0 -0
  42. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/examples/.keep +0 -0
  43. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/release-please-config.json +0 -0
  44. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/requirements-dev.lock +0 -0
  45. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/__init__.py +0 -0
  46. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_base_client.py +0 -0
  47. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_compat.py +0 -0
  48. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_constants.py +0 -0
  49. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_exceptions.py +0 -0
  50. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_files.py +0 -0
  51. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_models.py +0 -0
  52. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_qs.py +0 -0
  53. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_resource.py +0 -0
  54. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_response.py +0 -0
  55. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_streaming.py +0 -0
  56. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_types.py +0 -0
  57. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/__init__.py +0 -0
  58. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_compat.py +0 -0
  59. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_datetime_parse.py +0 -0
  60. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_json.py +0 -0
  61. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_logs.py +0 -0
  62. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_path.py +0 -0
  63. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_proxy.py +0 -0
  64. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_reflection.py +0 -0
  65. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_resources_proxy.py +0 -0
  66. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_streams.py +0 -0
  67. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_sync.py +0 -0
  68. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_transform.py +0 -0
  69. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_typing.py +0 -0
  70. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/_utils/_utils.py +0 -0
  71. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/lib/.keep +0 -0
  72. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/pagination.py +0 -0
  73. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/py.typed +0 -0
  74. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/accounts.py +0 -0
  75. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/__init__.py +0 -0
  76. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/discount.py +0 -0
  77. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/profile.py +0 -0
  78. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/referral/__init__.py +0 -0
  79. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/profile/referral/transaction.py +0 -0
  80. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/purchases/__init__.py +0 -0
  81. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/purchases/purchases.py +0 -0
  82. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/service.py +0 -0
  83. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/resources/webhooks.py +0 -0
  84. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/account_list_countries_params.py +0 -0
  85. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/account_list_countries_response.py +0 -0
  86. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/account_list_params.py +0 -0
  87. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/account_list_response.py +0 -0
  88. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/account_retrieve_response.py +0 -0
  89. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/__init__.py +0 -0
  90. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/discount_retrieve_response.py +0 -0
  91. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral/__init__.py +0 -0
  92. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral/transaction_list_params.py +0 -0
  93. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral/transaction_list_response.py +0 -0
  94. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral_retrieve_response.py +0 -0
  95. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral_transfer_balance_params.py +0 -0
  96. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile/referral_transfer_balance_response.py +0 -0
  97. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_language_params.py +0 -0
  98. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_language_response.py +0 -0
  99. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_login_params.py +0 -0
  100. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_login_response.py +0 -0
  101. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_password_params.py +0 -0
  102. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_change_password_response.py +0 -0
  103. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_retrieve_response.py +0 -0
  104. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/profile_unbind_telegram_response.py +0 -0
  105. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_create_params.py +0 -0
  106. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_create_response.py +0 -0
  107. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_list_params.py +0 -0
  108. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_list_response.py +0 -0
  109. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_refund_response.py +0 -0
  110. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_request_verification_code_params.py +0 -0
  111. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_request_verification_code_response.py +0 -0
  112. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchase_retrieve_response.py +0 -0
  113. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases/__init__.py +0 -0
  114. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases/bulk_create_params.py +0 -0
  115. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases/bulk_create_response.py +0 -0
  116. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases/bulk_retrieve_response.py +0 -0
  117. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases_by_hash_request_verification_code_params.py +0 -0
  118. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases_by_hash_request_verification_code_response.py +0 -0
  119. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/purchases_by_hash_retrieve_response.py +0 -0
  120. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/service_get_server_time_response.py +0 -0
  121. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/service_health_check_response.py +0 -0
  122. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/webhook_test_params.py +0 -0
  123. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/src/gmt/types/webhook_test_response.py +0 -0
  124. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/__init__.py +0 -0
  125. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/__init__.py +0 -0
  126. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/profile/__init__.py +0 -0
  127. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/profile/referral/__init__.py +0 -0
  128. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/profile/referral/test_transaction.py +0 -0
  129. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/profile/test_discount.py +0 -0
  130. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/profile/test_referral.py +0 -0
  131. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/purchases/__init__.py +0 -0
  132. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_accounts.py +0 -0
  133. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_profile.py +0 -0
  134. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_purchases.py +0 -0
  135. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_purchases_by_hash.py +0 -0
  136. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_service.py +0 -0
  137. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/api_resources/test_webhooks.py +0 -0
  138. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/conftest.py +0 -0
  139. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/sample_file.txt +0 -0
  140. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_client.py +0 -0
  141. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_extract_files.py +0 -0
  142. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_files.py +0 -0
  143. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_models.py +0 -0
  144. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_qs.py +0 -0
  145. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_required_args.py +0 -0
  146. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_response.py +0 -0
  147. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_streaming.py +0 -0
  148. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_transform.py +0 -0
  149. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_utils/test_datetime_parse.py +0 -0
  150. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_utils/test_json.py +0 -0
  151. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_utils/test_path.py +0 -0
  152. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_utils/test_proxy.py +0 -0
  153. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/test_utils/test_typing.py +0 -0
  154. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/tests/utils.py +0 -0
  155. {gmt_python_sdk-0.42.0 → gmt_python_sdk-0.43.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.43.0"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.43.0 (2026-05-21)
4
+
5
+ Full Changelog: [v0.42.0...v0.43.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.42.0...v0.43.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([08eda67](https://github.com/cameo6/gmt-python-sdk/commit/08eda67407c3e8ea0b2f68df6e930bbdb7a58210))
10
+
3
11
  ## 0.42.0 (2026-05-20)
4
12
 
5
13
  Full Changelog: [v0.41.0...v0.42.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.41.0...v0.42.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gmt-python-sdk
3
- Version: 0.42.0
3
+ Version: 0.43.0
4
4
  Summary: The official Python library for the gmt API
5
5
  Project-URL: Homepage, https://github.com/cameo6/gmt-python-sdk
6
6
  Project-URL: Repository, https://github.com/cameo6/gmt-python-sdk
@@ -118,7 +118,7 @@ Methods:
118
118
 
119
119
  - <code title="post /v1/purchases/bulk">client.purchases.bulk.<a href="./src/gmt/resources/purchases/bulk.py">create</a>(\*\*<a href="src/gmt/types/purchases/bulk_create_params.py">params</a>) -> <a href="./src/gmt/types/purchases/bulk_create_response.py">BulkCreateResponse</a></code>
120
120
  - <code title="get /v1/purchases/bulk/{purchase_id}">client.purchases.bulk.<a href="./src/gmt/resources/purchases/bulk.py">retrieve</a>(purchase_id) -> <a href="./src/gmt/types/purchases/bulk_retrieve_response.py">BulkRetrieveResponse</a></code>
121
- - <code title="get /v1/purchases/bulk/{purchase_id}/download">client.purchases.bulk.<a href="./src/gmt/resources/purchases/bulk.py">download</a>(purchase_id) -> BinaryAPIResponse</code>
121
+ - <code title="get /v1/purchases/bulk/{purchase_id}/download">client.purchases.bulk.<a href="./src/gmt/resources/purchases/bulk.py">download</a>(purchase_id) -> None</code>
122
122
 
123
123
  # PurchasesByHash
124
124
 
@@ -136,39 +136,6 @@ Methods:
136
136
  - <code title="get /v1/purchases-by-hash/{hash}">client.purchases_by_hash.<a href="./src/gmt/resources/purchases_by_hash.py">retrieve</a>(hash) -> <a href="./src/gmt/types/purchases_by_hash_retrieve_response.py">PurchasesByHashRetrieveResponse</a></code>
137
137
  - <code title="post /v1/purchases-by-hash/{hash}/request-code">client.purchases_by_hash.<a href="./src/gmt/resources/purchases_by_hash.py">request_verification_code</a>(hash, \*\*<a href="src/gmt/types/purchases_by_hash_request_verification_code_params.py">params</a>) -> <a href="./src/gmt/types/purchases_by_hash_request_verification_code_response.py">PurchasesByHashRequestVerificationCodeResponse</a></code>
138
138
 
139
- # Telegram
140
-
141
- Types:
142
-
143
- ```python
144
- from gmt.types import TelegramGetPremiumPriceResponse, TelegramGetStarsPriceResponse
145
- ```
146
-
147
- Methods:
148
-
149
- - <code title="get /v1/telegram/premium">client.telegram.<a href="./src/gmt/resources/telegram/telegram.py">get_premium_price</a>(\*\*<a href="src/gmt/types/telegram_get_premium_price_params.py">params</a>) -> <a href="./src/gmt/types/telegram_get_premium_price_response.py">TelegramGetPremiumPriceResponse</a></code>
150
- - <code title="get /v1/telegram/stars">client.telegram.<a href="./src/gmt/resources/telegram/telegram.py">get_stars_price</a>(\*\*<a href="src/gmt/types/telegram_get_stars_price_params.py">params</a>) -> <a href="./src/gmt/types/telegram_get_stars_price_response.py">TelegramGetStarsPriceResponse</a></code>
151
-
152
- ## Purchases
153
-
154
- Types:
155
-
156
- ```python
157
- from gmt.types.telegram import (
158
- PurchaseCreatePremiumResponse,
159
- PurchaseCreateStarsResponse,
160
- PurchaseListPremiumResponse,
161
- PurchaseListStarsResponse,
162
- )
163
- ```
164
-
165
- Methods:
166
-
167
- - <code title="post /v1/telegram/purchases/premium">client.telegram.purchases.<a href="./src/gmt/resources/telegram/purchases.py">create_premium</a>(\*\*<a href="src/gmt/types/telegram/purchase_create_premium_params.py">params</a>) -> <a href="./src/gmt/types/telegram/purchase_create_premium_response.py">PurchaseCreatePremiumResponse</a></code>
168
- - <code title="post /v1/telegram/purchases/stars">client.telegram.purchases.<a href="./src/gmt/resources/telegram/purchases.py">create_stars</a>(\*\*<a href="src/gmt/types/telegram/purchase_create_stars_params.py">params</a>) -> <a href="./src/gmt/types/telegram/purchase_create_stars_response.py">PurchaseCreateStarsResponse</a></code>
169
- - <code title="get /v1/telegram/purchases/premium">client.telegram.purchases.<a href="./src/gmt/resources/telegram/purchases.py">list_premium</a>(\*\*<a href="src/gmt/types/telegram/purchase_list_premium_params.py">params</a>) -> <a href="./src/gmt/types/telegram/purchase_list_premium_response.py">SyncPageNumber[PurchaseListPremiumResponse]</a></code>
170
- - <code title="get /v1/telegram/purchases/stars">client.telegram.purchases.<a href="./src/gmt/resources/telegram/purchases.py">list_stars</a>(\*\*<a href="src/gmt/types/telegram/purchase_list_stars_params.py">params</a>) -> <a href="./src/gmt/types/telegram/purchase_list_stars_response.py">SyncPageNumber[PurchaseListStarsResponse]</a></code>
171
-
172
139
  # Webhooks
173
140
 
174
141
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gmt-python-sdk"
3
- version = "0.42.0"
3
+ version = "0.43.0"
4
4
  description = "The official Python library for the gmt API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -35,13 +35,12 @@ from ._base_client import (
35
35
  )
36
36
 
37
37
  if TYPE_CHECKING:
38
- from .resources import profile, service, accounts, telegram, webhooks, purchases, purchases_by_hash
38
+ from .resources import profile, service, accounts, webhooks, purchases, purchases_by_hash
39
39
  from .resources.service import ServiceResource, AsyncServiceResource
40
40
  from .resources.accounts import AccountsResource, AsyncAccountsResource
41
41
  from .resources.webhooks import WebhooksResource, AsyncWebhooksResource
42
42
  from .resources.profile.profile import ProfileResource, AsyncProfileResource
43
43
  from .resources.purchases_by_hash import PurchasesByHashResource, AsyncPurchasesByHashResource
44
- from .resources.telegram.telegram import TelegramResource, AsyncTelegramResource
45
44
  from .resources.purchases.purchases import PurchasesResource, AsyncPurchasesResource
46
45
 
47
46
  __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Gmt", "AsyncGmt", "Client", "AsyncClient"]
@@ -145,17 +144,13 @@ class Gmt(SyncAPIClient):
145
144
 
146
145
  @cached_property
147
146
  def purchases_by_hash(self) -> PurchasesByHashResource:
148
- """Purchase history and management."""
147
+ """
148
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
149
+ """
149
150
  from .resources.purchases_by_hash import PurchasesByHashResource
150
151
 
151
152
  return PurchasesByHashResource(self)
152
153
 
153
- @cached_property
154
- def telegram(self) -> TelegramResource:
155
- from .resources.telegram import TelegramResource
156
-
157
- return TelegramResource(self)
158
-
159
154
  @cached_property
160
155
  def webhooks(self) -> WebhooksResource:
161
156
  """Webhook testing and documentation.
@@ -400,17 +395,13 @@ class AsyncGmt(AsyncAPIClient):
400
395
 
401
396
  @cached_property
402
397
  def purchases_by_hash(self) -> AsyncPurchasesByHashResource:
403
- """Purchase history and management."""
398
+ """
399
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
400
+ """
404
401
  from .resources.purchases_by_hash import AsyncPurchasesByHashResource
405
402
 
406
403
  return AsyncPurchasesByHashResource(self)
407
404
 
408
- @cached_property
409
- def telegram(self) -> AsyncTelegramResource:
410
- from .resources.telegram import AsyncTelegramResource
411
-
412
- return AsyncTelegramResource(self)
413
-
414
405
  @cached_property
415
406
  def webhooks(self) -> AsyncWebhooksResource:
416
407
  """Webhook testing and documentation.
@@ -601,17 +592,13 @@ class GmtWithRawResponse:
601
592
 
602
593
  @cached_property
603
594
  def purchases_by_hash(self) -> purchases_by_hash.PurchasesByHashResourceWithRawResponse:
604
- """Purchase history and management."""
595
+ """
596
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
597
+ """
605
598
  from .resources.purchases_by_hash import PurchasesByHashResourceWithRawResponse
606
599
 
607
600
  return PurchasesByHashResourceWithRawResponse(self._client.purchases_by_hash)
608
601
 
609
- @cached_property
610
- def telegram(self) -> telegram.TelegramResourceWithRawResponse:
611
- from .resources.telegram import TelegramResourceWithRawResponse
612
-
613
- return TelegramResourceWithRawResponse(self._client.telegram)
614
-
615
602
  @cached_property
616
603
  def webhooks(self) -> webhooks.WebhooksResourceWithRawResponse:
617
604
  """Webhook testing and documentation.
@@ -688,17 +675,13 @@ class AsyncGmtWithRawResponse:
688
675
 
689
676
  @cached_property
690
677
  def purchases_by_hash(self) -> purchases_by_hash.AsyncPurchasesByHashResourceWithRawResponse:
691
- """Purchase history and management."""
678
+ """
679
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
680
+ """
692
681
  from .resources.purchases_by_hash import AsyncPurchasesByHashResourceWithRawResponse
693
682
 
694
683
  return AsyncPurchasesByHashResourceWithRawResponse(self._client.purchases_by_hash)
695
684
 
696
- @cached_property
697
- def telegram(self) -> telegram.AsyncTelegramResourceWithRawResponse:
698
- from .resources.telegram import AsyncTelegramResourceWithRawResponse
699
-
700
- return AsyncTelegramResourceWithRawResponse(self._client.telegram)
701
-
702
685
  @cached_property
703
686
  def webhooks(self) -> webhooks.AsyncWebhooksResourceWithRawResponse:
704
687
  """Webhook testing and documentation.
@@ -775,17 +758,13 @@ class GmtWithStreamedResponse:
775
758
 
776
759
  @cached_property
777
760
  def purchases_by_hash(self) -> purchases_by_hash.PurchasesByHashResourceWithStreamingResponse:
778
- """Purchase history and management."""
761
+ """
762
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
763
+ """
779
764
  from .resources.purchases_by_hash import PurchasesByHashResourceWithStreamingResponse
780
765
 
781
766
  return PurchasesByHashResourceWithStreamingResponse(self._client.purchases_by_hash)
782
767
 
783
- @cached_property
784
- def telegram(self) -> telegram.TelegramResourceWithStreamingResponse:
785
- from .resources.telegram import TelegramResourceWithStreamingResponse
786
-
787
- return TelegramResourceWithStreamingResponse(self._client.telegram)
788
-
789
768
  @cached_property
790
769
  def webhooks(self) -> webhooks.WebhooksResourceWithStreamingResponse:
791
770
  """Webhook testing and documentation.
@@ -862,17 +841,13 @@ class AsyncGmtWithStreamedResponse:
862
841
 
863
842
  @cached_property
864
843
  def purchases_by_hash(self) -> purchases_by_hash.AsyncPurchasesByHashResourceWithStreamingResponse:
865
- """Purchase history and management."""
844
+ """
845
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
846
+ """
866
847
  from .resources.purchases_by_hash import AsyncPurchasesByHashResourceWithStreamingResponse
867
848
 
868
849
  return AsyncPurchasesByHashResourceWithStreamingResponse(self._client.purchases_by_hash)
869
850
 
870
- @cached_property
871
- def telegram(self) -> telegram.AsyncTelegramResourceWithStreamingResponse:
872
- from .resources.telegram import AsyncTelegramResourceWithStreamingResponse
873
-
874
- return AsyncTelegramResourceWithStreamingResponse(self._client.telegram)
875
-
876
851
  @cached_property
877
852
  def webhooks(self) -> webhooks.AsyncWebhooksResourceWithStreamingResponse:
878
853
  """Webhook testing and documentation.
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "gmt"
4
- __version__ = "0.42.0" # x-release-please-version
4
+ __version__ = "0.43.0" # x-release-please-version
@@ -24,14 +24,6 @@ from .accounts import (
24
24
  AccountsResourceWithStreamingResponse,
25
25
  AsyncAccountsResourceWithStreamingResponse,
26
26
  )
27
- from .telegram import (
28
- TelegramResource,
29
- AsyncTelegramResource,
30
- TelegramResourceWithRawResponse,
31
- AsyncTelegramResourceWithRawResponse,
32
- TelegramResourceWithStreamingResponse,
33
- AsyncTelegramResourceWithStreamingResponse,
34
- )
35
27
  from .webhooks import (
36
28
  WebhooksResource,
37
29
  AsyncWebhooksResource,
@@ -88,12 +80,6 @@ __all__ = [
88
80
  "AsyncPurchasesByHashResourceWithRawResponse",
89
81
  "PurchasesByHashResourceWithStreamingResponse",
90
82
  "AsyncPurchasesByHashResourceWithStreamingResponse",
91
- "TelegramResource",
92
- "AsyncTelegramResource",
93
- "TelegramResourceWithRawResponse",
94
- "AsyncTelegramResourceWithRawResponse",
95
- "TelegramResourceWithStreamingResponse",
96
- "AsyncTelegramResourceWithStreamingResponse",
97
83
  "WebhooksResource",
98
84
  "AsyncWebhooksResource",
99
85
  "WebhooksResourceWithRawResponse",
@@ -91,7 +91,8 @@ class ReferralResource(SyncAPIResource):
91
91
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
92
92
  ) -> ReferralTransferBalanceResponse:
93
93
  """
94
- Change the current user password to a new one.
94
+ Transfers a specified amount from the user's referral balance to their main
95
+ balance. The amount must be between 1 and 100,000 USD.
95
96
 
96
97
  Args:
97
98
  amount: Amount to transfer from referral balance
@@ -175,7 +176,8 @@ class AsyncReferralResource(AsyncAPIResource):
175
176
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
176
177
  ) -> ReferralTransferBalanceResponse:
177
178
  """
178
- Change the current user password to a new one.
179
+ Transfers a specified amount from the user's referral balance to their main
180
+ balance. The amount must be between 1 and 100,000 USD.
179
181
 
180
182
  Args:
181
183
  amount: Amount to transfer from referral balance
@@ -4,23 +4,15 @@ from __future__ import annotations
4
4
 
5
5
  import httpx
6
6
 
7
- from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
7
+ from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
8
8
  from ..._utils import path_template, maybe_transform, async_maybe_transform
9
9
  from ..._compat import cached_property
10
10
  from ..._resource import SyncAPIResource, AsyncAPIResource
11
11
  from ..._response import (
12
- BinaryAPIResponse,
13
- AsyncBinaryAPIResponse,
14
- StreamedBinaryAPIResponse,
15
- AsyncStreamedBinaryAPIResponse,
16
12
  to_raw_response_wrapper,
17
13
  to_streamed_response_wrapper,
18
14
  async_to_raw_response_wrapper,
19
- to_custom_raw_response_wrapper,
20
15
  async_to_streamed_response_wrapper,
21
- to_custom_streamed_response_wrapper,
22
- async_to_custom_raw_response_wrapper,
23
- async_to_custom_streamed_response_wrapper,
24
16
  )
25
17
  from ..._base_client import make_request_options
26
18
  from ...types.purchases import bulk_create_params
@@ -120,7 +112,7 @@ class BulkResource(SyncAPIResource):
120
112
 
121
113
  def retrieve(
122
114
  self,
123
- purchase_id: str,
115
+ purchase_id: int,
124
116
  *,
125
117
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
126
118
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -134,6 +126,8 @@ class BulkResource(SyncAPIResource):
134
126
  archive.
135
127
 
136
128
  Args:
129
+ purchase_id: Unique purchase identifier.
130
+
137
131
  extra_headers: Send extra headers
138
132
 
139
133
  extra_query: Add additional query parameters to the request
@@ -142,8 +136,6 @@ class BulkResource(SyncAPIResource):
142
136
 
143
137
  timeout: Override the client-level default timeout for this request, in seconds
144
138
  """
145
- if not purchase_id:
146
- raise ValueError(f"Expected a non-empty value for `purchase_id` but received {purchase_id!r}")
147
139
  return self._get(
148
140
  path_template("/v1/purchases/bulk/{purchase_id}", purchase_id=purchase_id),
149
141
  options=make_request_options(
@@ -154,7 +146,7 @@ class BulkResource(SyncAPIResource):
154
146
 
155
147
  def download(
156
148
  self,
157
- purchase_id: str,
149
+ purchase_id: int,
158
150
  *,
159
151
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
160
152
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -162,12 +154,14 @@ class BulkResource(SyncAPIResource):
162
154
  extra_query: Query | None = None,
163
155
  extra_body: Body | None = None,
164
156
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
165
- ) -> BinaryAPIResponse:
157
+ ) -> None:
166
158
  """
167
159
  Download the archive file containing multiple accounts from a successful bulk
168
160
  purchase
169
161
 
170
162
  Args:
163
+ purchase_id: Unique purchase identifier.
164
+
171
165
  extra_headers: Send extra headers
172
166
 
173
167
  extra_query: Add additional query parameters to the request
@@ -176,15 +170,13 @@ class BulkResource(SyncAPIResource):
176
170
 
177
171
  timeout: Override the client-level default timeout for this request, in seconds
178
172
  """
179
- if not purchase_id:
180
- raise ValueError(f"Expected a non-empty value for `purchase_id` but received {purchase_id!r}")
181
- extra_headers = {"Accept": "application/zip", **(extra_headers or {})}
173
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
182
174
  return self._get(
183
175
  path_template("/v1/purchases/bulk/{purchase_id}/download", purchase_id=purchase_id),
184
176
  options=make_request_options(
185
177
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
186
178
  ),
187
- cast_to=BinaryAPIResponse,
179
+ cast_to=NoneType,
188
180
  )
189
181
 
190
182
 
@@ -278,7 +270,7 @@ class AsyncBulkResource(AsyncAPIResource):
278
270
 
279
271
  async def retrieve(
280
272
  self,
281
- purchase_id: str,
273
+ purchase_id: int,
282
274
  *,
283
275
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
284
276
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -292,6 +284,8 @@ class AsyncBulkResource(AsyncAPIResource):
292
284
  archive.
293
285
 
294
286
  Args:
287
+ purchase_id: Unique purchase identifier.
288
+
295
289
  extra_headers: Send extra headers
296
290
 
297
291
  extra_query: Add additional query parameters to the request
@@ -300,8 +294,6 @@ class AsyncBulkResource(AsyncAPIResource):
300
294
 
301
295
  timeout: Override the client-level default timeout for this request, in seconds
302
296
  """
303
- if not purchase_id:
304
- raise ValueError(f"Expected a non-empty value for `purchase_id` but received {purchase_id!r}")
305
297
  return await self._get(
306
298
  path_template("/v1/purchases/bulk/{purchase_id}", purchase_id=purchase_id),
307
299
  options=make_request_options(
@@ -312,7 +304,7 @@ class AsyncBulkResource(AsyncAPIResource):
312
304
 
313
305
  async def download(
314
306
  self,
315
- purchase_id: str,
307
+ purchase_id: int,
316
308
  *,
317
309
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
318
310
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -320,12 +312,14 @@ class AsyncBulkResource(AsyncAPIResource):
320
312
  extra_query: Query | None = None,
321
313
  extra_body: Body | None = None,
322
314
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
323
- ) -> AsyncBinaryAPIResponse:
315
+ ) -> None:
324
316
  """
325
317
  Download the archive file containing multiple accounts from a successful bulk
326
318
  purchase
327
319
 
328
320
  Args:
321
+ purchase_id: Unique purchase identifier.
322
+
329
323
  extra_headers: Send extra headers
330
324
 
331
325
  extra_query: Add additional query parameters to the request
@@ -334,15 +328,13 @@ class AsyncBulkResource(AsyncAPIResource):
334
328
 
335
329
  timeout: Override the client-level default timeout for this request, in seconds
336
330
  """
337
- if not purchase_id:
338
- raise ValueError(f"Expected a non-empty value for `purchase_id` but received {purchase_id!r}")
339
- extra_headers = {"Accept": "application/zip", **(extra_headers or {})}
331
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
340
332
  return await self._get(
341
333
  path_template("/v1/purchases/bulk/{purchase_id}/download", purchase_id=purchase_id),
342
334
  options=make_request_options(
343
335
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
344
336
  ),
345
- cast_to=AsyncBinaryAPIResponse,
337
+ cast_to=NoneType,
346
338
  )
347
339
 
348
340
 
@@ -356,9 +348,8 @@ class BulkResourceWithRawResponse:
356
348
  self.retrieve = to_raw_response_wrapper(
357
349
  bulk.retrieve,
358
350
  )
359
- self.download = to_custom_raw_response_wrapper(
351
+ self.download = to_raw_response_wrapper(
360
352
  bulk.download,
361
- BinaryAPIResponse,
362
353
  )
363
354
 
364
355
 
@@ -372,9 +363,8 @@ class AsyncBulkResourceWithRawResponse:
372
363
  self.retrieve = async_to_raw_response_wrapper(
373
364
  bulk.retrieve,
374
365
  )
375
- self.download = async_to_custom_raw_response_wrapper(
366
+ self.download = async_to_raw_response_wrapper(
376
367
  bulk.download,
377
- AsyncBinaryAPIResponse,
378
368
  )
379
369
 
380
370
 
@@ -388,9 +378,8 @@ class BulkResourceWithStreamingResponse:
388
378
  self.retrieve = to_streamed_response_wrapper(
389
379
  bulk.retrieve,
390
380
  )
391
- self.download = to_custom_streamed_response_wrapper(
381
+ self.download = to_streamed_response_wrapper(
392
382
  bulk.download,
393
- StreamedBinaryAPIResponse,
394
383
  )
395
384
 
396
385
 
@@ -404,7 +393,6 @@ class AsyncBulkResourceWithStreamingResponse:
404
393
  self.retrieve = async_to_streamed_response_wrapper(
405
394
  bulk.retrieve,
406
395
  )
407
- self.download = async_to_custom_streamed_response_wrapper(
396
+ self.download = async_to_streamed_response_wrapper(
408
397
  bulk.download,
409
- AsyncStreamedBinaryAPIResponse,
410
398
  )
@@ -23,7 +23,9 @@ __all__ = ["PurchasesByHashResource", "AsyncPurchasesByHashResource"]
23
23
 
24
24
 
25
25
  class PurchasesByHashResource(SyncAPIResource):
26
- """Purchase history and management."""
26
+ """
27
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
28
+ """
27
29
 
28
30
  @cached_property
29
31
  def with_raw_response(self) -> PurchasesByHashResourceWithRawResponse:
@@ -61,6 +63,10 @@ class PurchasesByHashResource(SyncAPIResource):
61
63
 
62
64
  **No authentication required.** The hash code serves as the access token.
63
65
 
66
+ **Path parameter `hash`.** If it is missing or empty in the URL (e.g.
67
+ `/v1/purchases-by-hash/` or `/v1/purchases-by-hash//`), the API returns **400**
68
+ with `fieldViolations` on `hash`.
69
+
64
70
  Args:
65
71
  hash: Unique hash code of the purchase
66
72
 
@@ -103,6 +109,10 @@ class PurchasesByHashResource(SyncAPIResource):
103
109
  **Idempotent Operation.** Safe to retry on network errors - will not generate
104
110
  duplicate codes.
105
111
 
112
+ **Path parameter `hash`.** If it is missing or empty before `/request-code`
113
+ (e.g. `/v1/purchases-by-hash/request-code`), the API returns **400** with
114
+ `fieldViolations` on `hash`.
115
+
106
116
  Args:
107
117
  hash: Unique hash code of the purchase
108
118
 
@@ -137,7 +147,9 @@ class PurchasesByHashResource(SyncAPIResource):
137
147
 
138
148
 
139
149
  class AsyncPurchasesByHashResource(AsyncAPIResource):
140
- """Purchase history and management."""
150
+ """
151
+ Endpoints for accessing purchase details and requesting verification codes using a unique hash identifier instead of purchase ID. This allows retrieval of purchase information without authentication, using the hash as a secure access token.
152
+ """
141
153
 
142
154
  @cached_property
143
155
  def with_raw_response(self) -> AsyncPurchasesByHashResourceWithRawResponse:
@@ -175,6 +187,10 @@ class AsyncPurchasesByHashResource(AsyncAPIResource):
175
187
 
176
188
  **No authentication required.** The hash code serves as the access token.
177
189
 
190
+ **Path parameter `hash`.** If it is missing or empty in the URL (e.g.
191
+ `/v1/purchases-by-hash/` or `/v1/purchases-by-hash//`), the API returns **400**
192
+ with `fieldViolations` on `hash`.
193
+
178
194
  Args:
179
195
  hash: Unique hash code of the purchase
180
196
 
@@ -217,6 +233,10 @@ class AsyncPurchasesByHashResource(AsyncAPIResource):
217
233
  **Idempotent Operation.** Safe to retry on network errors - will not generate
218
234
  duplicate codes.
219
235
 
236
+ **Path parameter `hash`.** If it is missing or empty before `/request-code`
237
+ (e.g. `/v1/purchases-by-hash/request-code`), the API returns **400** with
238
+ `fieldViolations` on `hash`.
239
+
220
240
  Args:
221
241
  hash: Unique hash code of the purchase
222
242
 
@@ -21,15 +21,11 @@ from .service_health_check_response import ServiceHealthCheckResponse as Service
21
21
  from .profile_change_language_params import ProfileChangeLanguageParams as ProfileChangeLanguageParams
22
22
  from .profile_change_password_params import ProfileChangePasswordParams as ProfileChangePasswordParams
23
23
  from .account_list_countries_response import AccountListCountriesResponse as AccountListCountriesResponse
24
- from .telegram_get_stars_price_params import TelegramGetStarsPriceParams as TelegramGetStarsPriceParams
25
24
  from .profile_change_language_response import ProfileChangeLanguageResponse as ProfileChangeLanguageResponse
26
25
  from .profile_change_password_response import ProfileChangePasswordResponse as ProfileChangePasswordResponse
27
26
  from .profile_unbind_telegram_response import ProfileUnbindTelegramResponse as ProfileUnbindTelegramResponse
28
27
  from .service_get_server_time_response import ServiceGetServerTimeResponse as ServiceGetServerTimeResponse
29
- from .telegram_get_premium_price_params import TelegramGetPremiumPriceParams as TelegramGetPremiumPriceParams
30
- from .telegram_get_stars_price_response import TelegramGetStarsPriceResponse as TelegramGetStarsPriceResponse
31
28
  from .purchases_by_hash_retrieve_response import PurchasesByHashRetrieveResponse as PurchasesByHashRetrieveResponse
32
- from .telegram_get_premium_price_response import TelegramGetPremiumPriceResponse as TelegramGetPremiumPriceResponse
33
29
  from .purchase_request_verification_code_params import (
34
30
  PurchaseRequestVerificationCodeParams as PurchaseRequestVerificationCodeParams,
35
31
  )
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations