agentmail 2.0.3__tar.gz → 2.0.4__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 (455) hide show
  1. {agentmail-2.0.3 → agentmail-2.0.4}/PKG-INFO +1 -1
  2. {agentmail-2.0.3 → agentmail-2.0.4}/pyproject.toml +1 -1
  3. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/__init__.py +18 -0
  4. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/client_wrapper.py +2 -2
  5. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/metrics/client.py +170 -0
  6. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/metrics/raw_client.py +204 -0
  7. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/webhooks/client.py +18 -2
  8. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/webhooks/raw_client.py +18 -0
  9. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/__init__.py +18 -0
  10. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/client.py +160 -0
  11. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/raw_client.py +200 -0
  12. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/__init__.py +18 -0
  13. agentmail-2.0.4/src/agentmail/metrics/types/query_rates_response.py +8 -0
  14. agentmail-2.0.4/src/agentmail/metrics/types/rate_period.py +3 -0
  15. agentmail-2.0.4/src/agentmail/metrics/types/rate_point.py +36 -0
  16. agentmail-2.0.4/src/agentmail/metrics/types/rate_type.py +5 -0
  17. agentmail-2.0.4/src/agentmail/metrics/types/rate_types.py +7 -0
  18. agentmail-2.0.4/src/agentmail/metrics/types/window.py +3 -0
  19. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/metrics/client.py +170 -0
  20. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/metrics/raw_client.py +204 -0
  21. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/webhooks/client.py +18 -0
  22. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/webhooks/raw_client.py +18 -0
  23. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/client.py +18 -0
  24. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/raw_client.py +18 -0
  25. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/update_inbox_webhook_request.py +10 -1
  26. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/update_pod_webhook_request.py +2 -2
  27. {agentmail-2.0.3 → agentmail-2.0.4}/LICENSE +0 -0
  28. {agentmail-2.0.3 → agentmail-2.0.4}/README.md +0 -0
  29. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/__init__.py +0 -0
  30. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/client.py +0 -0
  31. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/raw_client.py +0 -0
  32. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/__init__.py +0 -0
  33. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/account.py +0 -0
  34. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/account_id.py +0 -0
  35. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/account_status.py +0 -0
  36. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/list_accounts_response.py +0 -0
  37. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/provider_id.py +0 -0
  38. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/update_account_request.py +0 -0
  39. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/accounts/types/update_account_status.py +0 -0
  40. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/__init__.py +0 -0
  41. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/client.py +0 -0
  42. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/raw_client.py +0 -0
  43. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/types/__init__.py +0 -0
  44. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/types/agent_signup_request.py +0 -0
  45. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/types/agent_signup_response.py +0 -0
  46. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/types/agent_verify_request.py +0 -0
  47. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/agent/types/agent_verify_response.py +0 -0
  48. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/__init__.py +0 -0
  49. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/client.py +0 -0
  50. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/raw_client.py +0 -0
  51. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/__init__.py +0 -0
  52. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/accept_disclosure.py +0 -0
  53. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key.py +0 -0
  54. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key_creator.py +0 -0
  55. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key_id.py +0 -0
  56. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key_mutable_fields.py +0 -0
  57. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key_permissions.py +0 -0
  58. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/api_key_type.py +0 -0
  59. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/auth_token.py +0 -0
  60. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/bearer_api_key.py +0 -0
  61. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/create_api_key_request.py +0 -0
  62. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/create_api_key_response.py +0 -0
  63. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/create_api_key_result.py +0 -0
  64. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/create_bearer_api_key_request.py +0 -0
  65. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/create_public_key_request.py +0 -0
  66. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/created_at.py +0 -0
  67. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/expires_at.py +0 -0
  68. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/inbox_scope_id.py +0 -0
  69. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/list_api_keys_response.py +0 -0
  70. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/name.py +0 -0
  71. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/pod_scope_id.py +0 -0
  72. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/prefix.py +0 -0
  73. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_jwk.py +0 -0
  74. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_jwk_coordinate.py +0 -0
  75. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_key_client_id.py +0 -0
  76. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_key_credential.py +0 -0
  77. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_key_material.py +0 -0
  78. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/public_key_status.py +0 -0
  79. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/update_api_key_request.py +0 -0
  80. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/updated_at.py +0 -0
  81. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/api_keys/types/used_at.py +0 -0
  82. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/__init__.py +0 -0
  83. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/__init__.py +0 -0
  84. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment.py +0 -0
  85. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_content_disposition.py +0 -0
  86. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_content_id.py +0 -0
  87. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_content_type.py +0 -0
  88. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_filename.py +0 -0
  89. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_id.py +0 -0
  90. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_response.py +0 -0
  91. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/attachment_size.py +0 -0
  92. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/attachments/types/send_attachment.py +0 -0
  93. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/__init__.py +0 -0
  94. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/client.py +0 -0
  95. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/raw_client.py +0 -0
  96. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/types/__init__.py +0 -0
  97. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/types/identity.py +0 -0
  98. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/auth/types/scope_type.py +0 -0
  99. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/client.py +0 -0
  100. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/__init__.py +0 -0
  101. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/api_error.py +0 -0
  102. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/datetime_utils.py +0 -0
  103. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/events.py +0 -0
  104. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/file.py +0 -0
  105. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/force_multipart.py +0 -0
  106. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_client.py +0 -0
  107. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_response.py +0 -0
  108. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_sse/__init__.py +0 -0
  109. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_sse/_api.py +0 -0
  110. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_sse/_decoders.py +0 -0
  111. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_sse/_exceptions.py +0 -0
  112. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/http_sse/_models.py +0 -0
  113. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/jsonable_encoder.py +0 -0
  114. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/logging.py +0 -0
  115. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/parse_error.py +0 -0
  116. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/pydantic_utilities.py +0 -0
  117. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/query_encoder.py +0 -0
  118. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/remove_none_from_dict.py +0 -0
  119. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/request_options.py +0 -0
  120. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/serialization.py +0 -0
  121. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/unchecked_base_model.py +0 -0
  122. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/core/websocket_compat.py +0 -0
  123. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/__init__.py +0 -0
  124. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/client.py +0 -0
  125. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/raw_client.py +0 -0
  126. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/__init__.py +0 -0
  127. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/client_id.py +0 -0
  128. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/create_domain_request.py +0 -0
  129. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/domain.py +0 -0
  130. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/domain_id.py +0 -0
  131. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/domain_item.py +0 -0
  132. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/domain_name.py +0 -0
  133. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/feedback_enabled.py +0 -0
  134. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/get_setup_link_response.py +0 -0
  135. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/list_domains_response.py +0 -0
  136. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/record_status.py +0 -0
  137. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/record_type.py +0 -0
  138. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/status.py +0 -0
  139. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/subdomains_enabled.py +0 -0
  140. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/tracking_enabled.py +0 -0
  141. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/update_domain_request.py +0 -0
  142. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/verification_record.py +0 -0
  143. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/domains/types/verification_status.py +0 -0
  144. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/__init__.py +0 -0
  145. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/client.py +0 -0
  146. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/raw_client.py +0 -0
  147. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/__init__.py +0 -0
  148. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/create_draft_request.py +0 -0
  149. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft.py +0 -0
  150. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_attachments.py +0 -0
  151. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_bcc.py +0 -0
  152. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_cc.py +0 -0
  153. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_client_id.py +0 -0
  154. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_forward_of.py +0 -0
  155. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_html.py +0 -0
  156. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_id.py +0 -0
  157. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_in_reply_to.py +0 -0
  158. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_item.py +0 -0
  159. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_labels.py +0 -0
  160. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_preview.py +0 -0
  161. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_reply_all.py +0 -0
  162. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_reply_to.py +0 -0
  163. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_send_at.py +0 -0
  164. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_send_status.py +0 -0
  165. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_subject.py +0 -0
  166. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_text.py +0 -0
  167. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_to.py +0 -0
  168. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/draft_updated_at.py +0 -0
  169. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/list_drafts_response.py +0 -0
  170. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/drafts/types/update_draft_request.py +0 -0
  171. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/environment.py +0 -0
  172. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/__init__.py +0 -0
  173. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/conflict_error.py +0 -0
  174. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/is_taken_error.py +0 -0
  175. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/not_found_error.py +0 -0
  176. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/unprocessable_error.py +0 -0
  177. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/errors/validation_error.py +0 -0
  178. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/__init__.py +0 -0
  179. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/__init__.py +0 -0
  180. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/bounce.py +0 -0
  181. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/complaint.py +0 -0
  182. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/delivery.py +0 -0
  183. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/domain_verified_event.py +0 -0
  184. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/event_id.py +0 -0
  185. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/event_type.py +0 -0
  186. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/event_types.py +0 -0
  187. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/inbox_ids.py +0 -0
  188. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_bounced_event.py +0 -0
  189. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_complained_event.py +0 -0
  190. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_delivered_event.py +0 -0
  191. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_opened_event.py +0 -0
  192. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_received_event.py +0 -0
  193. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_received_event_type.py +0 -0
  194. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_rejected_event.py +0 -0
  195. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/message_sent_event.py +0 -0
  196. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/open.py +0 -0
  197. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/pod_ids.py +0 -0
  198. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/recipient.py +0 -0
  199. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/reject.py +0 -0
  200. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/send.py +0 -0
  201. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/events/types/timestamp.py +0 -0
  202. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/__init__.py +0 -0
  203. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/types/__init__.py +0 -0
  204. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/types/inbox_event.py +0 -0
  205. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/types/inbox_event_id.py +0 -0
  206. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/types/inbox_event_type.py +0 -0
  207. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inbox_events/types/list_inbox_events_response.py +0 -0
  208. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/__init__.py +0 -0
  209. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/accounts/__init__.py +0 -0
  210. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/accounts/client.py +0 -0
  211. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/accounts/raw_client.py +0 -0
  212. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/api_keys/__init__.py +0 -0
  213. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/api_keys/client.py +0 -0
  214. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/api_keys/raw_client.py +0 -0
  215. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/client.py +0 -0
  216. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/drafts/__init__.py +0 -0
  217. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/drafts/client.py +0 -0
  218. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/drafts/raw_client.py +0 -0
  219. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/events/__init__.py +0 -0
  220. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/events/client.py +0 -0
  221. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/events/raw_client.py +0 -0
  222. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/lists/__init__.py +0 -0
  223. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/lists/client.py +0 -0
  224. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/lists/raw_client.py +0 -0
  225. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/messages/__init__.py +0 -0
  226. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/messages/client.py +0 -0
  227. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/messages/raw_client.py +0 -0
  228. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/metrics/__init__.py +0 -0
  229. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/raw_client.py +0 -0
  230. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/threads/__init__.py +0 -0
  231. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/threads/client.py +0 -0
  232. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/threads/raw_client.py +0 -0
  233. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/__init__.py +0 -0
  234. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/authorize_inbox_request.py +0 -0
  235. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/authorize_inbox_response.py +0 -0
  236. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/client_id.py +0 -0
  237. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/create_inbox_request.py +0 -0
  238. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/display_name.py +0 -0
  239. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/email.py +0 -0
  240. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/inbox.py +0 -0
  241. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/inbox_id.py +0 -0
  242. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/list_inboxes_response.py +0 -0
  243. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/metadata.py +0 -0
  244. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/metadata_value.py +0 -0
  245. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/search_inboxes_response.py +0 -0
  246. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/update_inbox_request.py +0 -0
  247. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/types/update_metadata.py +0 -0
  248. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/inboxes/webhooks/__init__.py +0 -0
  249. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/__init__.py +0 -0
  250. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/client.py +0 -0
  251. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/raw_client.py +0 -0
  252. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/__init__.py +0 -0
  253. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/create_list_entry_request.py +0 -0
  254. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/direction.py +0 -0
  255. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/entry_type.py +0 -0
  256. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/list_entry.py +0 -0
  257. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/list_entry_base.py +0 -0
  258. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/list_list_entries_response.py +0 -0
  259. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/list_type.py +0 -0
  260. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/pod_list_entry.py +0 -0
  261. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/lists/types/pod_list_list_entries_response.py +0 -0
  262. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/__init__.py +0 -0
  263. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/errors/__init__.py +0 -0
  264. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/errors/message_rejected_error.py +0 -0
  265. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/__init__.py +0 -0
  266. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/addresses.py +0 -0
  267. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_get_messages_message_ids.py +0 -0
  268. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_get_messages_request.py +0 -0
  269. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_get_messages_response.py +0 -0
  270. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_update_messages_message_ids.py +0 -0
  271. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_update_messages_request.py +0 -0
  272. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/batch_update_messages_response.py +0 -0
  273. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/list_messages_response.py +0 -0
  274. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message.py +0 -0
  275. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_attachments.py +0 -0
  276. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_bcc.py +0 -0
  277. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_cc.py +0 -0
  278. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_created_at.py +0 -0
  279. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_from.py +0 -0
  280. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_headers.py +0 -0
  281. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_html.py +0 -0
  282. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_id.py +0 -0
  283. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_in_reply_to.py +0 -0
  284. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_item.py +0 -0
  285. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_labels.py +0 -0
  286. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_preview.py +0 -0
  287. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_references.py +0 -0
  288. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_reply_to.py +0 -0
  289. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_size.py +0 -0
  290. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_subject.py +0 -0
  291. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_text.py +0 -0
  292. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_timestamp.py +0 -0
  293. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_to.py +0 -0
  294. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/message_updated_at.py +0 -0
  295. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/raw_message_response.py +0 -0
  296. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/reply_all.py +0 -0
  297. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/reply_all_message_request.py +0 -0
  298. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/reply_to_message_request.py +0 -0
  299. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/search_message_highlights.py +0 -0
  300. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/search_message_item.py +0 -0
  301. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/search_messages_response.py +0 -0
  302. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_attachments.py +0 -0
  303. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_bcc.py +0 -0
  304. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_cc.py +0 -0
  305. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_headers.py +0 -0
  306. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_reply_to.py +0 -0
  307. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_request.py +0 -0
  308. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_response.py +0 -0
  309. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/send_message_to.py +0 -0
  310. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/track_opens.py +0 -0
  311. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/update_message_labels.py +0 -0
  312. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/update_message_request.py +0 -0
  313. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/messages/types/update_message_response.py +0 -0
  314. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/descending.py +0 -0
  315. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/end.py +0 -0
  316. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/metric_bucket.py +0 -0
  317. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/metric_event_type.py +0 -0
  318. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/metric_event_types.py +0 -0
  319. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/metric_limit.py +0 -0
  320. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/period.py +0 -0
  321. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/query_metrics_response.py +0 -0
  322. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/query_usage_response.py +0 -0
  323. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/start.py +0 -0
  324. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/usage_point.py +0 -0
  325. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/usage_type.py +0 -0
  326. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/metrics/types/usage_types.py +0 -0
  327. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/organizations/__init__.py +0 -0
  328. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/organizations/client.py +0 -0
  329. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/organizations/raw_client.py +0 -0
  330. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/organizations/types/__init__.py +0 -0
  331. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/organizations/types/organization.py +0 -0
  332. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/__init__.py +0 -0
  333. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/accounts/__init__.py +0 -0
  334. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/accounts/client.py +0 -0
  335. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/accounts/raw_client.py +0 -0
  336. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/api_keys/__init__.py +0 -0
  337. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/api_keys/client.py +0 -0
  338. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/api_keys/raw_client.py +0 -0
  339. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/client.py +0 -0
  340. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/domains/__init__.py +0 -0
  341. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/domains/client.py +0 -0
  342. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/domains/raw_client.py +0 -0
  343. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/drafts/__init__.py +0 -0
  344. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/drafts/client.py +0 -0
  345. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/drafts/raw_client.py +0 -0
  346. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/inboxes/__init__.py +0 -0
  347. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/inboxes/client.py +0 -0
  348. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/inboxes/raw_client.py +0 -0
  349. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/lists/__init__.py +0 -0
  350. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/lists/client.py +0 -0
  351. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/lists/raw_client.py +0 -0
  352. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/metrics/__init__.py +0 -0
  353. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/raw_client.py +0 -0
  354. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/threads/__init__.py +0 -0
  355. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/threads/client.py +0 -0
  356. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/threads/raw_client.py +0 -0
  357. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/__init__.py +0 -0
  358. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/client_id.py +0 -0
  359. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/create_pod_request.py +0 -0
  360. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/list_pods_response.py +0 -0
  361. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/name.py +0 -0
  362. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/pod.py +0 -0
  363. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/types/pod_id.py +0 -0
  364. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/pods/webhooks/__init__.py +0 -0
  365. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/__init__.py +0 -0
  366. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/client.py +0 -0
  367. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/raw_client.py +0 -0
  368. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/__init__.py +0 -0
  369. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/connect_accepted.py +0 -0
  370. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/connect_inbox_id.py +0 -0
  371. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/connect_provider_body.py +0 -0
  372. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/list_provider_accounts_response.py +0 -0
  373. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/list_providers_response.py +0 -0
  374. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/magic_url.py +0 -0
  375. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/provider.py +0 -0
  376. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/providers/types/search_providers_response.py +0 -0
  377. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/py.typed +0 -0
  378. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/__init__.py +0 -0
  379. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/client.py +0 -0
  380. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/raw_client.py +0 -0
  381. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/__init__.py +0 -0
  382. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/list_threads_response.py +0 -0
  383. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/search_thread_highlights.py +0 -0
  384. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/search_thread_item.py +0 -0
  385. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/search_threads_response.py +0 -0
  386. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread.py +0 -0
  387. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_attachments.py +0 -0
  388. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_created_at.py +0 -0
  389. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_id.py +0 -0
  390. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_item.py +0 -0
  391. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_labels.py +0 -0
  392. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_last_message_id.py +0 -0
  393. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_message_count.py +0 -0
  394. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_preview.py +0 -0
  395. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_received_timestamp.py +0 -0
  396. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_recipients.py +0 -0
  397. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_senders.py +0 -0
  398. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_sent_timestamp.py +0 -0
  399. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_size.py +0 -0
  400. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_subject.py +0 -0
  401. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_timestamp.py +0 -0
  402. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/thread_updated_at.py +0 -0
  403. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/update_thread_request.py +0 -0
  404. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/threads/types/update_thread_response.py +0 -0
  405. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/__init__.py +0 -0
  406. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/after.py +0 -0
  407. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/ascending.py +0 -0
  408. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/before.py +0 -0
  409. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/count.py +0 -0
  410. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_code.py +0 -0
  411. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_docs.py +0 -0
  412. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_fix.py +0 -0
  413. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_message.py +0 -0
  414. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_name.py +0 -0
  415. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/error_response.py +0 -0
  416. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/include_blocked.py +0 -0
  417. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/include_spam.py +0 -0
  418. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/include_trash.py +0 -0
  419. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/include_unauthenticated.py +0 -0
  420. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/labels.py +0 -0
  421. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/limit.py +0 -0
  422. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/organization_id.py +0 -0
  423. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/page_token.py +0 -0
  424. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/query.py +0 -0
  425. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/types/validation_error_response.py +0 -0
  426. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/version.py +0 -0
  427. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/__init__.py +0 -0
  428. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/events/__init__.py +0 -0
  429. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/events/types/__init__.py +0 -0
  430. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/events/types/svix_id.py +0 -0
  431. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/events/types/svix_signature.py +0 -0
  432. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/events/types/svix_timestamp.py +0 -0
  433. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/__init__.py +0 -0
  434. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/client_id.py +0 -0
  435. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/create_inbox_webhook_request.py +0 -0
  436. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/create_pod_webhook_request.py +0 -0
  437. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/create_webhook_event_types.py +0 -0
  438. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/create_webhook_request.py +0 -0
  439. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/list_webhooks_response.py +0 -0
  440. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/update_webhook_event_types.py +0 -0
  441. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/update_webhook_headers_request.py +0 -0
  442. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/update_webhook_request.py +0 -0
  443. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/url.py +0 -0
  444. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/webhook.py +0 -0
  445. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/webhook_header_names_response.py +0 -0
  446. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/webhook_headers.py +0 -0
  447. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/webhooks/types/webhook_id.py +0 -0
  448. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/__init__.py +0 -0
  449. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/client.py +0 -0
  450. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/raw_client.py +0 -0
  451. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/socket_client.py +0 -0
  452. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/types/__init__.py +0 -0
  453. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/types/error.py +0 -0
  454. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/types/subscribe.py +0 -0
  455. {agentmail-2.0.3 → agentmail-2.0.4}/src/agentmail/websockets/types/subscribed.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agentmail
