primitivedotdev 1.3.0__tar.gz → 1.4.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 (406) hide show
  1. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/PKG-INFO +1 -1
  2. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/json-schema/email-received-event.schema.json +287 -2
  3. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/pyproject.toml +1 -1
  4. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/scripts/generate_models.py +7 -1
  5. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/list_emails.py +30 -0
  6. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/create_function.py +24 -16
  7. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/account.py +43 -0
  8. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/models_generated.py +249 -3
  9. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/schemas/email_received_event.schema.json +287 -2
  10. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_validation.py +16 -0
  11. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/.gitignore +0 -0
  12. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/README.md +0 -0
  13. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/scripts/generate_api_client.py +0 -0
  14. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/scripts/generate_schema_module.py +0 -0
  15. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/__init__.py +0 -0
  16. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/_compat.py +0 -0
  17. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/__init__.py +0 -0
  18. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/__init__.py +0 -0
  19. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/__init__.py +0 -0
  20. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_account.py +0 -0
  21. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_storage_stats.py +0 -0
  22. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_webhook_secret.py +0 -0
  23. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/rotate_webhook_secret.py +0 -0
  24. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/account/update_account.py +0 -0
  25. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/__init__.py +0 -0
  26. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/create_agent_account.py +0 -0
  27. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/create_agent_claim_link.py +0 -0
  28. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/resend_agent_signup_verification.py +0 -0
  29. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/start_agent_claim.py +0 -0
  30. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/start_agent_signup.py +0 -0
  31. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/verify_agent_claim.py +0 -0
  32. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/verify_agent_signup.py +0 -0
  33. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/__init__.py +0 -0
  34. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/cli_logout.py +0 -0
  35. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/poll_cli_login.py +0 -0
  36. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/resend_cli_signup_verification.py +0 -0
  37. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/start_cli_login.py +0 -0
  38. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/start_cli_signup.py +0 -0
  39. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/verify_cli_signup.py +0 -0
  40. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/__init__.py +0 -0
  41. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/add_domain.py +0 -0
  42. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/delete_domain.py +0 -0
  43. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/download_domain_zone_file.py +0 -0
  44. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/list_domains.py +0 -0
  45. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/update_domain.py +0 -0
  46. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/verify_domain.py +0 -0
  47. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/__init__.py +0 -0
  48. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/delete_email.py +0 -0
  49. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/discard_email_content.py +0 -0
  50. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/download_attachments.py +0 -0
  51. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/download_raw_email.py +0 -0
  52. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/get_conversation.py +0 -0
  53. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/get_email.py +0 -0
  54. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/replay_email_webhooks.py +0 -0
  55. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/search_emails.py +0 -0
  56. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/__init__.py +0 -0
  57. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/create_endpoint.py +0 -0
  58. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/delete_endpoint.py +0 -0
  59. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/list_endpoints.py +0 -0
  60. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/test_endpoint.py +0 -0
  61. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/update_endpoint.py +0 -0
  62. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/__init__.py +0 -0
  63. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/create_filter.py +0 -0
  64. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/delete_filter.py +0 -0
  65. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/list_filters.py +0 -0
  66. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/update_filter.py +0 -0
  67. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/__init__.py +0 -0
  68. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/create_function_secret.py +0 -0
  69. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/delete_function.py +0 -0
  70. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/delete_function_secret.py +0 -0
  71. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function.py +0 -0
  72. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function_routing.py +0 -0
  73. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function_test_run_trace.py +0 -0
  74. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_org_routing_topology.py +0 -0
  75. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_function_logs.py +0 -0
  76. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_function_secrets.py +0 -0
  77. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_functions.py +0 -0
  78. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/set_function_route.py +0 -0
  79. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/set_function_secret.py +0 -0
  80. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/test_function.py +0 -0
  81. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/unset_function_route.py +0 -0
  82. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/update_function.py +0 -0
  83. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/inbox/__init__.py +0 -0
  84. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/inbox/get_inbox_status.py +0 -0
  85. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/search/__init__.py +0 -0
  86. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/search/semantic_search.py +0 -0
  87. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/__init__.py +0 -0
  88. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/get_send_permissions.py +0 -0
  89. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/get_sent_email.py +0 -0
  90. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/list_sent_emails.py +0 -0
  91. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/reply_to_email.py +0 -0
  92. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/send_email.py +0 -0
  93. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/threads/__init__.py +0 -0
  94. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/threads/get_thread.py +0 -0
  95. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/__init__.py +0 -0
  96. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/list_deliveries.py +0 -0
  97. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/replay_delivery.py +0 -0
  98. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/client.py +0 -0
  99. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/downloads.py +0 -0
  100. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/errors.py +0 -0
  101. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/__init__.py +0 -0
  102. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/account_updated.py +0 -0
  103. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/add_domain_input.py +0 -0
  104. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/add_domain_response_201.py +0 -0
  105. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_account_result.py +0 -0
  106. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_account_result_plan.py +0 -0
  107. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_account_upgrade_hint.py +0 -0
  108. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_account_upgrade_hint_plan.py +0 -0
  109. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_claim_link_result.py +0 -0
  110. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_claim_result.py +0 -0
  111. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_claim_result_plan.py +0 -0
  112. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_claim_start_result.py +0 -0
  113. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_org_ref.py +0 -0
  114. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_resend_result.py +0 -0
  115. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_start_result.py +0 -0
  116. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result.py +0 -0
  117. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result_auth_method.py +0 -0
  118. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result_token_type.py +0 -0
  119. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result.py +0 -0
  120. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result_auth_method.py +0 -0
  121. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result_token_type.py +0 -0
  122. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_start_result.py +0 -0
  123. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_input.py +0 -0
  124. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_response_200.py +0 -0
  125. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_result.py +0 -0
  126. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_resend_result.py +0 -0
  127. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_start_result.py +0 -0
  128. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result.py +0 -0
  129. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result_auth_method.py +0 -0
  130. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result_token_type.py +0 -0
  131. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation.py +0 -0
  132. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message.py +0 -0
  133. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message_direction.py +0 -0
  134. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message_role.py +0 -0
  135. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_agent_account_input.py +0 -0
  136. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_agent_account_response_200.py +0 -0
  137. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_agent_claim_link_input.py +0 -0
  138. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_agent_claim_link_response_200.py +0 -0
  139. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_input.py +0 -0
  140. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_input_rules.py +0 -0
  141. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_response_201.py +0 -0
  142. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_input.py +0 -0
  143. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_input_type.py +0 -0
  144. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_response_201.py +0 -0
  145. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_input.py +0 -0
  146. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_input_files.py +0 -0
  147. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_response_201.py +0 -0
  148. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_result.py +0 -0
  149. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_input.py +0 -0
  150. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_response_200.py +0 -0
  151. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_response_201.py +0 -0
  152. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_domain_response_200.py +0 -0
  153. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_domain_response_200_data.py +0 -0
  154. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_email_response_200.py +0 -0
  155. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_email_response_200_data.py +0 -0
  156. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_endpoint_response_200.py +0 -0
  157. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_endpoint_response_200_data.py +0 -0
  158. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_filter_response_200.py +0 -0
  159. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_filter_response_200_data.py +0 -0
  160. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_function_response_200.py +0 -0
  161. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_function_response_200_data.py +0 -0
  162. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_status.py +0 -0
  163. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary.py +0 -0
  164. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary_email_type_0.py +0 -0
  165. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary_status.py +0 -0
  166. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/discard_content_result.py +0 -0
  167. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/discard_email_content_response_200.py +0 -0
  168. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/dkim_signature.py +0 -0
  169. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record.py +0 -0
  170. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_purpose.py +0 -0
  171. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_status.py +0 -0
  172. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_type.py +0 -0
  173. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_verify_result_type_0.py +0 -0
  174. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_verify_result_type_1.py +0 -0
  175. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_address.py +0 -0
  176. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_attachment.py +0 -0
  177. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_auth.py +0 -0
  178. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_detail.py +0 -0
  179. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_detail_reply.py +0 -0
  180. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facet_bucket.py +0 -0
  181. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facets.py +0 -0
  182. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facets_has_attachment.py +0 -0
  183. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_highlights.py +0 -0
  184. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_meta.py +0 -0
  185. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_meta_sort.py +0 -0
  186. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_result.py +0 -0
  187. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_status.py +0 -0
  188. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_summary.py +0 -0
  189. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_1.py +0 -0
  190. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_2_type_1.py +0 -0
  191. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_3_type_1.py +0 -0
  192. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/endpoint.py +0 -0
  193. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/endpoint_rules.py +0 -0
  194. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response.py +0 -0
  195. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error.py +0 -0
  196. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_code.py +0 -0
  197. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_details.py +0 -0
  198. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_details_mx_conflict.py +0 -0
  199. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/filter_.py +0 -0
  200. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/filter_type.py +0 -0
  201. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_deploy_status.py +0 -0
  202. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_detail.py +0 -0
  203. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_list_item.py +0 -0
  204. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row.py +0 -0
  205. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row_level.py +0 -0
  206. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row_metadata_type_0.py +0 -0
  207. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body.py +0 -0
  208. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_0.py +0 -0
  209. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_0_kind.py +0 -0
  210. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_1.py +0 -0
  211. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_1_kind.py +0 -0
  212. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result.py +0 -0
  213. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result_conflict.py +0 -0
  214. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result_conflict_kind.py +0 -0
  215. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing.py +0 -0
  216. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing_domain_type_0.py +0 -0
  217. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing_rules.py +0 -0
  218. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_secret_list_item.py +0 -0
  219. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_secret_write_result.py +0 -0
  220. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run.py +0 -0
  221. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery.py +0 -0
  222. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery_endpoint_type_0.py +0 -0
  223. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery_status.py +0 -0
  224. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_inbound_email_type_0.py +0 -0
  225. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_outbound_request.py +0 -0
  226. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_reply.py +0 -0
  227. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_send_type_0.py +0 -0
  228. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_state.py +0 -0
  229. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_trace.py +0 -0
  230. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial.py +0 -0
  231. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial_name.py +0 -0
  232. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial_reason.py +0 -0
  233. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_fix.py +0 -0
  234. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_fix_action.py +0 -0
  235. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_account_response_200.py +0 -0
  236. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_conversation_response_200.py +0 -0
  237. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_email_response_200.py +0 -0
  238. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_response_200.py +0 -0
  239. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_routing_response_200.py +0 -0
  240. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_test_run_trace_response_200.py +0 -0
  241. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_inbox_status_response_200.py +0 -0
  242. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_org_routing_topology_response_200.py +0 -0
  243. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_send_permissions_response_200.py +0 -0
  244. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_sent_email_response_200.py +0 -0
  245. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_storage_stats_response_200.py +0 -0
  246. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_thread_response_200.py +0 -0
  247. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/get_webhook_secret_response_200.py +0 -0
  248. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status.py +0 -0
  249. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_domain.py +0 -0
  250. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_domain_status.py +0 -0
  251. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_endpoint_summary.py +0 -0
  252. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_function_summary.py +0 -0
  253. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_next_action.py +0 -0
  254. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_next_action_kind.py +0 -0
  255. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_recent_email_summary.py +0 -0
  256. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_deliveries_response_200.py +0 -0
  257. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_deliveries_status.py +0 -0
  258. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_domains_response_200.py +0 -0
  259. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_emails_response_200.py +0 -0
  260. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_endpoints_response_200.py +0 -0
  261. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_envelope.py +0 -0
  262. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_filters_response_200.py +0 -0
  263. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_logs_response_200.py +0 -0
  264. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_logs_response_200_data.py +0 -0
  265. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_secrets_response_200.py +0 -0
  266. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_secrets_response_200_data.py +0 -0
  267. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_functions_response_200.py +0 -0
  268. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/list_sent_emails_response_200.py +0 -0
  269. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/pagination_meta.py +0 -0
  270. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data.py +0 -0
  271. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data_error_type_0.py +0 -0
  272. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data_status.py +0 -0
  273. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/plan_limits.py +0 -0
  274. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/poll_cli_login_input.py +0 -0
  275. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/poll_cli_login_response_200.py +0 -0
  276. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_delivery_response_200.py +0 -0
  277. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_email_webhooks_response_200.py +0 -0
  278. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_result.py +0 -0
  279. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/reply_input.py +0 -0
  280. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/reply_to_email_response_200.py +0 -0
  281. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_agent_signup_verification_input.py +0 -0
  282. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_agent_signup_verification_response_200.py +0 -0
  283. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_cli_signup_verification_input.py +0 -0
  284. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_cli_signup_verification_response_200.py +0 -0
  285. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/rotate_webhook_secret_response_200.py +0 -0
  286. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology.py +0 -0
  287. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_domains_item.py +0 -0
  288. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_domains_item_routed_function_type_0.py +0 -0
  289. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_fallback_function_type_0.py +0 -0
  290. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_unrouted_functions_item.py +0 -0
  291. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_has_attachment.py +0 -0
  292. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_include_facets.py +0 -0
  293. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_response_200.py +0 -0
  294. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_snippet.py +0 -0
  295. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_sort.py +0 -0
  296. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_coverage.py +0 -0
  297. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_field.py +0 -0
  298. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input.py +0 -0
  299. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_corpus_item.py +0 -0
  300. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_include_item.py +0 -0
  301. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_mode.py +0 -0
  302. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_meta.py +0 -0
  303. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_meta_mode.py +0 -0
  304. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_response_200.py +0 -0
  305. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_result.py +0 -0
  306. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_result_source_type.py +0 -0
  307. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_score_breakdown.py +0 -0
  308. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_snippet.py +0 -0
  309. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_email_response_200.py +0 -0
  310. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_attachment.py +0 -0
  311. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_input.py +0 -0
  312. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_result.py +0 -0
  313. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_address.py +0 -0
  314. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_address_type.py +0 -0
  315. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_any_recipient.py +0 -0
  316. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_any_recipient_type.py +0 -0
  317. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_managed_zone.py +0 -0
  318. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_managed_zone_type.py +0 -0
  319. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_your_domain.py +0 -0
  320. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_your_domain_type.py +0 -0
  321. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permissions_meta.py +0 -0
  322. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_detail.py +0 -0
  323. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_status.py +0 -0
  324. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_summary.py +0 -0
  325. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_route_response_200.py +0 -0
  326. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_input.py +0 -0
  327. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_response_200.py +0 -0
  328. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_response_201.py +0 -0
  329. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_claim_input.py +0 -0
  330. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_claim_response_200.py +0 -0
  331. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_input.py +0 -0
  332. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_input_metadata.py +0 -0
  333. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_response_201.py +0 -0
  334. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_input.py +0 -0
  335. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_input_metadata.py +0 -0
  336. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_response_201.py +0 -0
  337. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_input.py +0 -0
  338. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_input_metadata.py +0 -0
  339. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_response_201.py +0 -0
  340. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/storage_stats.py +0 -0
  341. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/success_envelope.py +0 -0
  342. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/test_endpoint_response_200.py +0 -0
  343. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/test_function_body.py +0 -0
  344. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/test_function_response_200.py +0 -0
  345. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/test_invocation_result.py +0 -0
  346. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/test_result.py +0 -0
  347. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/thread.py +0 -0
  348. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/thread_message.py +0 -0
  349. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/thread_message_direction.py +0 -0
  350. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/unset_function_route_response_200.py +0 -0
  351. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/unset_function_route_response_200_data.py +0 -0
  352. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/unverified_domain.py +0 -0
  353. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_account_input.py +0 -0
  354. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_account_response_200.py +0 -0
  355. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_domain_input.py +0 -0
  356. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_domain_response_200.py +0 -0
  357. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_input.py +0 -0
  358. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_input_rules.py +0 -0
  359. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_response_200.py +0 -0
  360. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_filter_input.py +0 -0
  361. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_filter_response_200.py +0 -0
  362. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_input.py +0 -0
  363. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_input_files.py +0 -0
  364. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_response_200.py +0 -0
  365. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verified_domain.py +0 -0
  366. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_claim_input.py +0 -0
  367. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_claim_response_200.py +0 -0
  368. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_signup_input.py +0 -0
  369. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_signup_response_200.py +0 -0
  370. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_cli_signup_input.py +0 -0
  371. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_cli_signup_response_200.py +0 -0
  372. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_domain_response_200.py +0 -0
  373. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/models/webhook_secret.py +0 -0
  374. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/api/types.py +0 -0
  375. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/client.py +0 -0
  376. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/errors.py +0 -0
  377. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/py.typed +0 -0
  378. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/received_email.py +0 -0
  379. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/schema.py +0 -0
  380. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/types.py +0 -0
  381. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/validation.py +0 -0
  382. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/src/primitive/webhook.py +0 -0
  383. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/auth/cases.json +0 -0
  384. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/download-tokens/vectors.json +0 -0
  385. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/handle-webhook/cases.json +0 -0
  386. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/handle-webhook/standard-webhooks-cases.json +0 -0
  387. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/header-address-parser/cases.json +0 -0
  388. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/parse-webhook-event/cases.json +0 -0
  389. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/raw/cases.json +0 -0
  390. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/send-payloads/cases.json +0 -0
  391. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/signing/standard-webhooks-vectors.json +0 -0
  392. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/signing/vectors.json +0 -0
  393. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/subject-builders/cases.json +0 -0
  394. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/webhook/valid-email-received.json +0 -0
  395. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/test-fixtures/webhook/validation-cases.json +0 -0
  396. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/conftest.py +0 -0
  397. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_auth.py +0 -0
  398. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_client.py +0 -0
  399. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_email_detail.py +0 -0
  400. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_encoding.py +0 -0
  401. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_generated_downloads.py +0 -0
  402. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_parsing.py +0 -0
  403. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_send_payloads.py +0 -0
  404. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_shared_fixtures.py +0 -0
  405. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_signing.py +0 -0
  406. {primitivedotdev-1.3.0 → primitivedotdev-1.4.0}/tests/test_webhook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: primitivedotdev
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Official Primitive Python SDK for webhook handling and API access
5
5
  Project-URL: Homepage, https://primitive.dev
