gmt-python-sdk 0.33.0__tar.gz → 0.34.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 (153) hide show
  1. gmt_python_sdk-0.34.0/.release-please-manifest.json +3 -0
  2. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/CHANGELOG.md +8 -0
  3. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/PKG-INFO +1 -1
  4. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/api.md +16 -0
  5. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/pyproject.toml +1 -1
  6. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_client.py +44 -1
  7. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_version.py +1 -1
  8. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/__init__.py +14 -0
  9. gmt_python_sdk-0.34.0/src/gmt/resources/purchases_by_hash.py +298 -0
  10. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/__init__.py +7 -0
  11. gmt_python_sdk-0.34.0/src/gmt/types/purchases_by_hash_request_verification_code_params.py +20 -0
  12. gmt_python_sdk-0.34.0/src/gmt/types/purchases_by_hash_request_verification_code_response.py +163 -0
  13. gmt_python_sdk-0.34.0/src/gmt/types/purchases_by_hash_retrieve_response.py +133 -0
  14. gmt_python_sdk-0.34.0/tests/api_resources/test_purchases_by_hash.py +213 -0
  15. gmt_python_sdk-0.33.0/.release-please-manifest.json +0 -3
  16. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/.gitignore +0 -0
  17. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/CONTRIBUTING.md +0 -0
  18. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/LICENSE +0 -0
  19. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/README.md +0 -0
  20. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/SECURITY.md +0 -0
  21. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/bin/check-release-environment +0 -0
  22. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/bin/publish-pypi +0 -0
  23. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/examples/.keep +0 -0
  24. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/release-please-config.json +0 -0
  25. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/requirements-dev.lock +0 -0
  26. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/__init__.py +0 -0
  27. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_base_client.py +0 -0
  28. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_compat.py +0 -0
  29. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_constants.py +0 -0
  30. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_exceptions.py +0 -0
  31. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_files.py +0 -0
  32. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_models.py +0 -0
  33. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_qs.py +0 -0
  34. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_resource.py +0 -0
  35. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_response.py +0 -0
  36. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_streaming.py +0 -0
  37. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_types.py +0 -0
  38. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/__init__.py +0 -0
  39. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_compat.py +0 -0
  40. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_datetime_parse.py +0 -0
  41. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_json.py +0 -0
  42. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_logs.py +0 -0
  43. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_path.py +0 -0
  44. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_proxy.py +0 -0
  45. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_reflection.py +0 -0
  46. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_resources_proxy.py +0 -0
  47. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_streams.py +0 -0
  48. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_sync.py +0 -0
  49. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_transform.py +0 -0
  50. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_typing.py +0 -0
  51. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/_utils/_utils.py +0 -0
  52. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/lib/.keep +0 -0
  53. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/pagination.py +0 -0
  54. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/py.typed +0 -0
  55. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/accounts.py +0 -0
  56. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/__init__.py +0 -0
  57. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/discount.py +0 -0
  58. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/profile.py +0 -0
  59. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/referral/__init__.py +0 -0
  60. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/referral/referral.py +0 -0
  61. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/profile/referral/transaction.py +0 -0
  62. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/purchases/__init__.py +0 -0
  63. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/purchases/bulk.py +0 -0
  64. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/purchases/purchases.py +0 -0
  65. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/service.py +0 -0
  66. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/telegram/__init__.py +0 -0
  67. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/telegram/purchases.py +0 -0
  68. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/telegram/telegram.py +0 -0
  69. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/resources/webhooks.py +0 -0
  70. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/account_list_countries_params.py +0 -0
  71. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/account_list_countries_response.py +0 -0
  72. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/account_list_params.py +0 -0
  73. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/account_list_response.py +0 -0
  74. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/account_retrieve_response.py +0 -0
  75. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/__init__.py +0 -0
  76. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/discount_retrieve_response.py +0 -0
  77. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral/__init__.py +0 -0
  78. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral/transaction_list_params.py +0 -0
  79. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral/transaction_list_response.py +0 -0
  80. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral_retrieve_response.py +0 -0
  81. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral_transfer_balance_params.py +0 -0
  82. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile/referral_transfer_balance_response.py +0 -0
  83. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_change_login_params.py +0 -0
  84. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_change_login_response.py +0 -0
  85. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_change_password_params.py +0 -0
  86. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_change_password_response.py +0 -0
  87. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_retrieve_response.py +0 -0
  88. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/profile_unbind_telegram_response.py +0 -0
  89. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_create_params.py +0 -0
  90. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_create_response.py +0 -0
  91. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_list_params.py +0 -0
  92. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_list_response.py +0 -0
  93. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_refund_response.py +0 -0
  94. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_request_verification_code_params.py +0 -0
  95. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_request_verification_code_response.py +0 -0
  96. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchase_retrieve_response.py +0 -0
  97. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchases/__init__.py +0 -0
  98. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchases/bulk_create_params.py +0 -0
  99. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchases/bulk_create_response.py +0 -0
  100. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/purchases/bulk_retrieve_response.py +0 -0
  101. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/service_get_server_time_response.py +0 -0
  102. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/service_health_check_response.py +0 -0
  103. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/__init__.py +0 -0
  104. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_create_premium_params.py +0 -0
  105. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_create_premium_response.py +0 -0
  106. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_create_stars_params.py +0 -0
  107. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_create_stars_response.py +0 -0
  108. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_list_premium_params.py +0 -0
  109. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_list_premium_response.py +0 -0
  110. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_list_stars_params.py +0 -0
  111. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram/purchase_list_stars_response.py +0 -0
  112. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram_get_premium_price_params.py +0 -0
  113. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram_get_premium_price_response.py +0 -0
  114. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram_get_stars_price_params.py +0 -0
  115. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/telegram_get_stars_price_response.py +0 -0
  116. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/webhook_test_params.py +0 -0
  117. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/src/gmt/types/webhook_test_response.py +0 -0
  118. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/__init__.py +0 -0
  119. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/__init__.py +0 -0
  120. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/profile/__init__.py +0 -0
  121. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/profile/referral/__init__.py +0 -0
  122. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/profile/referral/test_transaction.py +0 -0
  123. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/profile/test_discount.py +0 -0
  124. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/profile/test_referral.py +0 -0
  125. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/purchases/__init__.py +0 -0
  126. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/purchases/test_bulk.py +0 -0
  127. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/telegram/__init__.py +0 -0
  128. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/telegram/test_purchases.py +0 -0
  129. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_accounts.py +0 -0
  130. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_profile.py +0 -0
  131. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_purchases.py +0 -0
  132. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_service.py +0 -0
  133. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_telegram.py +0 -0
  134. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/api_resources/test_webhooks.py +0 -0
  135. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/conftest.py +0 -0
  136. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/sample_file.txt +0 -0
  137. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_client.py +0 -0
  138. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_deepcopy.py +0 -0
  139. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_extract_files.py +0 -0
  140. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_files.py +0 -0
  141. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_models.py +0 -0
  142. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_qs.py +0 -0
  143. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_required_args.py +0 -0
  144. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_response.py +0 -0
  145. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_streaming.py +0 -0
  146. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_transform.py +0 -0
  147. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_utils/test_datetime_parse.py +0 -0
  148. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_utils/test_json.py +0 -0
  149. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_utils/test_path.py +0 -0
  150. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_utils/test_proxy.py +0 -0
  151. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/test_utils/test_typing.py +0 -0
  152. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/tests/utils.py +0 -0
  153. {gmt_python_sdk-0.33.0 → gmt_python_sdk-0.34.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.34.0"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.34.0 (2026-04-08)
4
+
5
+ Full Changelog: [v0.33.0...v0.34.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.33.0...v0.34.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([781721d](https://github.com/cameo6/gmt-python-sdk/commit/781721daf46f03bd5f4497b4bcd7ac688fbf41c0))
10
+
3
11
  ## 0.33.0 (2026-04-08)
4
12
 
5
13
  Full Changelog: [v0.32.0...v0.33.0](https://github.com/cameo6/gmt-python-sdk/compare/v0.32.0...v0.33.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: gmt-python-sdk
3
- Version: 0.33.0
3
+ Version: 0.34.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,6 +118,22 @@ Methods:
118
118
  - <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>
119
119
  - <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>
120
120
 
121
+ # PurchasesByHash
122
+
123
+ Types:
124
+
125
+ ```python
126
+ from gmt.types import (
127
+ PurchasesByHashRetrieveResponse,
128
+ PurchasesByHashRequestVerificationCodeResponse,
129
+ )
130
+ ```
131
+
132
+ Methods:
133
+
134
+ - <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>
135
+ - <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>
136
+
121
137
  # Telegram
122
138
 
123
139
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gmt-python-sdk"
3
- version = "0.33.0"
3
+ version = "0.34.0"
4
4
  description = "The official Python library for the gmt API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -31,11 +31,12 @@ from ._base_client import (
31
31
  )
32
32
 
33
33
  if TYPE_CHECKING:
34
- from .resources import profile, service, accounts, telegram, webhooks, purchases
34
+ from .resources import profile, service, accounts, telegram, webhooks, purchases, purchases_by_hash
35
35
  from .resources.service import ServiceResource, AsyncServiceResource
36
36
  from .resources.accounts import AccountsResource, AsyncAccountsResource
37
37
  from .resources.webhooks import WebhooksResource, AsyncWebhooksResource
38
38
  from .resources.profile.profile import ProfileResource, AsyncProfileResource
39
+ from .resources.purchases_by_hash import PurchasesByHashResource, AsyncPurchasesByHashResource
39
40
  from .resources.telegram.telegram import TelegramResource, AsyncTelegramResource
40
41
  from .resources.purchases.purchases import PurchasesResource, AsyncPurchasesResource
41
42
 
@@ -129,6 +130,13 @@ class Gmt(SyncAPIClient):
129
130
 
130
131
  return PurchasesResource(self)
131
132
 
133
+ @cached_property
134
+ def purchases_by_hash(self) -> PurchasesByHashResource:
135
+ """Purchase history and management."""
136
+ from .resources.purchases_by_hash import PurchasesByHashResource
137
+
138
+ return PurchasesByHashResource(self)
139
+
132
140
  @cached_property
133
141
  def telegram(self) -> TelegramResource:
134
142
  from .resources.telegram import TelegramResource
@@ -368,6 +376,13 @@ class AsyncGmt(AsyncAPIClient):
368
376
 
369
377
  return AsyncPurchasesResource(self)
370
378
 
379
+ @cached_property
380
+ def purchases_by_hash(self) -> AsyncPurchasesByHashResource:
381
+ """Purchase history and management."""
382
+ from .resources.purchases_by_hash import AsyncPurchasesByHashResource
383
+
384
+ return AsyncPurchasesByHashResource(self)
385
+
371
386
  @cached_property
372
387
  def telegram(self) -> AsyncTelegramResource:
373
388
  from .resources.telegram import AsyncTelegramResource
@@ -562,6 +577,13 @@ class GmtWithRawResponse:
562
577
 
563
578
  return PurchasesResourceWithRawResponse(self._client.purchases)
564
579
 
580
+ @cached_property
581
+ def purchases_by_hash(self) -> purchases_by_hash.PurchasesByHashResourceWithRawResponse:
582
+ """Purchase history and management."""
583
+ from .resources.purchases_by_hash import PurchasesByHashResourceWithRawResponse
584
+
585
+ return PurchasesByHashResourceWithRawResponse(self._client.purchases_by_hash)
586
+
565
587
  @cached_property
566
588
  def telegram(self) -> telegram.TelegramResourceWithRawResponse:
567
589
  from .resources.telegram import TelegramResourceWithRawResponse
@@ -642,6 +664,13 @@ class AsyncGmtWithRawResponse:
642
664
 
643
665
  return AsyncPurchasesResourceWithRawResponse(self._client.purchases)
644
666
 
667
+ @cached_property
668
+ def purchases_by_hash(self) -> purchases_by_hash.AsyncPurchasesByHashResourceWithRawResponse:
669
+ """Purchase history and management."""
670
+ from .resources.purchases_by_hash import AsyncPurchasesByHashResourceWithRawResponse
671
+
672
+ return AsyncPurchasesByHashResourceWithRawResponse(self._client.purchases_by_hash)
673
+
645
674
  @cached_property
646
675
  def telegram(self) -> telegram.AsyncTelegramResourceWithRawResponse:
647
676
  from .resources.telegram import AsyncTelegramResourceWithRawResponse
@@ -722,6 +751,13 @@ class GmtWithStreamedResponse:
722
751
 
723
752
  return PurchasesResourceWithStreamingResponse(self._client.purchases)
724
753
 
754
+ @cached_property
755
+ def purchases_by_hash(self) -> purchases_by_hash.PurchasesByHashResourceWithStreamingResponse:
756
+ """Purchase history and management."""
757
+ from .resources.purchases_by_hash import PurchasesByHashResourceWithStreamingResponse
758
+
759
+ return PurchasesByHashResourceWithStreamingResponse(self._client.purchases_by_hash)
760
+
725
761
  @cached_property
726
762
  def telegram(self) -> telegram.TelegramResourceWithStreamingResponse:
727
763
  from .resources.telegram import TelegramResourceWithStreamingResponse
@@ -802,6 +838,13 @@ class AsyncGmtWithStreamedResponse:
802
838
 
803
839
  return AsyncPurchasesResourceWithStreamingResponse(self._client.purchases)
804
840
 
841
+ @cached_property
842
+ def purchases_by_hash(self) -> purchases_by_hash.AsyncPurchasesByHashResourceWithStreamingResponse:
843
+ """Purchase history and management."""
844
+ from .resources.purchases_by_hash import AsyncPurchasesByHashResourceWithStreamingResponse
845
+
846
+ return AsyncPurchasesByHashResourceWithStreamingResponse(self._client.purchases_by_hash)
847
+
805
848
  @cached_property
806
849
  def telegram(self) -> telegram.AsyncTelegramResourceWithStreamingResponse:
807
850
  from .resources.telegram import AsyncTelegramResourceWithStreamingResponse
@@ -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.33.0" # x-release-please-version
4
+ __version__ = "0.34.0" # x-release-please-version
@@ -48,6 +48,14 @@ from .purchases import (
48
48
  PurchasesResourceWithStreamingResponse,
49
49
  AsyncPurchasesResourceWithStreamingResponse,
50
50
  )
51
+ from .purchases_by_hash import (
52
+ PurchasesByHashResource,
53
+ AsyncPurchasesByHashResource,
54
+ PurchasesByHashResourceWithRawResponse,
55
+ AsyncPurchasesByHashResourceWithRawResponse,
56
+ PurchasesByHashResourceWithStreamingResponse,
57
+ AsyncPurchasesByHashResourceWithStreamingResponse,
58
+ )
51
59
 
52
60
  __all__ = [
53
61
  "ServiceResource",
@@ -74,6 +82,12 @@ __all__ = [
74
82
  "AsyncPurchasesResourceWithRawResponse",
75
83
  "PurchasesResourceWithStreamingResponse",
76
84
  "AsyncPurchasesResourceWithStreamingResponse",
85
+ "PurchasesByHashResource",
86
+ "AsyncPurchasesByHashResource",
87
+ "PurchasesByHashResourceWithRawResponse",
88
+ "AsyncPurchasesByHashResourceWithRawResponse",
89
+ "PurchasesByHashResourceWithStreamingResponse",
90
+ "AsyncPurchasesByHashResourceWithStreamingResponse",
77
91
  "TelegramResource",
78
92
  "AsyncTelegramResource",
79
93
  "TelegramResourceWithRawResponse",
@@ -0,0 +1,298 @@
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 purchases_by_hash_request_verification_code_params
8
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
9
+ from .._utils import path_template, 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.purchases_by_hash_retrieve_response import PurchasesByHashRetrieveResponse
20
+ from ..types.purchases_by_hash_request_verification_code_response import PurchasesByHashRequestVerificationCodeResponse
21
+
22
+ __all__ = ["PurchasesByHashResource", "AsyncPurchasesByHashResource"]
23
+
24
+
25
+ class PurchasesByHashResource(SyncAPIResource):
26
+ """Purchase history and management."""
27
+
28
+ @cached_property
29
+ def with_raw_response(self) -> PurchasesByHashResourceWithRawResponse:
30
+ """
31
+ This property can be used as a prefix for any HTTP method call to return
32
+ the raw response object instead of the parsed content.
33
+
34
+ For more information, see https://www.github.com/cameo6/gmt-python-sdk#accessing-raw-response-data-eg-headers
35
+ """
36
+ return PurchasesByHashResourceWithRawResponse(self)
37
+
38
+ @cached_property
39
+ def with_streaming_response(self) -> PurchasesByHashResourceWithStreamingResponse:
40
+ """
41
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
42
+
43
+ For more information, see https://www.github.com/cameo6/gmt-python-sdk#with_streaming_response
44
+ """
45
+ return PurchasesByHashResourceWithStreamingResponse(self)
46
+
47
+ def retrieve(
48
+ self,
49
+ hash: str,
50
+ *,
51
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
52
+ # The extra values given here take precedence over values defined on the client or passed to this method.
53
+ extra_headers: Headers | None = None,
54
+ extra_query: Query | None = None,
55
+ extra_body: Body | None = None,
56
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
57
+ ) -> PurchasesByHashRetrieveResponse:
58
+ """
59
+ Returns detailed information about specific purchase by its hash code including
60
+ verification data if available.
61
+
62
+ **No authentication required.** The hash code serves as the access token.
63
+
64
+ Args:
65
+ hash: Unique hash code of the purchase
66
+
67
+ extra_headers: Send extra headers
68
+
69
+ extra_query: Add additional query parameters to the request
70
+
71
+ extra_body: Add additional JSON properties to the request
72
+
73
+ timeout: Override the client-level default timeout for this request, in seconds
74
+ """
75
+ if not hash:
76
+ raise ValueError(f"Expected a non-empty value for `hash` but received {hash!r}")
77
+ return self._get(
78
+ path_template("/v1/purchases-by-hash/{hash}", hash=hash),
79
+ options=make_request_options(
80
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
81
+ ),
82
+ cast_to=PurchasesByHashRetrieveResponse,
83
+ )
84
+
85
+ def request_verification_code(
86
+ self,
87
+ hash: str,
88
+ *,
89
+ callback_url: str | Omit = omit,
90
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
91
+ # The extra values given here take precedence over values defined on the client or passed to this method.
92
+ extra_headers: Headers | None = None,
93
+ extra_query: Query | None = None,
94
+ extra_body: Body | None = None,
95
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
96
+ ) -> PurchasesByHashRequestVerificationCodeResponse:
97
+ """
98
+ Requests verification code and password from provider using purchase hash code.
99
+ Updates purchase status to SUCCESS.
100
+
101
+ **No authentication required.** The hash code serves as the access token.
102
+
103
+ **Idempotent Operation.** Safe to retry on network errors - will not generate
104
+ duplicate codes.
105
+
106
+ Args:
107
+ hash: Unique hash code of the purchase
108
+
109
+ callback_url: URL to receive webhook notification when code is received. POST request will be
110
+ sent with either `WebhookSuccessPayload` or `WebhookFailedPayload`.
111
+
112
+ **Retry policy.** If your endpoint does not return HTTP 200, webhook will be
113
+ retried up to 3 times with delays: immediately, after 10 seconds, after 30
114
+ seconds. Any non-200 response triggers retry.
115
+
116
+ extra_headers: Send extra headers
117
+
118
+ extra_query: Add additional query parameters to the request
119
+
120
+ extra_body: Add additional JSON properties to the request
121
+
122
+ timeout: Override the client-level default timeout for this request, in seconds
123
+ """
124
+ if not hash:
125
+ raise ValueError(f"Expected a non-empty value for `hash` but received {hash!r}")
126
+ return self._post(
127
+ path_template("/v1/purchases-by-hash/{hash}/request-code", hash=hash),
128
+ body=maybe_transform(
129
+ {"callback_url": callback_url},
130
+ purchases_by_hash_request_verification_code_params.PurchasesByHashRequestVerificationCodeParams,
131
+ ),
132
+ options=make_request_options(
133
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
134
+ ),
135
+ cast_to=PurchasesByHashRequestVerificationCodeResponse,
136
+ )
137
+
138
+
139
+ class AsyncPurchasesByHashResource(AsyncAPIResource):
140
+ """Purchase history and management."""
141
+
142
+ @cached_property
143
+ def with_raw_response(self) -> AsyncPurchasesByHashResourceWithRawResponse:
144
+ """
145
+ This property can be used as a prefix for any HTTP method call to return
146
+ the raw response object instead of the parsed content.
147
+
148
+ For more information, see https://www.github.com/cameo6/gmt-python-sdk#accessing-raw-response-data-eg-headers
149
+ """
150
+ return AsyncPurchasesByHashResourceWithRawResponse(self)
151
+
152
+ @cached_property
153
+ def with_streaming_response(self) -> AsyncPurchasesByHashResourceWithStreamingResponse:
154
+ """
155
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
156
+
157
+ For more information, see https://www.github.com/cameo6/gmt-python-sdk#with_streaming_response
158
+ """
159
+ return AsyncPurchasesByHashResourceWithStreamingResponse(self)
160
+
161
+ async def retrieve(
162
+ self,
163
+ hash: str,
164
+ *,
165
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166
+ # The extra values given here take precedence over values defined on the client or passed to this method.
167
+ extra_headers: Headers | None = None,
168
+ extra_query: Query | None = None,
169
+ extra_body: Body | None = None,
170
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
171
+ ) -> PurchasesByHashRetrieveResponse:
172
+ """
173
+ Returns detailed information about specific purchase by its hash code including
174
+ verification data if available.
175
+
176
+ **No authentication required.** The hash code serves as the access token.
177
+
178
+ Args:
179
+ hash: Unique hash code of the purchase
180
+
181
+ extra_headers: Send extra headers
182
+
183
+ extra_query: Add additional query parameters to the request
184
+
185
+ extra_body: Add additional JSON properties to the request
186
+
187
+ timeout: Override the client-level default timeout for this request, in seconds
188
+ """
189
+ if not hash:
190
+ raise ValueError(f"Expected a non-empty value for `hash` but received {hash!r}")
191
+ return await self._get(
192
+ path_template("/v1/purchases-by-hash/{hash}", hash=hash),
193
+ options=make_request_options(
194
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
195
+ ),
196
+ cast_to=PurchasesByHashRetrieveResponse,
197
+ )
198
+
199
+ async def request_verification_code(
200
+ self,
201
+ hash: str,
202
+ *,
203
+ callback_url: str | Omit = omit,
204
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
205
+ # The extra values given here take precedence over values defined on the client or passed to this method.
206
+ extra_headers: Headers | None = None,
207
+ extra_query: Query | None = None,
208
+ extra_body: Body | None = None,
209
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
210
+ ) -> PurchasesByHashRequestVerificationCodeResponse:
211
+ """
212
+ Requests verification code and password from provider using purchase hash code.
213
+ Updates purchase status to SUCCESS.
214
+
215
+ **No authentication required.** The hash code serves as the access token.
216
+
217
+ **Idempotent Operation.** Safe to retry on network errors - will not generate
218
+ duplicate codes.
219
+
220
+ Args:
221
+ hash: Unique hash code of the purchase
222
+
223
+ callback_url: URL to receive webhook notification when code is received. POST request will be
224
+ sent with either `WebhookSuccessPayload` or `WebhookFailedPayload`.
225
+
226
+ **Retry policy.** If your endpoint does not return HTTP 200, webhook will be
227
+ retried up to 3 times with delays: immediately, after 10 seconds, after 30
228
+ seconds. Any non-200 response triggers retry.
229
+
230
+ extra_headers: Send extra headers
231
+
232
+ extra_query: Add additional query parameters to the request
233
+
234
+ extra_body: Add additional JSON properties to the request
235
+
236
+ timeout: Override the client-level default timeout for this request, in seconds
237
+ """
238
+ if not hash:
239
+ raise ValueError(f"Expected a non-empty value for `hash` but received {hash!r}")
240
+ return await self._post(
241
+ path_template("/v1/purchases-by-hash/{hash}/request-code", hash=hash),
242
+ body=await async_maybe_transform(
243
+ {"callback_url": callback_url},
244
+ purchases_by_hash_request_verification_code_params.PurchasesByHashRequestVerificationCodeParams,
245
+ ),
246
+ options=make_request_options(
247
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
248
+ ),
249
+ cast_to=PurchasesByHashRequestVerificationCodeResponse,
250
+ )
251
+
252
+
253
+ class PurchasesByHashResourceWithRawResponse:
254
+ def __init__(self, purchases_by_hash: PurchasesByHashResource) -> None:
255
+ self._purchases_by_hash = purchases_by_hash
256
+
257
+ self.retrieve = to_raw_response_wrapper(
258
+ purchases_by_hash.retrieve,
259
+ )
260
+ self.request_verification_code = to_raw_response_wrapper(
261
+ purchases_by_hash.request_verification_code,
262
+ )
263
+
264
+
265
+ class AsyncPurchasesByHashResourceWithRawResponse:
266
+ def __init__(self, purchases_by_hash: AsyncPurchasesByHashResource) -> None:
267
+ self._purchases_by_hash = purchases_by_hash
268
+
269
+ self.retrieve = async_to_raw_response_wrapper(
270
+ purchases_by_hash.retrieve,
271
+ )
272
+ self.request_verification_code = async_to_raw_response_wrapper(
273
+ purchases_by_hash.request_verification_code,
274
+ )
275
+
276
+
277
+ class PurchasesByHashResourceWithStreamingResponse:
278
+ def __init__(self, purchases_by_hash: PurchasesByHashResource) -> None:
279
+ self._purchases_by_hash = purchases_by_hash
280
+
281
+ self.retrieve = to_streamed_response_wrapper(
282
+ purchases_by_hash.retrieve,
283
+ )
284
+ self.request_verification_code = to_streamed_response_wrapper(
285
+ purchases_by_hash.request_verification_code,
286
+ )
287
+
288
+
289
+ class AsyncPurchasesByHashResourceWithStreamingResponse:
290
+ def __init__(self, purchases_by_hash: AsyncPurchasesByHashResource) -> None:
291
+ self._purchases_by_hash = purchases_by_hash
292
+
293
+ self.retrieve = async_to_streamed_response_wrapper(
294
+ purchases_by_hash.retrieve,
295
+ )
296
+ self.request_verification_code = async_to_streamed_response_wrapper(
297
+ purchases_by_hash.request_verification_code,
298
+ )
@@ -26,6 +26,7 @@ from .profile_unbind_telegram_response import ProfileUnbindTelegramResponse as P
26
26
  from .service_get_server_time_response import ServiceGetServerTimeResponse as ServiceGetServerTimeResponse
27
27
  from .telegram_get_premium_price_params import TelegramGetPremiumPriceParams as TelegramGetPremiumPriceParams
28
28
  from .telegram_get_stars_price_response import TelegramGetStarsPriceResponse as TelegramGetStarsPriceResponse
29
+ from .purchases_by_hash_retrieve_response import PurchasesByHashRetrieveResponse as PurchasesByHashRetrieveResponse
29
30
  from .telegram_get_premium_price_response import TelegramGetPremiumPriceResponse as TelegramGetPremiumPriceResponse
30
31
  from .purchase_request_verification_code_params import (
31
32
  PurchaseRequestVerificationCodeParams as PurchaseRequestVerificationCodeParams,
@@ -33,3 +34,9 @@ from .purchase_request_verification_code_params import (
33
34
  from .purchase_request_verification_code_response import (
34
35
  PurchaseRequestVerificationCodeResponse as PurchaseRequestVerificationCodeResponse,
35
36
  )
37
+ from .purchases_by_hash_request_verification_code_params import (
38
+ PurchasesByHashRequestVerificationCodeParams as PurchasesByHashRequestVerificationCodeParams,
39
+ )
40
+ from .purchases_by_hash_request_verification_code_response import (
41
+ PurchasesByHashRequestVerificationCodeResponse as PurchasesByHashRequestVerificationCodeResponse,
42
+ )
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["PurchasesByHashRequestVerificationCodeParams"]
8
+
9
+
10
+ class PurchasesByHashRequestVerificationCodeParams(TypedDict, total=False):
11
+ callback_url: str
12
+ """URL to receive webhook notification when code is received.
13
+
14
+ POST request will be sent with either `WebhookSuccessPayload` or
15
+ `WebhookFailedPayload`.
16
+
17
+ **Retry policy.** If your endpoint does not return HTTP 200, webhook will be
18
+ retried up to 3 times with delays: immediately, after 10 seconds, after 30
19
+ seconds. Any non-200 response triggers retry.
20
+ """