3
- Version: 2.0.3
3
+ Version: 2.0.4
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.8,<4.0
@@ -4,7 +4,7 @@ dynamic = ["version"]
4
4
 
5
5
  [tool.poetry]
6
6
  name = "agentmail"
7
- version = "2.0.3"
7
+ version = "2.0.4"
8
8
  description = ""
9
9
  readme = "README.md"
10
10
  authors = []
@@ -246,11 +246,17 @@ if typing.TYPE_CHECKING:
246
246
  MetricLimit,
247
247
  Period,
248
248
  QueryMetricsResponse,
249
+ QueryRatesResponse,
249
250
  QueryUsageResponse,
251
+ RatePeriod,
252
+ RatePoint,
253
+ RateType,
254
+ RateTypes,
250
255
  Start,
251
256
  UsagePoint,
252
257
  UsageType,
253
258
  UsageTypes,
259
+ Window,
254
260
  )
255
261
  from .organizations import Organization
256
262
  from .providers import (
@@ -471,7 +477,12 @@ _dynamic_imports: typing.Dict[str, str] = {
471
477
  "PublicKeyStatus": ".api_keys",
472
478
  "Query": ".types",
473
479
  "QueryMetricsResponse": ".metrics",
480
+ "QueryRatesResponse": ".metrics",
474
481
  "QueryUsageResponse": ".metrics",
482
+ "RatePeriod": ".metrics",
483
+ "RatePoint": ".metrics",
484
+ "RateType": ".metrics",
485
+ "RateTypes": ".metrics",
475
486
  "RawMessageResponse": ".messages",
476
487
  "Recipient": ".events",
477
488
  "RecordStatus": ".domains",
@@ -543,6 +554,7 @@ _dynamic_imports: typing.Dict[str, str] = {
543
554
  "ValidationErrorResponse": ".types",
544
555
  "VerificationRecord": ".domains",
545
556
  "VerificationStatus": ".domains",
557
+ "Window": ".metrics",
546
558
  "__version__": ".version",
547
559
  "accounts": ".accounts",
548
560
  "agent": ".agent",
@@ -768,7 +780,12 @@ __all__ = [
768
780
  "PublicKeyStatus",
769
781
  "Query",
770
782
  "QueryMetricsResponse",
783
+ "QueryRatesResponse",
771
784
  "QueryUsageResponse",
785
+ "RatePeriod",
786
+ "RatePoint",
787
+ "RateType",
788
+ "RateTypes",
772
789
  "RawMessageResponse",
773
790
  "Recipient",
774
791
  "RecordStatus",
@@ -840,6 +857,7 @@ __all__ = [
840
857
  "ValidationErrorResponse",
841
858
  "VerificationRecord",
842
859
  "VerificationStatus",
860
+ "Window",
843
861
  "__version__",
844
862
  "accounts",
845
863
  "agent",
@@ -28,12 +28,12 @@ class BaseClientWrapper:
28
28
  import platform
29
29
 
30
30
  headers: typing.Dict[str, str] = {
31
- "User-Agent": "agentmail/2.0.3",
31
+ "User-Agent": "agentmail/2.0.4",
32
32
  "X-Fern-Language": "Python",
33
33
  "X-Fern-Runtime": f"python/{platform.python_version()}",
34
34
  "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
35
35
  "X-Fern-SDK-Name": "agentmail",
36
- "X-Fern-SDK-Version": "2.0.3",
36
+ "X-Fern-SDK-Version": "2.0.4",
37
37
  **(self.get_custom_headers() or {}),
38
38
  }
39
39
  api_key = self._get_api_key()
@@ -10,9 +10,13 @@ from ...metrics.types.metric_event_types import MetricEventTypes
10
10
  from ...metrics.types.metric_limit import MetricLimit
11
11
  from ...metrics.types.period import Period
12
12
  from ...metrics.types.query_metrics_response import QueryMetricsResponse
13
+ from ...metrics.types.query_rates_response import QueryRatesResponse
13
14
  from ...metrics.types.query_usage_response import QueryUsageResponse
15
+ from ...metrics.types.rate_period import RatePeriod
16
+ from ...metrics.types.rate_types import RateTypes
14
17
  from ...metrics.types.start import Start
15
18
  from ...metrics.types.usage_types import UsageTypes
19
+ from ...metrics.types.window import Window
16
20
  from ..types.inbox_id import InboxId
17
21
  from .raw_client import AsyncRawMetricsClient, RawMetricsClient
18
22
 
@@ -169,6 +173,85 @@ class MetricsClient:
169
173
  )
170
174
  return _response.data
171
175
 
176
+ def query_rates(
177
+ self,
178
+ inbox_id: InboxId,
179
+ *,
180
+ rate_types: typing.Optional[RateTypes] = None,
181
+ start: typing.Optional[Start] = None,
182
+ end: typing.Optional[End] = None,
183
+ period: typing.Optional[RatePeriod] = None,
184
+ window: typing.Optional[Window] = None,
185
+ limit: typing.Optional[MetricLimit] = None,
186
+ descending: typing.Optional[Descending] = None,
187
+ request_options: typing.Optional[RequestOptions] = None,
188
+ ) -> QueryRatesResponse:
189
+ """
190
+ Rolling bounce and complaint rates for the inbox. At each `period`
191
+ grid point, the bounced (or complained) messages over the preceding
192
+ `window` divided by the messages sent over the same window, with the
193
+ send count alongside. Account moderation evaluates the organization-wide
194
+ rate, so use the organization endpoint to see the number it acts on;
195
+ the inbox view shows which inboxes contribute. Defaults to the rolling
196
+ 24-hour rate sampled hourly over the last day; `start` must be within
197
+ the last 90 days, `window` must be a whole multiple of `period`, and
198
+ the range plus window divided by `period` must not exceed 1000
199
+ buckets.
200
+
201
+ **CLI:**
202
+ ```bash
203
+ agentmail inboxes metrics query-rates --inbox-id <inbox_id>
204
+ ```
205
+
206
+ Parameters
207
+ ----------
208
+ inbox_id : InboxId
209
+
210
+ rate_types : typing.Optional[RateTypes]
211
+
212
+ start : typing.Optional[Start]
213
+
214
+ end : typing.Optional[End]
215
+
216
+ period : typing.Optional[RatePeriod]
217
+
218
+ window : typing.Optional[Window]
219
+
220
+ limit : typing.Optional[MetricLimit]
221
+
222
+ descending : typing.Optional[Descending]
223
+
224
+ request_options : typing.Optional[RequestOptions]
225
+ Request-specific configuration.
226
+
227
+ Returns
228
+ -------
229
+ QueryRatesResponse
230
+
231
+ Examples
232
+ --------
233
+ from agentmail import AgentMail
234
+
235
+ client = AgentMail(
236
+ api_key="YOUR_API_KEY",
237
+ )
238
+ client.inboxes.metrics.query_rates(
239
+ inbox_id="inbox_id",
240
+ )
241
+ """
242
+ _response = self._raw_client.query_rates(
243
+ inbox_id,
244
+ rate_types=rate_types,
245
+ start=start,
246
+ end=end,
247
+ period=period,
248
+ window=window,
249
+ limit=limit,
250
+ descending=descending,
251
+ request_options=request_options,
252
+ )
253
+ return _response.data
254
+
172
255
 
173
256
  class AsyncMetricsClient:
174
257
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -337,3 +420,90 @@ class AsyncMetricsClient:
337
420
  request_options=request_options,
338
421
  )
339
422
  return _response.data
423
+
424
+ async def query_rates(
425
+ self,
426
+ inbox_id: InboxId,
427
+ *,
428
+ rate_types: typing.Optional[RateTypes] = None,
429
+ start: typing.Optional[Start] = None,
430
+ end: typing.Optional[End] = None,
431
+ period: typing.Optional[RatePeriod] = None,
432
+ window: typing.Optional[Window] = None,
433
+ limit: typing.Optional[MetricLimit] = None,
434
+ descending: typing.Optional[Descending] = None,
435
+ request_options: typing.Optional[RequestOptions] = None,
436
+ ) -> QueryRatesResponse:
437
+ """
438
+ Rolling bounce and complaint rates for the inbox. At each `period`
439
+ grid point, the bounced (or complained) messages over the preceding
440
+ `window` divided by the messages sent over the same window, with the
441
+ send count alongside. Account moderation evaluates the organization-wide
442
+ rate, so use the organization endpoint to see the number it acts on;
443
+ the inbox view shows which inboxes contribute. Defaults to the rolling
444
+ 24-hour rate sampled hourly over the last day; `start` must be within
445
+ the last 90 days, `window` must be a whole multiple of `period`, and
446
+ the range plus window divided by `period` must not exceed 1000
447
+ buckets.
448
+
449
+ **CLI:**
450
+ ```bash
451
+ agentmail inboxes metrics query-rates --inbox-id <inbox_id>
452
+ ```
453
+
454
+ Parameters
455
+ ----------
456
+ inbox_id : InboxId
457
+
458
+ rate_types : typing.Optional[RateTypes]
459
+
460
+ start : typing.Optional[Start]
461
+
462
+ end : typing.Optional[End]
463
+
464
+ period : typing.Optional[RatePeriod]
465
+
466
+ window : typing.Optional[Window]
467
+
468
+ limit : typing.Optional[MetricLimit]
469
+
470
+ descending : typing.Optional[Descending]
471
+
472
+ request_options : typing.Optional[RequestOptions]
473
+ Request-specific configuration.
474
+
475
+ Returns
476
+ -------
477
+ QueryRatesResponse
478
+
479
+ Examples
480
+ --------
481
+ import asyncio
482
+
483
+ from agentmail import AsyncAgentMail
484
+
485
+ client = AsyncAgentMail(
486
+ api_key="YOUR_API_KEY",
487
+ )
488
+
489
+
490
+ async def main() -> None:
491
+ await client.inboxes.metrics.query_rates(
492
+ inbox_id="inbox_id",
493
+ )
494
+
495
+
496
+ asyncio.run(main())
497
+ """
498
+ _response = await self._raw_client.query_rates(
499
+ inbox_id,
500
+ rate_types=rate_types,
501
+ start=start,
502
+ end=end,
503
+ period=period,
504
+ window=window,
505
+ limit=limit,
506
+ descending=descending,
507
+ request_options=request_options,
508
+ )
509
+ return _response.data
@@ -18,9 +18,13 @@ from ...metrics.types.metric_event_types import MetricEventTypes
18
18
  from ...metrics.types.metric_limit import MetricLimit
19
19
  from ...metrics.types.period import Period
20
20
  from ...metrics.types.query_metrics_response import QueryMetricsResponse
21
+ from ...metrics.types.query_rates_response import QueryRatesResponse
21
22
  from ...metrics.types.query_usage_response import QueryUsageResponse
23
+ from ...metrics.types.rate_period import RatePeriod
24
+ from ...metrics.types.rate_types import RateTypes
22
25
  from ...metrics.types.start import Start
23
26
  from ...metrics.types.usage_types import UsageTypes
27
+ from ...metrics.types.window import Window
24
28
  from ...types.validation_error_response import ValidationErrorResponse
25
29
  from ..types.inbox_id import InboxId
26
30
  from pydantic import ValidationError as pydantic_ValidationError
@@ -209,6 +213,106 @@ class RawMetricsClient:
209
213
  )
210
214
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
211
215
 
216
+ def query_rates(
217
+ self,
218
+ inbox_id: InboxId,
219
+ *,
220
+ rate_types: typing.Optional[RateTypes] = None,
221
+ start: typing.Optional[Start] = None,
222
+ end: typing.Optional[End] = None,
223
+ period: typing.Optional[RatePeriod] = None,
224
+ window: typing.Optional[Window] = None,
225
+ limit: typing.Optional[MetricLimit] = None,
226
+ descending: typing.Optional[Descending] = None,
227
+ request_options: typing.Optional[RequestOptions] = None,
228
+ ) -> HttpResponse[QueryRatesResponse]:
229
+ """
230
+ Rolling bounce and complaint rates for the inbox. At each `period`
231
+ grid point, the bounced (or complained) messages over the preceding
232
+ `window` divided by the messages sent over the same window, with the
233
+ send count alongside. Account moderation evaluates the organization-wide
234
+ rate, so use the organization endpoint to see the number it acts on;
235
+ the inbox view shows which inboxes contribute. Defaults to the rolling
236
+ 24-hour rate sampled hourly over the last day; `start` must be within
237
+ the last 90 days, `window` must be a whole multiple of `period`, and
238
+ the range plus window divided by `period` must not exceed 1000
239
+ buckets.
240
+
241
+ **CLI:**
242
+ ```bash
243
+ agentmail inboxes metrics query-rates --inbox-id <inbox_id>
244
+ ```
245
+
246
+ Parameters
247
+ ----------
248
+ inbox_id : InboxId
249
+
250
+ rate_types : typing.Optional[RateTypes]
251
+
252
+ start : typing.Optional[Start]
253
+
254
+ end : typing.Optional[End]
255
+
256
+ period : typing.Optional[RatePeriod]
257
+
258
+ window : typing.Optional[Window]
259
+
260
+ limit : typing.Optional[MetricLimit]
261
+
262
+ descending : typing.Optional[Descending]
263
+
264
+ request_options : typing.Optional[RequestOptions]
265
+ Request-specific configuration.
266
+
267
+ Returns
268
+ -------
269
+ HttpResponse[QueryRatesResponse]
270
+ """
271
+ _response = self._client_wrapper.httpx_client.request(
272
+ f"v0/inboxes/{jsonable_encoder(inbox_id)}/metrics/rates",
273
+ base_url=self._client_wrapper.get_environment().http,
274
+ method="GET",
275
+ params={
276
+ "rate_types": rate_types,
277
+ "start": serialize_datetime(start) if start is not None else None,
278
+ "end": serialize_datetime(end) if end is not None else None,
279
+ "period": period,
280
+ "window": window,
281
+ "limit": limit,
282
+ "descending": descending,
283
+ },
284
+ request_options=request_options,
285
+ )
286
+ try:
287
+ if 200 <= _response.status_code < 300:
288
+ _data = typing.cast(
289
+ QueryRatesResponse,
290
+ construct_type(
291
+ type_=QueryRatesResponse, # type: ignore
292
+ object_=_response.json(),
293
+ ),
294
+ )
295
+ return HttpResponse(response=_response, data=_data)
296
+ if _response.status_code == 400:
297
+ raise errors_validation_error_ValidationError(
298
+ headers=dict(_response.headers),
299
+ body=typing.cast(
300
+ ValidationErrorResponse,
301
+ construct_type(
302
+ type_=ValidationErrorResponse, # type: ignore
303
+ object_=_response.json(),
304
+ ),
305
+ ),
306
+ )
307
+ _response_json = _response.json()
308
+ except JSONDecodeError:
309
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
310
+ except pydantic_ValidationError as e:
311
+ raise ParsingError(
312
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
313
+ )
314
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
315
+
212
316
 
213
317
  class AsyncRawMetricsClient:
214
318
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -392,3 +496,103 @@ class AsyncRawMetricsClient:
392
496
  status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
393
497
  )
394
498
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
499
+
500
+ async def query_rates(
501
+ self,
502
+ inbox_id: InboxId,
503
+ *,
504
+ rate_types: typing.Optional[RateTypes] = None,
505
+ start: typing.Optional[Start] = None,
506
+ end: typing.Optional[End] = None,
507
+ period: typing.Optional[RatePeriod] = None,
508
+ window: typing.Optional[Window] = None,
509
+ limit: typing.Optional[MetricLimit] = None,
510
+ descending: typing.Optional[Descending] = None,
511
+ request_options: typing.Optional[RequestOptions] = None,
512
+ ) -> AsyncHttpResponse[QueryRatesResponse]:
513
+ """
514
+ Rolling bounce and complaint rates for the inbox. At each `period`
515
+ grid point, the bounced (or complained) messages over the preceding
516
+ `window` divided by the messages sent over the same window, with the
517
+ send count alongside. Account moderation evaluates the organization-wide
518
+ rate, so use the organization endpoint to see the number it acts on;
519
+ the inbox view shows which inboxes contribute. Defaults to the rolling
520
+ 24-hour rate sampled hourly over the last day; `start` must be within
521
+ the last 90 days, `window` must be a whole multiple of `period`, and
522
+ the range plus window divided by `period` must not exceed 1000
523
+ buckets.
524
+
525
+ **CLI:**
526
+ ```bash
527
+ agentmail inboxes metrics query-rates --inbox-id <inbox_id>
528
+ ```
529
+
530
+ Parameters
531
+ ----------
532
+ inbox_id : InboxId
533
+
534
+ rate_types : typing.Optional[RateTypes]
535
+
536
+ start : typing.Optional[Start]
537
+
538
+ end : typing.Optional[End]
539
+
540
+ period : typing.Optional[RatePeriod]
541
+
542
+ window : typing.Optional[Window]
543
+
544
+ limit : typing.Optional[MetricLimit]
545
+
546
+ descending : typing.Optional[Descending]
547
+
548
+ request_options : typing.Optional[RequestOptions]
549
+ Request-specific configuration.
550
+
551
+ Returns
552
+ -------
553
+ AsyncHttpResponse[QueryRatesResponse]
554
+ """
555
+ _response = await self._client_wrapper.httpx_client.request(
556
+ f"v0/inboxes/{jsonable_encoder(inbox_id)}/metrics/rates",
557
+ base_url=self._client_wrapper.get_environment().http,
558
+ method="GET",
559
+ params={
560
+ "rate_types": rate_types,
561
+ "start": serialize_datetime(start) if start is not None else None,
562
+ "end": serialize_datetime(end) if end is not None else None,
563
+ "period": period,
564
+ "window": window,
565
+ "limit": limit,
566
+ "descending": descending,
567
+ },
568
+ request_options=request_options,
569
+ )
570
+ try:
571
+ if 200 <= _response.status_code < 300:
572
+ _data = typing.cast(
573
+ QueryRatesResponse,
574
+ construct_type(
575
+ type_=QueryRatesResponse, # type: ignore
576
+ object_=_response.json(),
577
+ ),
578
+ )
579
+ return AsyncHttpResponse(response=_response, data=_data)
580
+ if _response.status_code == 400:
581
+ raise errors_validation_error_ValidationError(
582
+ headers=dict(_response.headers),
583
+ body=typing.cast(
584
+ ValidationErrorResponse,
585
+ construct_type(
586
+ type_=ValidationErrorResponse, # type: ignore
587
+ object_=_response.json(),
588
+ ),
589
+ ),
590
+ )
591
+ _response_json = _response.json()
592
+ except JSONDecodeError:
593
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
594
+ except pydantic_ValidationError as e:
595
+ raise ParsingError(
596
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
597
+ )
598
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -224,6 +224,7 @@ class WebhooksClient:
224
224
  webhook_id: WebhookId,
225
225
  *,
226
226
  event_types: typing.Optional[UpdateWebhookEventTypes] = OMIT,
227
+ enabled: typing.Optional[bool] = OMIT,
227
228
  request_options: typing.Optional[RequestOptions] = None,
228
229
  ) -> Webhook:
229
230
  """
@@ -240,6 +241,13 @@ class WebhooksClient:
240
241
 
241
242
  event_types : typing.Optional[UpdateWebhookEventTypes]
242
243
 
244
+ enabled : typing.Optional[bool]
245
+ Set to true to re-enable a webhook that was disabled after repeated failed deliveries, or false
246
+ to disable it. Events that occurred while the webhook was disabled are not redelivered.
247
+ Re-enabling a webhook subscribed to `message.received.spam`, `message.received.blocked`, or
248
+ `message.received.unauthenticated` (or to every event type, with no filter) requires the
249
+ matching label permissions on the API key.
250
+
243
251
  request_options : typing.Optional[RequestOptions]
244
252
  Request-specific configuration.
245
253
 
@@ -260,7 +268,7 @@ class WebhooksClient:
260
268
  )
261
269
  """
262
270
  _response = self._raw_client.update(
263
- inbox_id, webhook_id, event_types=event_types, request_options=request_options
271
+ inbox_id, webhook_id, event_types=event_types, enabled=enabled, request_options=request_options
264
272
  )
265
273
  return _response.data
266
274
 
@@ -583,6 +591,7 @@ class AsyncWebhooksClient:
583
591
  webhook_id: WebhookId,
584
592
  *,
585
593
  event_types: typing.Optional[UpdateWebhookEventTypes] = OMIT,