6
6
  Project-URL: Repository, https://github.com/primitivedotdev/sdks
@@ -12,8 +12,14 @@
12
12
  },
13
13
  "event": {
14
14
  "type": "string",
15
- "const": "email.received",
16
- "description": "Event type identifier. Always `\"email.received\"` for this event type."
15
+ "enum": [
16
+ "email.received",
17
+ "email.bounced",
18
+ "email.tls_report",
19
+ "email.dmarc_report",
20
+ "email.dmarc_failure"
21
+ ],
22
+ "description": "Event type identifier.\n\n- `email.received` - A normal inbound email.\n- `email.bounced` - A delivery status notification (DSN) reporting that a message delivery failed. Carries `email.analysis.bounce`.\n- `email.tls_report` - An SMTP TLS report (RFC 8460). Carries `email.analysis.tls_report`.\n- `email.dmarc_report` - A DMARC aggregate report (RFC 7489). Carries `email.analysis.dmarc_report`.\n- `email.dmarc_failure` - A DMARC failure (forensic) report.\n\nMachine-generated mail (bounces and the report types above) is delivered under its own event type rather than `email.received`, so an endpoint subscribed only to `email.received` receives just normal inbound mail. The payload shape is otherwise identical across event types; the type-specific details live under `email.analysis`."
17
23
  },
18
24
  "version": {
19
25
  "$ref": "#/definitions/WebhookVersion",
@@ -655,10 +661,289 @@
655
661
  "forward": {
656
662
  "$ref": "#/definitions/ForwardAnalysis",
657
663
  "description": "Forward detection and analysis results.\n\nOptional. Present when the email was processed by a forward-detection pipeline (always present in Primitive's managed service). When absent, forward detection was not performed on this email."
664
+ },
665
+ "bounce": {
666
+ "$ref": "#/definitions/BounceAnalysis",
667
+ "description": "Bounce (delivery status notification) analysis.\n\nPresent on `email.bounced` events: the parsed DSN reporting that a message you sent could not be delivered. Absent on all other event types."
668
+ },
669
+ "tls_report": {
670
+ "$ref": "#/definitions/TlsReportAnalysis",
671
+ "description": "SMTP TLS report analysis (RFC 8460).\n\nPresent on `email.tls_report` events: a remote MTA's report of TLS negotiation results for mail sent to your domain. Absent on all other event types."
672
+ },
673
+ "dmarc_report": {
674
+ "$ref": "#/definitions/DmarcReportAnalysis",
675
+ "description": "DMARC aggregate report analysis (RFC 7489).\n\nPresent on `email.dmarc_report` events: a receiver's periodic aggregate report of DMARC authentication results for your domain. Absent on all other event types."
658
676
  }
659
677
  },