594
+ enabled: typing.Optional[bool] = OMIT,
586
595
  request_options: typing.Optional[RequestOptions] = None,
587
596
  ) -> Webhook:
588
597
  """
@@ -599,6 +608,13 @@ class AsyncWebhooksClient:
599
608
 
600
609
  event_types : typing.Optional[UpdateWebhookEventTypes]
601
610
 
611
+ enabled : typing.Optional[bool]
612
+ Set to true to re-enable a webhook that was disabled after repeated failed deliveries, or false
613
+ to disable it. Events that occurred while the webhook was disabled are not redelivered.
614
+ Re-enabling a webhook subscribed to `message.received.spam`, `message.received.blocked`, or
615
+ `message.received.unauthenticated` (or to every event type, with no filter) requires the
616
+ matching label permissions on the API key.
617
+
602
618
  request_options : typing.Optional[RequestOptions]
603
619
  Request-specific configuration.
604
620
 
@@ -627,7 +643,7 @@ class AsyncWebhooksClient:
627
643
  asyncio.run(main())
628
644
  """
629
645
  _response = await self._raw_client.update(
630
- inbox_id, webhook_id, event_types=event_types, request_options=request_options
646
+ inbox_id, webhook_id, event_types=event_types, enabled=enabled, request_options=request_options
631
647
  )