660
678
  "description": "Email analysis and classification results.\n\nAll properties in this object are optional. Which fields are present depends on the analysis pipeline processing the email. Primitive's managed service populates all fields. Self-hosted or third-party deployments may include some, all, or none of these fields depending on their pipeline configuration.\n\nWhen a field is absent, it means that particular analysis was not performed, not that the analysis produced no results. For example, a missing `spamassassin` field means SpamAssassin was not run, not that the email scored 0.\n\nThese fields may be omitted from the payload entirely but must not be set to null."
661
679
  },
680
+ "BounceAnalysis": {
681
+ "type": "object",
682
+ "properties": {
683
+ "is_bounce": {
684
+ "type": "boolean",
685
+ "const": true,
686
+ "description": "Always `true` on a parsed bounce."
687
+ },
688
+ "kind": {
689
+ "type": "string",
690
+ "const": "dsn",
691
+ "description": "The machine-mail kind. Always `dsn` for a bounce."
692
+ },
693
+ "type": {
694
+ "type": "string",
695
+ "enum": ["permanent", "transient", "undetermined"],
696
+ "description": "Whether the failure is permanent (hard bounce), transient (soft bounce, may be retried), or undetermined."
697
+ },
698
+ "category": {
699
+ "type": "string",
700
+ "enum": [
701
+ "mailbox_does_not_exist",
702
+ "domain_does_not_exist",
703
+ "domain_not_accepting_mail",
704
+ "mailbox_full",
705
+ "mailbox_inactive",
706
+ "message_too_large",
707
+ "content_rejected",
708
+ "policy_blocked",
709
+ "auth_failure",
710
+ "relay_denied",
711
+ "rate_limited",
712
+ "network_error",
713
+ "recipient_moved",
714
+ "expired",
715
+ "undetermined"
716
+ ],
717
+ "description": "Best-effort reason category for the failure."
718
+ },
719
+ "classified_by": {
720
+ "type": "string",
721
+ "enum": ["status_code", "smtp_code", "pattern", "provider", "none"],
722
+ "description": "Which signal produced `category` (for transparency and debugging)."
723
+ },
724
+ "failed_recipient": {
725
+ "type": ["string", "null"],
726
+ "description": "The recipient address that failed, if the report identifies one."
727
+ },
728
+ "smtp_code": {
729
+ "type": ["integer", "null"],
730
+ "description": "SMTP reply code (e.g. `550`), if reported."
731
+ },
732
+ "status_code": {
733
+ "type": ["string", "null"],
734
+ "description": "Enhanced mail system status code (RFC 3463, e.g. `5.1.1`), if reported."
735
+ },
736
+ "diagnostic_code": {
737
+ "type": ["string", "null"],
738
+ "description": "Raw diagnostic text from the reporting MTA, if present."
739
+ },
740
+ "reported_by_mta": {
741
+ "type": ["string", "null"],
742
+ "description": "The MTA that generated the report, if identifiable."
743
+ },
744
+ "original_message_id": {
745
+ "type": ["string", "null"],
746
+ "description": "Message-ID of the original message that bounced, if recoverable. Match this against the `message_id` of a message you sent to correlate the bounce."
747
+ },
748
+ "reasons": {
749
+ "type": "array",
750
+ "items": { "type": "string" },
751
+ "description": "Human-readable reason strings extracted from the report."
752
+ }
753
+ },
754
+ "required": [
755
+ "is_bounce",
756
+ "kind",
757
+ "type",
758
+ "category",
759
+ "classified_by",
760
+ "failed_recipient",
761
+ "smtp_code",
762
+ "status_code",
763
+ "diagnostic_code",
764
+ "reported_by_mta",
765
+ "original_message_id",
766
+ "reasons"
767
+ ],
768
+ "description": "Parsed delivery status notification (bounce). Present as `email.analysis.bounce` on `email.bounced` events."
769
+ },
770
+ "TlsReportFailure": {
771
+ "type": "object",
772
+ "properties": {
773
+ "result_type": {
774
+ "type": ["string", "null"],
775
+ "description": "Failure result type (e.g. `certificate-expired`, `starttls-not-supported`)."
776
+ },
777
+ "count": {
778
+ "type": "integer",
779
+ "description": "Number of sessions that hit this failure."
780
+ },
781
+ "sending_mta_ip": { "type": ["string", "null"] },
782
+ "receiving_mx_hostname": { "type": ["string", "null"] }
783
+ },
784
+ "required": ["result_type", "count", "sending_mta_ip", "receiving_mx_hostname"]
785
+ },
786
+ "TlsReportPolicy": {
787
+ "type": "object",
788
+ "properties": {
789
+ "policy_domain": { "type": ["string", "null"] },
790
+ "policy_type": {
791
+ "type": ["string", "null"],
792
+ "description": "Policy type the sessions were evaluated against (e.g. `sts`, `tlsa`, `no-policy-found`)."
793
+ },
794
+ "successful_sessions": { "type": "integer" },
795
+ "failed_sessions": { "type": "integer" },
796
+ "failures": {
797
+ "type": "array",
798
+ "items": { "$ref": "#/definitions/TlsReportFailure" }
799
+ }
800
+ },
801
+ "required": [
802
+ "policy_domain",
803
+ "policy_type",
804
+ "successful_sessions",
805
+ "failed_sessions",
806
+ "failures"
807
+ ]
808
+ },
809
+ "TlsReportAnalysis": {
810
+ "type": "object",
811
+ "properties": {
812
+ "kind": { "type": "string", "const": "tls_report" },
813
+ "organization": {
814
+ "type": ["string", "null"],
815
+ "description": "Reporting organization name."
816
+ },
817
+ "report_id": { "type": ["string", "null"] },
818
+ "contact": {
819
+ "type": ["string", "null"],
820
+ "description": "Reporter contact, if provided."
821
+ },
822
+ "date_range": {
823
+ "type": "object",
824
+ "properties": {
825
+ "start": {
826
+ "type": ["string", "null"],
827
+ "description": "ISO 8601 start of the reporting window."
828
+ },
829
+ "end": {
830
+ "type": ["string", "null"],
831
+ "description": "ISO 8601 end of the reporting window."
832
+ }
833
+ },
834
+ "required": ["start", "end"]
835
+ },
836
+ "total_successful_sessions": { "type": "integer" },
837
+ "total_failed_sessions": { "type": "integer" },
838
+ "policies": {
839
+ "type": "array",
840
+ "items": { "$ref": "#/definitions/TlsReportPolicy" }
841
+ }
842
+ },
843
+ "required": [
844
+ "kind",
845
+ "organization",
846
+ "report_id",
847
+ "contact",
848
+ "date_range",
849
+ "total_successful_sessions",
850
+ "total_failed_sessions",
851
+ "policies"
852
+ ],
853
+ "description": "Parsed SMTP TLS report (RFC 8460). Present as `email.analysis.tls_report` on `email.tls_report` events."
854
+ },
855
+ "DmarcRecord": {
856
+ "type": "object",
857
+ "properties": {
858
+ "source_ip": { "type": ["string", "null"] },
859
+ "count": { "type": "integer" },
860
+ "disposition": {
861
+ "type": ["string", "null"],
862
+ "description": "Disposition applied by the receiver: `none`, `quarantine`, or `reject`."
863
+ },
864
+ "dkim": {
865
+ "type": ["string", "null"],
866
+ "description": "DKIM alignment result: `pass` or `fail`."
867
+ },
868
+ "spf": {
869
+ "type": ["string", "null"],
870
+ "description": "SPF alignment result: `pass` or `fail`."
871
+ },
872
+ "header_from": { "type": ["string", "null"] }
873
+ },
874
+ "required": ["source_ip", "count", "disposition", "dkim", "spf", "header_from"]
875
+ },
876
+ "DmarcReportAnalysis": {
877
+ "type": "object",
878
+ "properties": {
879
+ "kind": { "type": "string", "const": "dmarc_report" },
880
+ "organization": { "type": ["string", "null"] },
881
+ "report_id": { "type": ["string", "null"] },
882
+ "date_range": {
883
+ "type": "object",
884
+ "properties": {
885
+ "start": {
886
+ "type": ["string", "null"],
887
+ "description": "ISO 8601 start of the reporting window."
888
+ },
889
+ "end": {
890
+ "type": ["string", "null"],
891
+ "description": "ISO 8601 end of the reporting window."
892
+ }
893
+ },
894
+ "required": ["start", "end"]
895
+ },
896
+ "policy_published": {
897
+ "type": "object",
898
+ "properties": {
899
+ "domain": { "type": ["string", "null"] },
900
+ "p": {
901
+ "type": ["string", "null"],
902
+ "description": "Published domain policy: `none`, `quarantine`, or `reject`."
903
+ },
904
+ "sp": {
905
+ "type": ["string", "null"],
906
+ "description": "Published subdomain policy."
907
+ },
908
+ "pct": {
909
+ "type": ["integer", "null"],
910
+ "description": "Percentage of messages the policy is applied to."
911
+ },
912
+ "adkim": {
913
+ "type": ["string", "null"],
914
+ "description": "DKIM alignment mode: `r` (relaxed) or `s` (strict)."
915
+ },
916
+ "aspf": {
917
+ "type": ["string", "null"],
918
+ "description": "SPF alignment mode: `r` (relaxed) or `s` (strict)."
919
+ }
920
+ },
921
+ "required": ["domain", "p", "sp", "pct", "adkim", "aspf"]
922
+ },
923
+ "total_count": {
924
+ "type": "integer",
925
+ "description": "Total messages covered by the report."
926
+ },
927
+ "dkim_pass_count": { "type": "integer" },
928
+ "spf_pass_count": { "type": "integer" },
929
+ "records": {
930
+ "type": "array",
931
+ "items": { "$ref": "#/definitions/DmarcRecord" }
932
+ }
933
+ },
934
+ "required": [
935
+ "kind",
936
+ "organization",
937
+ "report_id",
938
+ "date_range",
939
+ "policy_published",
940
+ "total_count",
941
+ "dkim_pass_count",
942
+ "spf_pass_count",
943
+ "records"
944
+ ],
945
+ "description": "Parsed DMARC aggregate report (RFC 7489). Present as `email.analysis.dmarc_report` on `email.dmarc_report` events."
946
+ },
662
947
  "ForwardAnalysis": {
663
948
  "type": "object",
664
949
  "properties": {
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "primitivedotdev"
7
- version = "1.3.0"
7
+ version = "1.4.0"
8
8
  description = "Official Primitive Python SDK for webhook handling and API access"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -80,6 +80,10 @@ def _patch_generated_models() -> None:
80
80
 
81
81
  for enum_name in (
82
82
  "Code",
83
+ "Event",
84
+ "Type",
85
+ "Category",
86
+ "ClassifiedBy",
83
87
  "ForwardVerdict",
84
88
  "AuthConfidence",
85
89
  "SpfResult",
@@ -160,7 +164,9 @@ def _patch_generated_models() -> None:
160
164
  text,
161
165
  " ] = None\n\n\nclass Email(BaseModel):\n",
162
166
  " ] = None\n\n"
163
- " @field_validator(\"spamassassin\", \"forward\", mode=\"before\")\n"
167
+ " @field_validator(\n"
168
+ " \"spamassassin\", \"forward\", \"bounce\", \"tls_report\", \"dmarc_report\", mode=\"before\"\n"
169
+ " )\n"
164
170
  " @classmethod\n"
165
171
  " def reject_explicit_null_optional_objects(cls, value):\n"
166
172
  " if value is None:\n"
@@ -28,6 +28,8 @@ def _get_kwargs(
28
28
  search: str | Unset = UNSET,
29
29
  date_from: datetime.datetime | Unset = UNSET,
30
30
  date_to: datetime.datetime | Unset = UNSET,
31
+ since: str | Unset = UNSET,
32
+ wait: int | Unset = UNSET,
31
33
 
32
34
  ) -> dict[str, Any]:
33
35
 
@@ -63,6 +65,10 @@ def _get_kwargs(
63
65
  json_date_to = date_to.isoformat()
64
66
  params["date_to"] = json_date_to
65
67
 
68
+ params["since"] = since
69
+
70
+ params["wait"] = wait
71
+
66
72
 
67
73
  params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
68
74
 
@@ -125,6 +131,8 @@ def sync_detailed(
125
131
  search: str | Unset = UNSET,
126
132
  date_from: datetime.datetime | Unset = UNSET,
127
133
  date_to: datetime.datetime | Unset = UNSET,
134
+ since: str | Unset = UNSET,
135
+ wait: int | Unset = UNSET,
128
136
 
129
137
  ) -> Response[ErrorResponse | ListEmailsResponse200]:
130
138
  """ List inbound emails
@@ -179,6 +187,8 @@ def sync_detailed(
179
187
  search (str | Unset):
180
188
  date_from (datetime.datetime | Unset):
181
189
  date_to (datetime.datetime | Unset):
190
+ since (str | Unset):
191
+ wait (int | Unset):
182
192
 
183
193
  Raises:
184
194
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -197,6 +207,8 @@ status=status,
197
207
  search=search,
198
208
  date_from=date_from,
199
209
  date_to=date_to,
210
+ since=since,
211
+ wait=wait,
200
212
 
201
213
  )
202
214
 
@@ -216,6 +228,8 @@ def sync(
216
228
  search: str | Unset = UNSET,
217
229
  date_from: datetime.datetime | Unset = UNSET,
218
230
  date_to: datetime.datetime | Unset = UNSET,
231
+ since: str | Unset = UNSET,
232
+ wait: int | Unset = UNSET,
219
233
 
220
234
  ) -> ErrorResponse | ListEmailsResponse200 | None:
221
235
  """ List inbound emails
@@ -270,6 +284,8 @@ def sync(
270
284
  search (str | Unset):
271
285
  date_from (datetime.datetime | Unset):
272
286
  date_to (datetime.datetime | Unset):
287
+ since (str | Unset):
288
+ wait (int | Unset):
273
289
 
274
290
  Raises:
275
291
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -289,6 +305,8 @@ status=status,
289
305
  search=search,
290
306
  date_from=date_from,
291
307
  date_to=date_to,
308
+ since=since,
309
+ wait=wait,
292
310
 
293
311
  ).parsed
294
312
 
@@ -302,6 +320,8 @@ async def asyncio_detailed(
302
320
  search: str | Unset = UNSET,
303
321
  date_from: datetime.datetime | Unset = UNSET,
304
322
  date_to: datetime.datetime | Unset = UNSET,
323
+ since: str | Unset = UNSET,
324
+ wait: int | Unset = UNSET,
305
325
 
306
326
  ) -> Response[ErrorResponse | ListEmailsResponse200]:
307
327
  """ List inbound emails
@@ -356,6 +376,8 @@ async def asyncio_detailed(
356
376
  search (str | Unset):
357
377
  date_from (datetime.datetime | Unset):
358
378
  date_to (datetime.datetime | Unset):
379
+ since (str | Unset):
380
+ wait (int | Unset):
359
381
 
360
382
  Raises:
361
383
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -374,6 +396,8 @@ status=status,
374
396
  search=search,
375
397
  date_from=date_from,
376
398
  date_to=date_to,
399
+ since=since,
400
+ wait=wait,
377
401
 
378
402
  )
379
403
 
@@ -393,6 +417,8 @@ async def asyncio(
393
417
  search: str | Unset = UNSET,
394
418
  date_from: datetime.datetime | Unset = UNSET,
395
419
  date_to: datetime.datetime | Unset = UNSET,
420
+ since: str | Unset = UNSET,
421
+ wait: int | Unset = UNSET,
396
422
 
397
423
  ) -> ErrorResponse | ListEmailsResponse200 | None:
398
424
  """ List inbound emails
@@ -447,6 +473,8 @@ async def asyncio(
447
473
  search (str | Unset):
448
474
  date_from (datetime.datetime | Unset):
449
475
  date_to (datetime.datetime | Unset):
476
+ since (str | Unset):
477
+ wait (int | Unset):
450
478
 
451
479
  Raises:
452
480
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -466,5 +494,7 @@ status=status,
466
494
  search=search,
467
495
  date_from=date_from,
468
496
  date_to=date_to,
497
+ since=since,
498
+ wait=wait,
469
499
 
470
500
  )).parsed
@@ -121,10 +121,12 @@ def sync_detailed(
121
121
  each delivery and forwards the `Primitive-Signature` header to
122
122
  the handler. Verify the raw request body with
123
123
  `PRIMITIVE_WEBHOOK_SECRET` before parsing JSON; after verification
124
- the request body parses to an `email.received` event (see
125
- `EmailReceivedEvent` and the Webhook payload section for the full
126
- schema). Code is bundled before being uploaded; ship a single
127
- self-contained file rather than relying on external imports.
124
+ the request body parses to a webhook event whose `event` field is
125
+ `email.received` for normal inbound mail, or a machine-mail type
126
+ (`email.bounced`, `email.tls_report`, `email.dmarc_report`,
127
+ `email.dmarc_failure`) for bounces and reports. Code is bundled
128
+ before being uploaded; ship a single self-contained file rather
129
+ than relying on external imports.
128
130
 
129
131
  **Code limits.** `code` is capped at 1 MiB UTF-8. `sourceMap`
130
132
  (optional) is capped at 5 MiB UTF-8, stored with each deployment
@@ -182,10 +184,12 @@ def sync(
182
184
  each delivery and forwards the `Primitive-Signature` header to
183
185
  the handler. Verify the raw request body with
184
186
  `PRIMITIVE_WEBHOOK_SECRET` before parsing JSON; after verification
185
- the request body parses to an `email.received` event (see
186
- `EmailReceivedEvent` and the Webhook payload section for the full
187
- schema). Code is bundled before being uploaded; ship a single
188
- self-contained file rather than relying on external imports.
187
+ the request body parses to a webhook event whose `event` field is
188
+ `email.received` for normal inbound mail, or a machine-mail type
189
+ (`email.bounced`, `email.tls_report`, `email.dmarc_report`,
190
+ `email.dmarc_failure`) for bounces and reports. Code is bundled
191
+ before being uploaded; ship a single self-contained file rather
192
+ than relying on external imports.
189
193
 
190
194
  **Code limits.** `code` is capped at 1 MiB UTF-8. `sourceMap`
191
195
  (optional) is capped at 5 MiB UTF-8, stored with each deployment
@@ -238,10 +242,12 @@ async def asyncio_detailed(
238
242
  each delivery and forwards the `Primitive-Signature` header to
239
243
  the handler. Verify the raw request body with
240
244
  `PRIMITIVE_WEBHOOK_SECRET` before parsing JSON; after verification
241
- the request body parses to an `email.received` event (see
242
- `EmailReceivedEvent` and the Webhook payload section for the full
243
- schema). Code is bundled before being uploaded; ship a single
244
- self-contained file rather than relying on external imports.
245
+ the request body parses to a webhook event whose `event` field is
246
+ `email.received` for normal inbound mail, or a machine-mail type
247
+ (`email.bounced`, `email.tls_report`, `email.dmarc_report`,
248
+ `email.dmarc_failure`) for bounces and reports. Code is bundled
249
+ before being uploaded; ship a single self-contained file rather
250
+ than relying on external imports.
245
251
 
246
252
  **Code limits.** `code` is capped at 1 MiB UTF-8. `sourceMap`
247
253
  (optional) is capped at 5 MiB UTF-8, stored with each deployment
@@ -299,10 +305,12 @@ async def asyncio(
299
305
  each delivery and forwards the `Primitive-Signature` header to
300
306
  the handler. Verify the raw request body with
301
307
  `PRIMITIVE_WEBHOOK_SECRET` before parsing JSON; after verification
302
- the request body parses to an `email.received` event (see
303
- `EmailReceivedEvent` and the Webhook payload section for the full
304
- schema). Code is bundled before being uploaded; ship a single
305
- self-contained file rather than relying on external imports.
308
+ the request body parses to a webhook event whose `event` field is
309
+ `email.received` for normal inbound mail, or a machine-mail type
310
+ (`email.bounced`, `email.tls_report`, `email.dmarc_report`,
311
+ `email.dmarc_failure`) for bounces and reports. Code is bundled
312
+ before being uploaded; ship a single self-contained file rather
313
+ than relying on external imports.
306
314
 
307
315
  **Code limits.** `code` is capped at 1 MiB UTF-8. `sourceMap`
308
316
  (optional) is capped at 5 MiB UTF-8, stored with each deployment
@@ -13,6 +13,8 @@ from typing import cast
13
13
  from uuid import UUID
14
14
  import datetime
15
15
 
16
+ if TYPE_CHECKING:
17
+ from ..models.plan_limits import PlanLimits
16
18
 
17
19
 
18
20
 
@@ -29,6 +31,11 @@ class Account:
29
31
  id (UUID):
30
32
  email (str):
31
33
  plan (str):
34
+ limits (PlanLimits): Plan-derived quota limits for an account.
35
+ entitlements (list[str]): Granted org entitlement keys (sorted). A headless caller reads its
36
+ capabilities here — e.g. an emailless agent seeing only
37
+ ["send_mail", "send_to_known_addresses"] knows it is reply-only.
38
+ managed_inbox_address (None | str): The managed inbox FQDN to reply as, or null if the org has no managed inbox.
32
39
  created_at (datetime.datetime):
33
40
  discard_content_on_webhook_confirmed (bool):
34
41
  onboarding_completed (bool | Unset):
@@ -43,6 +50,9 @@ class Account:
43
50
  id: UUID
44
51
  email: str
45
52
  plan: str
53
+ limits: PlanLimits
54
+ entitlements: list[str]
55
+ managed_inbox_address: None | str
46
56
  created_at: datetime.datetime
47
57
  discard_content_on_webhook_confirmed: bool
48
58
  onboarding_completed: bool | Unset = UNSET
@@ -59,12 +69,22 @@ class Account:
59
69
 
60
70
 
61
71
  def to_dict(self) -> dict[str, Any]:
72
+ from ..models.plan_limits import PlanLimits
62
73
  id = str(self.id)
63
74
 
64
75
  email = self.email
65
76
 
66
77
  plan = self.plan
67
78
 
79
+ limits = self.limits.to_dict()
80
+
81
+ entitlements = self.entitlements
82
+
83
+
84
+
85
+ managed_inbox_address: None | str
86
+ managed_inbox_address = self.managed_inbox_address
87
+
68
88
  created_at = self.created_at.isoformat()
69
89
 
70
90
  discard_content_on_webhook_confirmed = self.discard_content_on_webhook_confirmed
@@ -118,6 +138,9 @@ class Account:
118
138
  "id": id,
119
139
  "email": email,
120
140
  "plan": plan,
141
+ "limits": limits,
142
+ "entitlements": entitlements,
143
+ "managed_inbox_address": managed_inbox_address,
121
144
  "created_at": created_at,
122
145
  "discard_content_on_webhook_confirmed": discard_content_on_webhook_confirmed,
123
146
  })
@@ -142,6 +165,7 @@ class Account:
142
165
 
143
166
  @classmethod
144
167
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
168
+ from ..models.plan_limits import PlanLimits
145
169
  d = dict(src_dict)
146
170
  id = UUID(d.pop("id"))
147
171
 
@@ -152,6 +176,22 @@ class Account:
152
176
 
153
177
  plan = d.pop("plan")
154
178
 
179
+ limits = PlanLimits.from_dict(d.pop("limits"))
180
+
181
+
182
+
183
+
184
+ entitlements = cast(list[str], d.pop("entitlements"))
185
+
186
+
187
+ def _parse_managed_inbox_address(data: object) -> None | str:
188
+ if data is None:
189
+ return data
190
+ return cast(None | str, data)
191
+
192
+ managed_inbox_address = _parse_managed_inbox_address(d.pop("managed_inbox_address"))
193
+
194
+
155
195
  created_at = isoparse(d.pop("created_at"))
156
196
 
157
197
 
@@ -245,6 +285,9 @@ class Account:
245
285
  id=id,
246
286
  email=email,
247
287
  plan=plan,
288
+ limits=limits,
289
+ entitlements=entitlements,
290
+ managed_inbox_address=managed_inbox_address,
248
291
  created_at=created_at,
249
292
  discard_content_on_webhook_confirmed=discard_content_on_webhook_confirmed,
250
293
  onboarding_completed=onboarding_completed,