632
648
  return _response.data
633
649
 
@@ -299,6 +299,7 @@ class RawWebhooksClient:
299
299
  webhook_id: WebhookId,
300
300
  *,
301
301
  event_types: typing.Optional[UpdateWebhookEventTypes] = OMIT,
302
+ enabled: typing.Optional[bool] = OMIT,
302
303
  request_options: typing.Optional[RequestOptions] = None,
303
304
  ) -> HttpResponse[Webhook]:
304
305
  """
@@ -315,6 +316,13 @@ class RawWebhooksClient:
315
316
 
316
317
  event_types : typing.Optional[UpdateWebhookEventTypes]
317
318
 
319
+ enabled : typing.Optional[bool]
320
+ Set to true to re-enable a webhook that was disabled after repeated failed deliveries, or false
321
+ to disable it. Events that occurred while the webhook was disabled are not redelivered.
322
+ Re-enabling a webhook subscribed to `message.received.spam`, `message.received.blocked`, or
323
+ `message.received.unauthenticated` (or to every event type, with no filter) requires the
324
+ matching label permissions on the API key.
325
+
318
326
  request_options : typing.Optional[RequestOptions]
319
327
  Request-specific configuration.
320
328
 
@@ -328,6 +336,7 @@ class RawWebhooksClient:
328
336
  method="PATCH",
329
337
  json={
330
338
  "event_types": event_types,
339
+ "enabled": enabled,
331
340
  },
332
341
  request_options=request_options,
333
342
  omit=OMIT,
@@ -767,6 +776,7 @@ class AsyncRawWebhooksClient:
767
776
  webhook_id: WebhookId,
768
777
  *,
769
778
  event_types: typing.Optional[UpdateWebhookEventTypes] = OMIT,
779
+ enabled: typing.Optional[bool] = OMIT,
770
780
  request_options: typing.Optional[RequestOptions] = None,
771
781
  ) -> AsyncHttpResponse[Webhook]:
772
782
  """
@@ -783,6 +793,13 @@ class AsyncRawWebhooksClient:
783
793
 
784
794
  event_types : typing.Optional[UpdateWebhookEventTypes]
785
795
 
796
+ enabled : typing.Optional[bool]
797
+ Set to true to re-enable a webhook that was disabled after repeated failed deliveries, or false
798
+ to disable it. Events that occurred while the webhook was disabled are not redelivered.
799
+ Re-enabling a webhook subscribed to `message.received.spam`, `message.received.blocked`, or
800
+ `message.received.unauthenticated` (or to every event type, with no filter) requires the
801
+ matching label permissions on the API key.
802
+
786
803
  request_options : typing.Optional[RequestOptions]
787
804
  Request-specific configuration.
788
805
 
@@ -796,6 +813,7 @@ class AsyncRawWebhooksClient:
796
813
  method="PATCH",
797
814
  json={
798
815
  "event_types": event_types,
816
+ "enabled": enabled,
799
817
  },
800
818
  request_options=request_options,
801
819
  omit=OMIT,
@@ -15,11 +15,17 @@ if typing.TYPE_CHECKING:
15
15
  MetricLimit,
16
16
  Period,
17
17
  QueryMetricsResponse,
18
+ QueryRatesResponse,
18
19
  QueryUsageResponse,
20
+ RatePeriod,
21
+ RatePoint,
22
+ RateType,
23
+ RateTypes,
19
24
  Start,
20
25
  UsagePoint,
21
26
  UsageType,
22
27
  UsageTypes,
28
+ Window,
23
29
  )
24
30
  _dynamic_imports: typing.Dict[str, str] = {
25
31
  "Descending": ".types",
@@ -30,11 +36,17 @@ _dynamic_imports: typing.Dict[str, str] = {
30
36
  "MetricLimit": ".types",
31
37
  "Period": ".types",
32
38
  "QueryMetricsResponse": ".types",
39
+ "QueryRatesResponse": ".types",
33
40
  "QueryUsageResponse": ".types",
41
+ "RatePeriod": ".types",
42
+ "RatePoint": ".types",
43
+ "RateType": ".types",
44
+ "RateTypes": ".types",
34
45
  "Start": ".types",
35
46
  "UsagePoint": ".types",
36
47
  "UsageType": ".types",
37
48
  "UsageTypes": ".types",
49
+ "Window": ".types",
38
50
  }
39
51
 
40
52
 
@@ -68,9 +80,15 @@ __all__ = [
68
80
  "MetricLimit",
69
81
  "Period",
70
82
  "QueryMetricsResponse",
83
+ "QueryRatesResponse",
71
84
  "QueryUsageResponse",
85
+ "RatePeriod",
86
+ "RatePoint",
87
+ "RateType",
88
+ "RateTypes",
72
89
  "Start",
73
90
  "UsagePoint",
74
91
  "UsageType",
75
92
  "UsageTypes",
93
+ "Window",
76
94
  ]