primitivedotdev 2.1.0__tar.gz → 2.3.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 (963) hide show
  1. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/PKG-INFO +61 -1
  2. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/README.md +60 -0
  3. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/json-schema/email-received-event.schema.json +13 -1
  4. primitivedotdev-2.3.0/json-schema/sent-email-event.schema.json +431 -0
  5. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/pyproject.toml +5 -1
  6. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/scripts/generate_models.py +45 -3
  7. primitivedotdev-2.3.0/scripts/generate_schema_module.py +31 -0
  8. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/__init__.py +64 -1
  9. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/create_agent_account.py +28 -4
  10. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/verify_agent_claim.py +28 -8
  11. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/webhook_deliveries/list_deliveries.py +57 -8
  12. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/webhook_deliveries/replay_delivery.py +36 -20
  13. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/__init__.py +2 -0
  14. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_account_upgrade_hint.py +3 -1
  15. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_endpoint_input_rules.py +6 -1
  16. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delivery_summary.py +112 -9
  17. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delivery_summary_email_type_0.py +12 -4
  18. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delivery_summary_status.py +1 -0
  19. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_relay_type_0.py +33 -0
  20. primitivedotdev-2.3.0/src/primitive/api/models/email_detail_relay_type_0_delivery_item.py +162 -0
  21. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_facets.py +8 -3
  22. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint_rules.py +6 -1
  23. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_deliveries_status.py +1 -0
  24. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_input.py +6 -2
  25. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_mail_input.py +4 -0
  26. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_detail.py +25 -0
  27. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_reschedule_input.py +4 -1
  28. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_summary.py +25 -0
  29. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_endpoint_input_rules.py +6 -1
  30. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/client.py +71 -1
  31. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/events.py +15 -4
  32. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/models_generated.py +14 -1
  33. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/schema.py +8 -5
  34. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/schemas/email_received_event.schema.json +13 -1
  35. primitivedotdev-2.3.0/src/primitive/schemas/sent_email_event.schema.json +431 -0
  36. primitivedotdev-2.3.0/src/primitive/sent_email_events.py +218 -0
  37. primitivedotdev-2.3.0/src/primitive/sent_email_models_generated.py +396 -0
  38. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/types.py +12 -0
  39. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/validation.py +8 -4
  40. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/webhook.py +9 -2
  41. primitivedotdev-2.3.0/test-fixtures/sent-email-events/accepted.json +39 -0
  42. primitivedotdev-2.3.0/test-fixtures/sent-email-events/cases.json +571 -0
  43. primitivedotdev-2.3.0/test-fixtures/sent-email-events/completed-not-relayed.json +152 -0
  44. primitivedotdev-2.3.0/test-fixtures/sent-email-events/completed.json +50 -0
  45. primitivedotdev-2.3.0/test-fixtures/sent-email-events/delivered-recipient.json +52 -0
  46. primitivedotdev-2.3.0/test-fixtures/sent-email-events/delivered-rollup.json +148 -0
  47. primitivedotdev-2.3.0/test-fixtures/sent-email-events/failed-recipient.json +52 -0
  48. primitivedotdev-2.3.0/test-fixtures/sent-email-events/failed-rollup.json +166 -0
  49. primitivedotdev-2.3.0/test-fixtures/sent-email-events/legacy-message-result.json +43 -0
  50. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/signing/vectors.json +9 -0
  51. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/webhook/validation-cases.json +530 -0
  52. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_client.py +74 -0
  53. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_email_detail.py +60 -1
  54. primitivedotdev-2.3.0/tests/test_sent_email_events.py +245 -0
  55. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_shared_fixtures.py +9 -0
  56. primitivedotdev-2.1.0/scripts/generate_schema_module.py +0 -26
  57. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/.gitignore +0 -0
  58. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/scripts/generate_api_client.py +0 -0
  59. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/_compat.py +0 -0
  60. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/__init__.py +0 -0
  61. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/__init__.py +0 -0
  62. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/__init__.py +0 -0
  63. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/get_account.py +0 -0
  64. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/get_storage_stats.py +0 -0
  65. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/get_webhook_secret.py +0 -0
  66. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/provision_member_address.py +0 -0
  67. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/rotate_webhook_secret.py +0 -0
  68. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/update_account.py +0 -0
  69. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/account/whoami.py +0 -0
  70. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/__init__.py +0 -0
  71. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/create_agent_claim_link.py +0 -0
  72. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/resend_agent_signup_verification.py +0 -0
  73. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/start_agent_claim.py +0 -0
  74. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/start_agent_signup.py +0 -0
  75. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent/verify_agent_signup.py +0 -0
  76. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/__init__.py +0 -0
  77. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/agent_connection_setup.py +0 -0
  78. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/claim_agent_connection.py +0 -0
  79. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/create_agent_connection.py +0 -0
  80. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/invite_agent_connection.py +0 -0
  81. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/list_agent_connections.py +0 -0
  82. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/remove_agent_connection.py +0 -0
  83. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_connections/revoke_agent_connection.py +0 -0
  84. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/__init__.py +0 -0
  85. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/add_default_network_member.py +0 -0
  86. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/check_default_network_contact_admission.py +0 -0
  87. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/get_default_network_agent.py +0 -0
  88. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/list_agent_networks.py +0 -0
  89. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/list_default_network_agents.py +0 -0
  90. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/list_default_network_members.py +0 -0
  91. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/remove_default_network_member.py +0 -0
  92. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/agent_networks/update_default_network_member.py +0 -0
  93. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/__init__.py +0 -0
  94. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/cli_logout.py +0 -0
  95. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/poll_cli_login.py +0 -0
  96. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/resend_cli_signup_verification.py +0 -0
  97. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/start_cli_login.py +0 -0
  98. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/start_cli_signup.py +0 -0
  99. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/cli/verify_cli_signup.py +0 -0
  100. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/__init__.py +0 -0
  101. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/delete_agent_contact.py +0 -0
  102. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/delete_contact.py +0 -0
  103. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/get_agent_contact_policy.py +0 -0
  104. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/get_contact.py +0 -0
  105. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/get_contact_policy.py +0 -0
  106. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/list_agent_contacts.py +0 -0
  107. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/list_contacts.py +0 -0
  108. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/put_agent_contact.py +0 -0
  109. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/put_agent_contact_policy.py +0 -0
  110. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/put_contact.py +0 -0
  111. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/contacts/put_contact_policy.py +0 -0
  112. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/credits_/__init__.py +0 -0
  113. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/credits_/get_credit_balance.py +0 -0
  114. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/credits_/redeem_credit_code.py +0 -0
  115. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/__init__.py +0 -0
  116. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/add_domain.py +0 -0
  117. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/check_domain_dns.py +0 -0
  118. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/delete_domain.py +0 -0
  119. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/download_domain_zone_file.py +0 -0
  120. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/list_domains.py +0 -0
  121. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/update_domain.py +0 -0
  122. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/domains/verify_domain.py +0 -0
  123. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/__init__.py +0 -0
  124. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/delete_email.py +0 -0
  125. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/discard_email_content.py +0 -0
  126. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/download_attachments.py +0 -0
  127. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/download_email_attachment_part.py +0 -0
  128. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/download_raw_email.py +0 -0
  129. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/get_conversation.py +0 -0
  130. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/get_email.py +0 -0
  131. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/list_emails.py +0 -0
  132. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/replay_email_webhooks.py +0 -0
  133. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/emails/search_emails.py +0 -0
  134. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/__init__.py +0 -0
  135. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/complete_webhook_event.py +0 -0
  136. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/create_endpoint.py +0 -0
  137. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/delete_endpoint.py +0 -0
  138. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/list_endpoints.py +0 -0
  139. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/pull_webhook_event.py +0 -0
  140. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/test_endpoint.py +0 -0
  141. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/test_endpoint_rules.py +0 -0
  142. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/endpoints/update_endpoint.py +0 -0
  143. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/filters/__init__.py +0 -0
  144. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/filters/create_filter.py +0 -0
  145. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/filters/delete_filter.py +0 -0
  146. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/filters/list_filters.py +0 -0
  147. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/filters/update_filter.py +0 -0
  148. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/__init__.py +0 -0
  149. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/create_function.py +0 -0
  150. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/create_function_secret.py +0 -0
  151. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/create_org_secret.py +0 -0
  152. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/delete_function.py +0 -0
  153. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/delete_function_secret.py +0 -0
  154. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/delete_org_secret.py +0 -0
  155. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/get_function.py +0 -0
  156. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/get_function_routing.py +0 -0
  157. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/get_function_test_run_trace.py +0 -0
  158. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/get_org_routing_topology.py +0 -0
  159. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/list_function_logs.py +0 -0
  160. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/list_function_secrets.py +0 -0
  161. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/list_functions.py +0 -0
  162. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/list_org_secrets.py +0 -0
  163. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/set_function_route.py +0 -0
  164. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/set_function_secret.py +0 -0
  165. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/set_org_secret.py +0 -0
  166. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/test_function.py +0 -0
  167. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/unset_function_route.py +0 -0
  168. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/functions/update_function.py +0 -0
  169. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/inbox/__init__.py +0 -0
  170. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/inbox/get_inbox_status.py +0 -0
  171. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/memories/__init__.py +0 -0
  172. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/memories/delete_memory.py +0 -0
  173. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/memories/get_memory.py +0 -0
  174. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/memories/search_memories.py +0 -0
  175. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/memories/set_memory.py +0 -0
  176. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/__init__.py +0 -0
  177. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/create_challenge.py +0 -0
  178. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/create_email_challenge.py +0 -0
  179. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/get_challenge.py +0 -0
  180. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/get_spend_policy.py +0 -0
  181. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/list_declined_payments.py +0 -0
  182. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/list_payout_addresses.py +0 -0
  183. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/pay_challenge.py +0 -0
  184. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/register_payout_address.py +0 -0
  185. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/payments/update_spend_policy.py +0 -0
  186. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/__init__.py +0 -0
  187. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/create_registry.py +0 -0
  188. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/decide_registry_request.py +0 -0
  189. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/define_agent.py +0 -0
  190. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/delete_registry.py +0 -0
  191. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/get_agent.py +0 -0
  192. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/get_registry.py +0 -0
  193. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/list_registries.py +0 -0
  194. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/list_registry_agents.py +0 -0
  195. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/list_registry_requests.py +0 -0
  196. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/publish_agent.py +0 -0
  197. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/resolve_registry_handle.py +0 -0
  198. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/unpublish_agent.py +0 -0
  199. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/registries/update_registry.py +0 -0
  200. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/__init__.py +0 -0
  201. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/delete_repeating_send.py +0 -0
  202. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/get_repeating_send.py +0 -0
  203. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/list_repeating_sends.py +0 -0
  204. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/stop_repeat_from_email.py +0 -0
  205. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/repeating_sends/update_repeating_send.py +0 -0
  206. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/__init__.py +0 -0
  207. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/create_route.py +0 -0
  208. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/delete_route.py +0 -0
  209. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/list_routes.py +0 -0
  210. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/reorder_routes.py +0 -0
  211. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/simulate_route.py +0 -0
  212. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/routes/update_route.py +0 -0
  213. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/search/__init__.py +0 -0
  214. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/search/semantic_search.py +0 -0
  215. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/__init__.py +0 -0
  216. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/await_reply.py +0 -0
  217. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/cancel_sent_email.py +0 -0
  218. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/delete_sent_email.py +0 -0
  219. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/download_sent_attachment_part.py +0 -0
  220. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/get_outbound_status.py +0 -0
  221. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/get_send_permissions.py +0 -0
  222. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/get_sent_email.py +0 -0
  223. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/list_sent_emails.py +0 -0
  224. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/reply_to_email.py +0 -0
  225. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/reschedule_sent_email.py +0 -0
  226. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/sending/send_email.py +0 -0
  227. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/templates/__init__.py +0 -0
  228. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/templates/get_template.py +0 -0
  229. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/templates/get_template_install.py +0 -0
  230. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/templates/install_template.py +0 -0
  231. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/templates/list_templates.py +0 -0
  232. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/threads/__init__.py +0 -0
  233. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/threads/get_thread.py +0 -0
  234. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/__init__.py +0 -0
  235. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/create_wake_authorization.py +0 -0
  236. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/create_wake_schedule.py +0 -0
  237. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/delete_wake_authorization.py +0 -0
  238. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/delete_wake_schedule.py +0 -0
  239. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/get_wake_schedule.py +0 -0
  240. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/list_wake_authorizations.py +0 -0
  241. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/list_wake_dispatches.py +0 -0
  242. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/list_wake_schedules.py +0 -0
  243. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/run_wake_schedule.py +0 -0
  244. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/update_wake_authorization.py +0 -0
  245. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/wake/update_wake_schedule.py +0 -0
  246. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/api/webhook_deliveries/__init__.py +0 -0
  247. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/client.py +0 -0
  248. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/downloads.py +0 -0
  249. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/errors.py +0 -0
  250. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/account.py +0 -0
  251. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/account_updated.py +0 -0
  252. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/add_default_network_member_response_200.py +0 -0
  253. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/add_domain_input.py +0 -0
  254. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/add_domain_response_201.py +0 -0
  255. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_account_result.py +0 -0
  256. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_account_result_plan.py +0 -0
  257. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_account_upgrade_hint_plan.py +0 -0
  258. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_claim_link_result.py +0 -0
  259. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_claim_result.py +0 -0
  260. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_claim_result_plan.py +0 -0
  261. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_claim_start_result.py +0 -0
  262. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_contact_policy.py +0 -0
  263. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_contact_policy_override.py +0 -0
  264. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network.py +0 -0
  265. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_contact_admission.py +0 -0
  266. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_contact_admission_input.py +0 -0
  267. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_contact_admission_sender_relation.py +0 -0
  268. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_member.py +0 -0
  269. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_member_owner_type_0.py +0 -0
  270. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_member_ownership_kind.py +0 -0
  271. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_peer.py +0 -0
  272. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_peer_owner_type_0.py +0 -0
  273. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_network_peer_ownership_kind.py +0 -0
  274. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_org_ref.py +0 -0
  275. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_presence_type_0.py +0 -0
  276. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_signup_resend_result.py +0 -0
  277. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_signup_start_result.py +0 -0
  278. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_signup_verify_result.py +0 -0
  279. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_signup_verify_result_auth_method.py +0 -0
  280. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/agent_signup_verify_result_token_type.py +0 -0
  281. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/await_reply_response_200.py +0 -0
  282. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/await_reply_result.py +0 -0
  283. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/caller_identity.py +0 -0
  284. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/caller_identity_member_address_type_0.py +0 -0
  285. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cancel_sent_email_response_200.py +0 -0
  286. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/check_default_network_contact_admission_response_200.py +0 -0
  287. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/check_domain_dns_response_200.py +0 -0
  288. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_body.py +0 -0
  289. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_response_200.py +0 -0
  290. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_response_200_data.py +0 -0
  291. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_response_200_data_connection.py +0 -0
  292. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_response_200_data_connection_ownership_kind.py +0 -0
  293. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/claim_agent_connection_response_200_data_connection_status.py +0 -0
  294. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_login_poll_result.py +0 -0
  295. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_login_poll_result_auth_method.py +0 -0
  296. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_login_poll_result_token_type.py +0 -0
  297. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_login_start_result.py +0 -0
  298. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_logout_input.py +0 -0
  299. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_logout_response_200.py +0 -0
  300. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_logout_result.py +0 -0
  301. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_signup_resend_result.py +0 -0
  302. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_signup_start_result.py +0 -0
  303. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_signup_verify_result.py +0 -0
  304. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_signup_verify_result_auth_method.py +0 -0
  305. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/cli_signup_verify_result_token_type.py +0 -0
  306. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_exec_input.py +0 -0
  307. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_exec_input_mode.py +0 -0
  308. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_exec_input_transport_error.py +0 -0
  309. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_http_input.py +0 -0
  310. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_http_input_mode.py +0 -0
  311. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_http_input_transport_error.py +0 -0
  312. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_response.py +0 -0
  313. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_response_data.py +0 -0
  314. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_response_data_result.py +0 -0
  315. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_response_meta.py +0 -0
  316. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_sdk_input.py +0 -0
  317. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_sdk_input_mode.py +0 -0
  318. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_sdk_input_transport_error.py +0 -0
  319. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_stdout_input.py +0 -0
  320. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_stdout_input_mode.py +0 -0
  321. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/complete_webhook_stdout_input_transport_error.py +0 -0
  322. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/contact_policy.py +0 -0
  323. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/contact_policy_rule.py +0 -0
  324. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/contact_policy_rule_effect.py +0 -0
  325. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/contact_policy_rule_input.py +0 -0
  326. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/contact_policy_rule_input_effect.py +0 -0
  327. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation.py +0 -0
  328. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation_message.py +0 -0
  329. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation_message_direction.py +0 -0
  330. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation_message_repeat_type_0.py +0 -0
  331. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation_message_role.py +0 -0
  332. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/conversation_message_sender_member_type_0.py +0 -0
  333. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_account_input.py +0 -0
  334. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_account_response_200.py +0 -0
  335. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_claim_link_input.py +0 -0
  336. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_claim_link_response_200.py +0 -0
  337. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_body.py +0 -0
  338. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_body_ownership_kind.py +0 -0
  339. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200.py +0 -0
  340. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_0.py +0 -0
  341. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_0_connection.py +0 -0
  342. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_0_connection_ownership_kind.py +0 -0
  343. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_0_connection_status.py +0 -0
  344. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_0_invitation.py +0 -0
  345. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_1.py +0 -0
  346. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_1_connection.py +0 -0
  347. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_1_connection_ownership_kind.py +0 -0
  348. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_agent_connection_response_200_data_type_1_connection_status.py +0 -0
  349. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_challenge_input.py +0 -0
  350. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_challenge_input_network.py +0 -0
  351. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_challenge_response_201.py +0 -0
  352. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_email_challenge_input.py +0 -0
  353. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_email_challenge_input_network.py +0 -0
  354. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_email_challenge_response_200.py +0 -0
  355. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_email_challenge_response_201.py +0 -0
  356. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_endpoint_input.py +0 -0
  357. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_endpoint_input_kind.py +0 -0
  358. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_endpoint_response_200.py +0 -0
  359. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_endpoint_response_201.py +0 -0
  360. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_filter_input.py +0 -0
  361. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_filter_input_type.py +0 -0
  362. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_filter_response_201.py +0 -0
  363. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_input.py +0 -0
  364. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_input_files.py +0 -0
  365. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_response_201.py +0 -0
  366. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_result.py +0 -0
  367. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_secret_input.py +0 -0
  368. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_secret_response_200.py +0 -0
  369. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_function_secret_response_201.py +0 -0
  370. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_org_secret_input.py +0 -0
  371. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_org_secret_response_200.py +0 -0
  372. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_org_secret_response_201.py +0 -0
  373. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_registry_input.py +0 -0
  374. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_registry_response_201.py +0 -0
  375. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_registry_response_201_data.py +0 -0
  376. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_route_input.py +0 -0
  377. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_route_input_match_type.py +0 -0
  378. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_route_response_201.py +0 -0
  379. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_wake_authorization_input.py +0 -0
  380. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_wake_authorization_response_201.py +0 -0
  381. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_wake_schedule_input.py +0 -0
  382. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_wake_schedule_input_args.py +0 -0
  383. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/create_wake_schedule_response_201.py +0 -0
  384. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/credit_balance.py +0 -0
  385. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/credit_balance_budget_type_0.py +0 -0
  386. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/credit_balance_prepaid_credit_type_0.py +0 -0
  387. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/credit_redemption.py +0 -0
  388. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/decide_registry_request_input.py +0 -0
  389. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/decide_registry_request_input_decision.py +0 -0
  390. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/decide_registry_request_response_200.py +0 -0
  391. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/decide_registry_request_response_200_data.py +0 -0
  392. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/decide_registry_request_response_200_data_status.py +0 -0
  393. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/define_agent_input.py +0 -0
  394. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/define_agent_response_201.py +0 -0
  395. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/define_agent_response_201_data.py +0 -0
  396. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_agent_contact_response_200.py +0 -0
  397. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_agent_contact_response_200_data.py +0 -0
  398. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_contact_response_200.py +0 -0
  399. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_contact_response_200_data.py +0 -0
  400. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_domain_response_200.py +0 -0
  401. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_domain_response_200_data.py +0 -0
  402. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_email_response_200.py +0 -0
  403. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_email_response_200_data.py +0 -0
  404. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_endpoint_response_200.py +0 -0
  405. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_endpoint_response_200_data.py +0 -0
  406. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_filter_response_200.py +0 -0
  407. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_filter_response_200_data.py +0 -0
  408. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_function_response_200.py +0 -0
  409. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_function_response_200_data.py +0 -0
  410. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_memory_response_200.py +0 -0
  411. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_memory_result.py +0 -0
  412. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_memory_scope_type.py +0 -0
  413. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_registry_response_200.py +0 -0
  414. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_registry_response_200_data.py +0 -0
  415. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_repeating_send_response_200.py +0 -0
  416. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_repeating_send_response_200_data.py +0 -0
  417. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_route_response_200.py +0 -0
  418. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_route_response_200_data.py +0 -0
  419. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_sent_email_response_200.py +0 -0
  420. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_sent_email_response_200_data.py +0 -0
  421. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_wake_authorization_response_200.py +0 -0
  422. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_wake_authorization_response_200_data.py +0 -0
  423. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_wake_schedule_response_200.py +0 -0
  424. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delete_wake_schedule_response_200_data.py +0 -0
  425. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/delivery_status.py +0 -0
  426. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/discard_content_result.py +0 -0
  427. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/discard_email_content_response_200.py +0 -0
  428. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/dkim_signature.py +0 -0
  429. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_health_check.py +0 -0
  430. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_health_check_scopes.py +0 -0
  431. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_health_scope.py +0 -0
  432. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_health_scope_scope.py +0 -0
  433. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_health_status.py +0 -0
  434. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_record.py +0 -0
  435. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_record_purpose.py +0 -0
  436. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_record_status.py +0 -0
  437. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_dns_record_type.py +0 -0
  438. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_verify_result_type_0.py +0 -0
  439. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/domain_verify_result_type_1.py +0 -0
  440. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_address.py +0 -0
  441. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_attachment.py +0 -0
  442. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_auth.py +0 -0
  443. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail.py +0 -0
  444. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_automation_headers_type_0.py +0 -0
  445. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_awaiting.py +0 -0
  446. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_repeat_type_0.py +0 -0
  447. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_reply.py +0 -0
  448. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_detail_sender_member_type_0.py +0 -0
  449. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_facet_bucket.py +0 -0
  450. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_facets_has_attachment.py +0 -0
  451. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_highlights.py +0 -0
  452. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_meta.py +0 -0
  453. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_meta_sort.py +0 -0
  454. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_result.py +0 -0
  455. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_search_result_direction.py +0 -0
  456. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_status.py +0 -0
  457. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary.py +0 -0
  458. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary_automation_headers_type_0.py +0 -0
  459. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary_awaiting.py +0 -0
  460. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary_relay_type_0.py +0 -0
  461. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary_repeat_type_0.py +0 -0
  462. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_summary_sender_member_type_0.py +0 -0
  463. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_webhook_status_type_1.py +0 -0
  464. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_webhook_status_type_2_type_1.py +0 -0
  465. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/email_webhook_status_type_3_type_1.py +0 -0
  466. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint.py +0 -0
  467. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint_kind.py +0 -0
  468. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint_receiver_capabilities.py +0 -0
  469. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint_receiver_capabilities_completion_modes_item.py +0 -0
  470. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/endpoint_receiver_capabilities_stream_protocols_item.py +0 -0
  471. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/error_response.py +0 -0
  472. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/error_response_error.py +0 -0
  473. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/error_response_error_code.py +0 -0
  474. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/error_response_error_details.py +0 -0
  475. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/error_response_error_details_mx_conflict.py +0 -0
  476. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/filter_.py +0 -0
  477. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/filter_type.py +0 -0
  478. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_deploy_status.py +0 -0
  479. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_detail.py +0 -0
  480. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_list_item.py +0 -0
  481. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_log_row.py +0 -0
  482. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_log_row_level.py +0 -0
  483. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_log_row_metadata_type_0.py +0 -0
  484. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_body.py +0 -0
  485. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_body_target_type_0.py +0 -0
  486. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_body_target_type_0_kind.py +0 -0
  487. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_body_target_type_1.py +0 -0
  488. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_body_target_type_1_kind.py +0 -0
  489. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_result.py +0 -0
  490. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_result_conflict.py +0 -0
  491. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_route_result_conflict_kind.py +0 -0
  492. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_routing.py +0 -0
  493. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_routing_domain_type_0.py +0 -0
  494. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_routing_rules.py +0 -0
  495. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_secret_list_item.py +0 -0
  496. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_secret_write_result.py +0 -0
  497. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run.py +0 -0
  498. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_delivery.py +0 -0
  499. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_delivery_endpoint_type_0.py +0 -0
  500. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_delivery_status.py +0 -0
  501. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_inbound_email_type_0.py +0 -0
  502. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_outbound_request.py +0 -0
  503. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_reply.py +0 -0
  504. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_send_type_0.py +0 -0
  505. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_state.py +0 -0
  506. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/function_test_run_trace.py +0 -0
  507. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/gate_denial.py +0 -0
  508. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/gate_denial_name.py +0 -0
  509. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/gate_denial_reason.py +0 -0
  510. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/gate_fix.py +0 -0
  511. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/gate_fix_action.py +0 -0
  512. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_account_response_200.py +0 -0
  513. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_agent_contact_policy_response_200.py +0 -0
  514. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_agent_response_200.py +0 -0
  515. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_challenge_response_200.py +0 -0
  516. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_contact_policy_response_200.py +0 -0
  517. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_contact_response_200.py +0 -0
  518. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_contact_response_200_data.py +0 -0
  519. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_conversation_response_200.py +0 -0
  520. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_credit_balance_response_200.py +0 -0
  521. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_default_network_agent_response_200.py +0 -0
  522. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_email_response_200.py +0 -0
  523. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_function_response_200.py +0 -0
  524. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_function_routing_response_200.py +0 -0
  525. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_function_test_run_trace_response_200.py +0 -0
  526. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_inbox_status_response_200.py +0 -0
  527. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_memory_response_200.py +0 -0
  528. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_memory_scope_type.py +0 -0
  529. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_org_routing_topology_response_200.py +0 -0
  530. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_outbound_status_response_200.py +0 -0
  531. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_registry_response_200.py +0 -0
  532. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_repeating_send_response_200.py +0 -0
  533. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_send_permissions_response_200.py +0 -0
  534. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_sent_email_response_200.py +0 -0
  535. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_spend_policy_response_200.py +0 -0
  536. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_storage_stats_response_200.py +0 -0
  537. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_template_install_response_200.py +0 -0
  538. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_template_response_200.py +0 -0
  539. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_thread_response_200.py +0 -0
  540. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_wake_schedule_response_200.py +0 -0
  541. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/get_webhook_secret_response_200.py +0 -0
  542. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status.py +0 -0
  543. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_domain.py +0 -0
  544. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_domain_status.py +0 -0
  545. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_endpoint_summary.py +0 -0
  546. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_function_summary.py +0 -0
  547. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_next_action.py +0 -0
  548. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_next_action_kind.py +0 -0
  549. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/inbox_status_recent_email_summary.py +0 -0
  550. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/install_template_body.py +0 -0
  551. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/install_template_body_secrets.py +0 -0
  552. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/install_template_body_variables.py +0 -0
  553. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/install_template_response_201.py +0 -0
  554. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_body.py +0 -0
  555. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200.py +0 -0
  556. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200_data.py +0 -0
  557. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200_data_connection.py +0 -0
  558. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200_data_connection_ownership_kind.py +0 -0
  559. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200_data_connection_status.py +0 -0
  560. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/invite_agent_connection_response_200_data_invitation.py +0 -0
  561. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_owner.py +0 -0
  562. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_response_200.py +0 -0
  563. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_response_200_data_item.py +0 -0
  564. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_response_200_data_item_ownership_kind.py +0 -0
  565. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_response_200_data_item_status.py +0 -0
  566. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_connections_response_200_meta.py +0 -0
  567. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_contacts_response_200.py +0 -0
  568. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_contacts_response_200_data_item.py +0 -0
  569. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_contacts_response_200_meta.py +0 -0
  570. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_agent_networks_response_200.py +0 -0
  571. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_contacts_response_200.py +0 -0
  572. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_contacts_response_200_data_item.py +0 -0
  573. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_contacts_response_200_meta.py +0 -0
  574. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_declined_payments_response_200.py +0 -0
  575. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_default_network_agents_response_200.py +0 -0
  576. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_default_network_members_response_200.py +0 -0
  577. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_deliveries_response_200.py +0 -0
  578. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_domains_response_200.py +0 -0
  579. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_emails_automated.py +0 -0
  580. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_emails_awaiting.py +0 -0
  581. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_emails_exclude_fyi.py +0 -0
  582. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_emails_response_200.py +0 -0
  583. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_endpoints_response_200.py +0 -0
  584. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_envelope.py +0 -0
  585. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_filters_response_200.py +0 -0
  586. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_function_logs_response_200.py +0 -0
  587. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_function_logs_response_200_data.py +0 -0
  588. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_function_secrets_response_200.py +0 -0
  589. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_function_secrets_response_200_data.py +0 -0
  590. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_functions_response_200.py +0 -0
  591. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_org_secrets_response_200.py +0 -0
  592. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_org_secrets_response_200_data.py +0 -0
  593. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_payout_addresses_response_200.py +0 -0
  594. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_registries_response_200.py +0 -0
  595. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_registry_agents_response_200.py +0 -0
  596. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_registry_requests_response_200.py +0 -0
  597. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_repeating_sends_response_200.py +0 -0
  598. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_routes_response_200.py +0 -0
  599. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_sent_emails_response_200.py +0 -0
  600. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_templates_response_200.py +0 -0
  601. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_wake_authorizations_response_200.py +0 -0
  602. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_wake_dispatches_response_200.py +0 -0
  603. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/list_wake_schedules_response_200.py +0 -0
  604. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/member_address.py +0 -0
  605. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/member_sender.py +0 -0
  606. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_json_value_type_5.py +0 -0
  607. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_record.py +0 -0
  608. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_record_with_value.py +0 -0
  609. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_resolved_scope.py +0 -0
  610. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_resolved_scope_type.py +0 -0
  611. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_scope_type_0.py +0 -0
  612. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_scope_type_0_type.py +0 -0
  613. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_scope_type_1.py +0 -0
  614. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/memory_scope_type_1_type.py +0 -0
  615. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/org_secret_list_item.py +0 -0
  616. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/org_secret_write_result.py +0 -0
  617. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/outbound_status.py +0 -0
  618. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/outbound_status_domain.py +0 -0
  619. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/outbound_status_domain_status.py +0 -0
  620. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/outbound_status_next_actions_item.py +0 -0
  621. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pagination_meta.py +0 -0
  622. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/parsed_email_data.py +0 -0
  623. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/parsed_email_data_error_type_0.py +0 -0
  624. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/parsed_email_data_status.py +0 -0
  625. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pay_challenge_input.py +0 -0
  626. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pay_challenge_response_200.py +0 -0
  627. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/plan_limits.py +0 -0
  628. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/poll_cli_login_input.py +0 -0
  629. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/poll_cli_login_response_200.py +0 -0
  630. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/presence_control_type_0.py +0 -0
  631. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/presence_control_type_0_status.py +0 -0
  632. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/presence_profile.py +0 -0
  633. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/provision_member_address_body.py +0 -0
  634. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/provision_member_address_response_200.py +0 -0
  635. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_agent_input.py +0 -0
  636. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_agent_response_200.py +0 -0
  637. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_agent_response_201.py +0 -0
  638. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_agent_result.py +0 -0
  639. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_agent_result_status.py +0 -0
  640. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/publish_policy.py +0 -0
  641. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_input.py +0 -0
  642. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response.py +0 -0
  643. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_data.py +0 -0
  644. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_data_delivery_type_0.py +0 -0
  645. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_data_delivery_type_0_headers.py +0 -0
  646. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_data_handler_timeout_seconds.py +0 -0
  647. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_data_retention_seconds.py +0 -0
  648. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/pull_webhook_response_meta.py +0 -0
  649. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_body_type_0.py +0 -0
  650. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_body_type_1.py +0 -0
  651. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_policy_create.py +0 -0
  652. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_policy_replace.py +0 -0
  653. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_policy_response_200.py +0 -0
  654. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_response_200.py +0 -0
  655. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_agent_contact_response_200_data.py +0 -0
  656. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_body_type_0.py +0 -0
  657. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_body_type_1.py +0 -0
  658. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_policy_create.py +0 -0
  659. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_policy_replace.py +0 -0
  660. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_policy_response_200.py +0 -0
  661. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_response_200.py +0 -0
  662. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/put_contact_response_200_data.py +0 -0
  663. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/recipient_route.py +0 -0
  664. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/recipient_route_match_type.py +0 -0
  665. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/redeem_credit_code_input.py +0 -0
  666. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/redeem_credit_code_response_200.py +0 -0
  667. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/register_payout_address_input.py +0 -0
  668. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/register_payout_address_input_network.py +0 -0
  669. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/register_payout_address_response_201.py +0 -0
  670. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/registry.py +0 -0
  671. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/registry_agent.py +0 -0
  672. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/registry_request.py +0 -0
  673. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/remove_agent_connection_response_200.py +0 -0
  674. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/remove_agent_connection_response_200_data.py +0 -0
  675. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/remove_default_network_member_response_200.py +0 -0
  676. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/remove_default_network_member_response_200_data.py +0 -0
  677. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reorder_routes_input.py +0 -0
  678. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reorder_routes_input_updates_item.py +0 -0
  679. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reorder_routes_response_200.py +0 -0
  680. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeat_input.py +0 -0
  681. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeat_stop_request.py +0 -0
  682. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeat_stop_result.py +0 -0
  683. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeat_stop_result_status.py +0 -0
  684. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeating_send.py +0 -0
  685. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/repeating_send_status.py +0 -0
  686. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/replay_delivery_response_200.py +0 -0
  687. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/replay_email_webhooks_response_200.py +0 -0
  688. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/replay_result.py +0 -0
  689. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reply_email.py +0 -0
  690. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reply_input.py +0 -0
  691. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reply_to_email_response_200.py +0 -0
  692. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/reschedule_sent_email_response_200.py +0 -0
  693. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/resend_agent_signup_verification_input.py +0 -0
  694. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/resend_agent_signup_verification_response_200.py +0 -0
  695. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/resend_cli_signup_verification_input.py +0 -0
  696. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/resend_cli_signup_verification_response_200.py +0 -0
  697. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/resolve_registry_handle_response_200.py +0 -0
  698. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/revoke_agent_connection_response_200.py +0 -0
  699. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/revoke_agent_connection_response_200_data.py +0 -0
  700. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/revoke_agent_connection_response_200_data_connection.py +0 -0
  701. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/revoke_agent_connection_response_200_data_connection_ownership_kind.py +0 -0
  702. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/revoke_agent_connection_response_200_data_connection_status.py +0 -0
  703. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/rotate_webhook_secret_response_200.py +0 -0
  704. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/route_evaluated_entry.py +0 -0
  705. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/route_evaluated_entry_result.py +0 -0
  706. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/route_evaluated_entry_tier.py +0 -0
  707. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/routing_topology.py +0 -0
  708. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/routing_topology_domains_item.py +0 -0
  709. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/routing_topology_domains_item_routed_function_type_0.py +0 -0
  710. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/routing_topology_fallback_function_type_0.py +0 -0
  711. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/routing_topology_unrouted_functions_item.py +0 -0
  712. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/run_wake_schedule_response_200.py +0 -0
  713. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/run_wake_schedule_response_200_data.py +0 -0
  714. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_automated.py +0 -0
  715. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_awaiting.py +0 -0
  716. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_count.py +0 -0
  717. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_has_attachment.py +0 -0
  718. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_include_facets.py +0 -0
  719. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_prefix.py +0 -0
  720. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_response_200.py +0 -0
  721. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_snippet.py +0 -0
  722. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_emails_sort.py +0 -0
  723. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_memories_include_value.py +0 -0
  724. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_memories_response_200.py +0 -0
  725. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/search_memories_scope_type.py +0 -0
  726. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_coverage.py +0 -0
  727. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_field.py +0 -0
  728. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_input_corpus_item.py +0 -0
  729. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_input_include_item.py +0 -0
  730. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_input_mode.py +0 -0
  731. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_meta.py +0 -0
  732. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_meta_mode.py +0 -0
  733. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_response_200.py +0 -0
  734. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_result.py +0 -0
  735. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_result_source_type.py +0 -0
  736. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_score_breakdown.py +0 -0
  737. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/semantic_search_snippet.py +0 -0
  738. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_email_response_200.py +0 -0
  739. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_mail_attachment.py +0 -0
  740. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_mail_payload_ref.py +0 -0
  741. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_mail_result.py +0 -0
  742. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_address.py +0 -0
  743. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_address_type.py +0 -0
  744. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_any_recipient.py +0 -0
  745. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_any_recipient_type.py +0 -0
  746. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_managed_zone.py +0 -0
  747. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_managed_zone_type.py +0 -0
  748. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_your_domain.py +0 -0
  749. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permission_your_domain_type.py +0 -0
  750. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/send_permissions_meta.py +0 -0
  751. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_detail_attachments_item.py +0 -0
  752. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_detail_repeat_type_0.py +0 -0
  753. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_detail_sender_member_type_0.py +0 -0
  754. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_detail_tags_type_0_item.py +0 -0
  755. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_status.py +0 -0
  756. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_summary_repeat_type_0.py +0 -0
  757. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/sent_email_summary_sender_member_type_0.py +0 -0
  758. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_function_route_response_200.py +0 -0
  759. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_function_secret_input.py +0 -0
  760. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_function_secret_response_200.py +0 -0
  761. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_function_secret_response_201.py +0 -0
  762. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_memory_input.py +0 -0
  763. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_memory_response_200.py +0 -0
  764. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_memory_response_201.py +0 -0
  765. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_org_secret_input.py +0 -0
  766. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_org_secret_response_200.py +0 -0
  767. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/set_org_secret_response_201.py +0 -0
  768. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_input.py +0 -0
  769. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_response_200.py +0 -0
  770. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result.py +0 -0
  771. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_default_scope_type_1.py +0 -0
  772. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_default_scope_type_2_type_1.py +0 -0
  773. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_default_scope_type_3_type_1.py +0 -0
  774. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_matched_tier_type_1.py +0 -0
  775. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_matched_tier_type_2_type_1.py +0 -0
  776. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_matched_tier_type_3_type_1.py +0 -0
  777. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/simulate_route_result_outcome.py +0 -0
  778. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_agent_claim_input.py +0 -0
  779. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_agent_claim_response_200.py +0 -0
  780. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_agent_signup_input.py +0 -0
  781. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_agent_signup_input_metadata.py +0 -0
  782. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_agent_signup_response_201.py +0 -0
  783. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_login_input.py +0 -0
  784. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_login_input_metadata.py +0 -0
  785. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_login_response_201.py +0 -0
  786. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_signup_input.py +0 -0
  787. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_signup_input_metadata.py +0 -0
  788. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/start_cli_signup_response_201.py +0 -0
  789. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/stop_repeat_from_email_response_200.py +0 -0
  790. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/storage_stats.py +0 -0
  791. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/success_envelope.py +0 -0
  792. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_author.py +0 -0
  793. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_install.py +0 -0
  794. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_install_mode.py +0 -0
  795. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_install_state.py +0 -0
  796. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_install_status.py +0 -0
  797. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_manifest.py +0 -0
  798. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_registry_detail.py +0 -0
  799. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_registry_page.py +0 -0
  800. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_registry_status.py +0 -0
  801. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_registry_summary.py +0 -0
  802. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_secret.py +0 -0
  803. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_secret_group.py +0 -0
  804. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_setup.py +0 -0
  805. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_source_type_0.py +0 -0
  806. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_source_type_1.py +0 -0
  807. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_variable.py +0 -0
  808. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_variable_type.py +0 -0
  809. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/template_variable_validation.py +0 -0
  810. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_endpoint_response_200.py +0 -0
  811. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_endpoint_rules_input.py +0 -0
  812. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_endpoint_rules_response_200.py +0 -0
  813. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_endpoint_rules_result.py +0 -0
  814. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_endpoint_rules_result_evaluated.py +0 -0
  815. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_function_body.py +0 -0
  816. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_function_response_200.py +0 -0
  817. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_invocation_result.py +0 -0
  818. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/test_result.py +0 -0
  819. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/thread.py +0 -0
  820. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/thread_message.py +0 -0
  821. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/thread_message_direction.py +0 -0
  822. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/thread_message_repeat_type_0.py +0 -0
  823. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/thread_message_sender_member_type_0.py +0 -0
  824. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/unpublish_agent_response_200.py +0 -0
  825. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/unpublish_agent_response_200_data.py +0 -0
  826. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/unset_function_route_response_200.py +0 -0
  827. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/unset_function_route_response_200_data.py +0 -0
  828. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/unverified_domain.py +0 -0
  829. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_account_input.py +0 -0
  830. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_account_response_200.py +0 -0
  831. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_agent_network_member_input.py +0 -0
  832. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_default_network_member_response_200.py +0 -0
  833. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_domain_input.py +0 -0
  834. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_domain_response_200.py +0 -0
  835. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_endpoint_input.py +0 -0
  836. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_endpoint_response_200.py +0 -0
  837. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_filter_input.py +0 -0
  838. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_filter_response_200.py +0 -0
  839. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_function_input.py +0 -0
  840. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_function_input_files.py +0 -0
  841. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_function_response_200.py +0 -0
  842. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_registry_input.py +0 -0
  843. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_registry_response_200.py +0 -0
  844. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_registry_response_200_data.py +0 -0
  845. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_repeating_send_request.py +0 -0
  846. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_repeating_send_request_status.py +0 -0
  847. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_repeating_send_response_200.py +0 -0
  848. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_route_input.py +0 -0
  849. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_route_input_match_type.py +0 -0
  850. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_route_response_200.py +0 -0
  851. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_spend_policy_input.py +0 -0
  852. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_spend_policy_response_200.py +0 -0
  853. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_wake_authorization_input.py +0 -0
  854. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_wake_authorization_response_200.py +0 -0
  855. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_wake_schedule_input.py +0 -0
  856. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_wake_schedule_input_args.py +0 -0
  857. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/update_wake_schedule_response_200.py +0 -0
  858. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verified_domain.py +0 -0
  859. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_agent_claim_input.py +0 -0
  860. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_agent_claim_response_200.py +0 -0
  861. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_agent_signup_input.py +0 -0
  862. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_agent_signup_response_200.py +0 -0
  863. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_cli_signup_input.py +0 -0
  864. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_cli_signup_response_200.py +0 -0
  865. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/verify_domain_response_200.py +0 -0
  866. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/wake_authorization.py +0 -0
  867. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/wake_dispatch.py +0 -0
  868. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/wake_schedule.py +0 -0
  869. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/wake_schedule_args.py +0 -0
  870. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/webhook_secret.py +0 -0
  871. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/whoami_response_200.py +0 -0
  872. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_challenge.py +0 -0
  873. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_challenge_network.py +0 -0
  874. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_challenge_status.py +0 -0
  875. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_declined_payment.py +0 -0
  876. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_declined_payment_network.py +0 -0
  877. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_email_challenge.py +0 -0
  878. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_email_challenge_details.py +0 -0
  879. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_nonce_binding.py +0 -0
  880. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_payload.py +0 -0
  881. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_payload_network.py +0 -0
  882. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_payload_payload.py +0 -0
  883. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_payload_payload_authorization.py +0 -0
  884. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_requirements.py +0 -0
  885. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_requirements_extra.py +0 -0
  886. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payment_requirements_network.py +0 -0
  887. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payout_address.py +0 -0
  888. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_payout_address_network.py +0 -0
  889. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_receipt.py +0 -0
  890. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_receipt_status.py +0 -0
  891. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/models/x402_spend_policy.py +0 -0
  892. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/api/types.py +0 -0
  893. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/errors.py +0 -0
  894. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/event_receiver.py +0 -0
  895. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/interactions.py +0 -0
  896. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/presence.py +0 -0
  897. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/py.typed +0 -0
  898. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/received_email.py +0 -0
  899. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/repeats.py +0 -0
  900. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/signal_content.py +0 -0
  901. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/signals.py +0 -0
  902. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/trust.py +0 -0
  903. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/x402/__init__.py +0 -0
  904. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/x402/client.py +0 -0
  905. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/src/primitive/x402/sign.py +0 -0
  906. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/attachment-part.json +0 -0
  907. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/auth/cases.json +0 -0
  908. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/automated-mail/cases.json +0 -0
  909. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/contact-pattern-conformance.json +0 -0
  910. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/download-tokens/vectors.json +0 -0
  911. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/email-search-pages.json +0 -0
  912. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/handle-webhook/cases.json +0 -0
  913. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/handle-webhook/standard-webhooks-cases.json +0 -0
  914. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/header-address-parser/cases.json +0 -0
  915. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/interaction-decoded.json +0 -0
  916. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/interaction-envelopes.json +0 -0
  917. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/local-event-receiver.json +0 -0
  918. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/parse-webhook-event/cases.json +0 -0
  919. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/payloads/conformance-vector.json +0 -0
  920. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/presence-emails.json +0 -0
  921. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/raw/cases.json +0 -0
  922. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/repeat-interactions.json +0 -0
  923. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/send-payloads/cases.json +0 -0
  924. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/sent-attachment-completeness.json +0 -0
  925. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/sent-email-attachment.json +0 -0
  926. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/sent-email-recipients.json +0 -0
  927. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/signal-content.eml +0 -0
  928. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/signal-content.json +0 -0
  929. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/signal-emails.json +0 -0
  930. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/signing/standard-webhooks-vectors.json +0 -0
  931. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/subject-builders/cases.json +0 -0
  932. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/trust/cases.json +0 -0
  933. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/webhook/address-scoped-email.json +0 -0
  934. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/test-fixtures/webhook/valid-email-received.json +0 -0
  935. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/conftest.py +0 -0
  936. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_attachment_parts.py +0 -0
  937. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_auth.py +0 -0
  938. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_conversation_since.py +0 -0
  939. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_credits.py +0 -0
  940. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_email_search.py +0 -0
  941. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_encoding.py +0 -0
  942. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_event_receiver.py +0 -0
  943. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_events.py +0 -0
  944. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_generated_agent_connections.py +0 -0
  945. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_generated_downloads.py +0 -0
  946. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_generated_pull_events.py +0 -0
  947. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_interactions.py +0 -0
  948. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_mail_deletion.py +0 -0
  949. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_parsing.py +0 -0
  950. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_presence.py +0 -0
  951. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_repeats.py +0 -0
  952. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_search_scope_errors.py +0 -0
  953. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_send_payloads.py +0 -0
  954. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_sent_email_recipients.py +0 -0
  955. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_signal_content.py +0 -0
  956. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_signals.py +0 -0
  957. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_signing.py +0 -0
  958. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_trust.py +0 -0
  959. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_validation.py +0 -0
  960. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_webhook.py +0 -0
  961. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_x402_client.py +0 -0
  962. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_x402_extract.py +0 -0
  963. {primitivedotdev-2.1.0 → primitivedotdev-2.3.0}/tests/test_x402_sign.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: primitivedotdev
3
- Version: 2.1.0
3
+ Version: 2.3.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
@@ -173,6 +173,27 @@ client.forward(
173
173
  )
174
174
  ```
175
175
 
176
+ ### Errors and rate limits
177
+
178
+ A failed call raises `primitive.PrimitiveAPIError`. It carries `status_code`,
179
+ `code`, `request_id`, `details`, and `retry_after` (the `Retry-After` header in
180
+ seconds, when the server sent one). On a 429 it also carries `rate_limit`, a
181
+ `primitive.RateLimit` with `limit`, `remaining`, `reset` (Unix seconds) and
182
+ `policy` from the `ratelimit-*` headers. These describe the limiter that
183
+ rejected the request, with its own window, which may be a send cap
184
+ (`1000;w=3600`) rather than the API request budget. `rate_limit` is `None` when
185
+ a 429 carried only `Retry-After`; wait for `retry_after` either way.
186
+
187
+ ```python
188
+ from primitive import PrimitiveAPIError
189
+
190
+ try:
191
+ client.send(from_email=sender, to=to, subject="Hi", body_text="Hello")
192
+ except PrimitiveAPIError as err:
193
+ if err.status_code == 429:
194
+ print(err.retry_after, err.rate_limit and err.rate_limit.policy)
195
+ ```
196
+
176
197
  ### Per-call request options
177
198
 
178
199
  `send`, `reply`, `forward` (and their `a*` async variants) accept the same
@@ -604,11 +625,49 @@ page = search_emails(
604
625
  Turning `include_facets` off skips the facet aggregation entirely. Search text
605
626
  containing a NUL character is rejected with a 400 validation error.
606
627
 
628
+ `q` takes words, `"quoted phrases"` and `field:value` filters, and every
629
+ term must match. An upper-case `OR` between two text terms (words, phrases,
630
+ `subject:` and `body:` terms) accepts either and binds tighter than the
631
+ implicit AND, so `acme invoice OR receipt` means `acme` and either `invoice` or
632
+ `receipt`. `OR` cannot join filters such as `from:`, and there is no `NOT`;
633
+ either is a 400 validation error, as is a leading or trailing `OR`. To search
634
+ for the word `OR` or `NOT` itself, write it in lower case or in double quotes.
635
+ Facet values are ordered by count descending, ties by value in byte order, and
636
+ `by_sender` and `by_domain` keep the first 20.
637
+
638
+ Date filters such as `date_from` and `date_to` take an ISO 8601 timestamp with
639
+ `Z` or a numeric UTC offset (`2026-10-02T00:00:00-04:00`); a time with no zone,
640
+ or a bare date, is rejected.
641
+
607
642
  Upgrading to 2.0: `EmailSearchMeta.total` is now typed `int | None`. It is
608
643
  `None` only when the request sets `count=SearchEmailsCount.FALSE`; type-checked
609
644
  code that treats it as an `int` needs a `None` check. Search results also gain
610
645
  the required `thread_id` and `direction` fields.
611
646
 
647
+ ### Sent email webhook events
648
+
649
+ Endpoints can also receive events about mail you send: `sent_email.accepted`, `sent_email.delivered`, `sent_email.failed` and `sent_email.completed`. They are opt-in: an endpoint receives them only when its `rules.event_types` lists them (with the CLI, `primitive endpoints create --url <url> --event-types sent_email.*`). An endpoint that lists them and also handles inbound mail must keep `email.received` in the list.
650
+
651
+ Each body carries `event`, and is validated against the `sent_email.*` JSON schema when parsed. Each recipient (To, Cc and Bcc) of a send gets exactly one `sent_email.delivered` or `sent_email.failed` with `scope` `"recipient"`, for up to 100 recipients. Mail relay sends with more recipients report the rest in roll-ups (`scope` `"message"`, `reason` `"rollup"`), sends recorded before per-recipient results can report one legacy message-level result (`reason` `"legacy_message_result"`), and relay recipients delivered inside the sender's own mail system get no event and are listed in `summary.not_relayed_recipients`. So do not wait for a per-recipient event per address: use `sent_email.completed`, which carries the totals once every recipient is final. Deduplicate on the event `id` (equal to the `X-Webhook-Id` header), and check that `delivery.endpoint_id` is the endpoint that received the request.
652
+
653
+ ```python
654
+ from primitive import (
655
+ handle_webhook_event,
656
+ is_sent_email_completed_event,
657
+ is_sent_email_recipient_result_event,
658
+ )
659
+
660
+ event = handle_webhook_event(body=raw_body, headers=request.headers, secret=secret)
661
+
662
+ if is_sent_email_recipient_result_event(event) and event.event == "sent_email.failed":
663
+ # event.recipient.type is "to", "cc" or "bcc"
664
+ print(event.recipient.address, event.outcome.smtp_enhanced_status_code)
665
+ elif is_sent_email_completed_event(event):
666
+ print(event.summary.recipient_count, event.summary.delivered, event.summary.failed)
667
+ ```
668
+
669
+ Parsed events are Pydantic models (`SentEmailAcceptedEvent`, `SentEmailRecipientResultEvent`, `SentEmailRollupResultEvent`, `SentEmailLegacyMessageResultEvent`, `SentEmailCompletedEvent`). `validate_sent_email_event` / `safe_validate_sent_email_event` validate an already parsed body, and the schema is exported as `sent_email_event_json_schema`. An `email.bounced` event's `email.analysis.bounce` carries `sent_email_id` (the send the bounce belongs to, or None when it could not be linked) and `failed_recipients` (every failed address, up to 100).
670
+
612
671
  ### Payment and interaction webhook events
613
672
 
614
673
  Webhooks are not email-only. The same endpoint also receives `payment.*` settlement notifications and `interaction.x402.*` events from the x402-over-email flow. The event name is carried in the **`X-Webhook-Event` header** for every family. The body is sent verbatim with no envelope, so it is the header (not a body field) that names the event: an `email.*` body carries `event`, a `payment.*` body carries the name in `type`, and an `interaction.*` body is just `{"interaction": {...}}` with no event/type field at all.
@@ -639,6 +698,7 @@ elif is_interaction_x402_event(event):
639
698
  The full catalog of header values is exported as the `WEBHOOK_EVENT_TYPES` tuple:
640
699
 
641
700
  - `email.received`, `email.bounced`, `email.tls_report`, `email.dmarc_report`, `email.dmarc_failure`
701
+ - `sent_email.accepted`, `sent_email.delivered`, `sent_email.failed`, `sent_email.completed` (opt-in)
642
702
  - `payment.settled`, `payment.failed`
643
703
  - `interaction.x402.challenge`, `interaction.x402.payment`, `interaction.x402.settled`, `interaction.x402.rejected`, `interaction.x402.declined`, `interaction.x402.expired`, `interaction.x402.verify_timeout`
644
704
  - `interaction.ack.received`, `interaction.ack.requested`, `interaction.ack.acked`, `interaction.ack.canceled`, `interaction.ack.expired`
@@ -143,6 +143,27 @@ client.forward(
143
143
  )
144
144
  ```
145
145
 
146
+ ### Errors and rate limits
147
+
148
+ A failed call raises `primitive.PrimitiveAPIError`. It carries `status_code`,
149
+ `code`, `request_id`, `details`, and `retry_after` (the `Retry-After` header in
150
+ seconds, when the server sent one). On a 429 it also carries `rate_limit`, a
151
+ `primitive.RateLimit` with `limit`, `remaining`, `reset` (Unix seconds) and
152
+ `policy` from the `ratelimit-*` headers. These describe the limiter that
153
+ rejected the request, with its own window, which may be a send cap
154
+ (`1000;w=3600`) rather than the API request budget. `rate_limit` is `None` when
155
+ a 429 carried only `Retry-After`; wait for `retry_after` either way.
156
+
157
+ ```python
158
+ from primitive import PrimitiveAPIError
159
+
160
+ try:
161
+ client.send(from_email=sender, to=to, subject="Hi", body_text="Hello")
162
+ except PrimitiveAPIError as err:
163
+ if err.status_code == 429:
164
+ print(err.retry_after, err.rate_limit and err.rate_limit.policy)
165
+ ```
166
+
146
167
  ### Per-call request options
147
168
 
148
169
  `send`, `reply`, `forward` (and their `a*` async variants) accept the same
@@ -574,11 +595,49 @@ page = search_emails(
574
595
  Turning `include_facets` off skips the facet aggregation entirely. Search text
575
596
  containing a NUL character is rejected with a 400 validation error.
576
597
 
598
+ `q` takes words, `"quoted phrases"` and `field:value` filters, and every
599
+ term must match. An upper-case `OR` between two text terms (words, phrases,
600
+ `subject:` and `body:` terms) accepts either and binds tighter than the
601
+ implicit AND, so `acme invoice OR receipt` means `acme` and either `invoice` or
602
+ `receipt`. `OR` cannot join filters such as `from:`, and there is no `NOT`;
603
+ either is a 400 validation error, as is a leading or trailing `OR`. To search
604
+ for the word `OR` or `NOT` itself, write it in lower case or in double quotes.
605
+ Facet values are ordered by count descending, ties by value in byte order, and
606
+ `by_sender` and `by_domain` keep the first 20.
607
+
608
+ Date filters such as `date_from` and `date_to` take an ISO 8601 timestamp with
609
+ `Z` or a numeric UTC offset (`2026-10-02T00:00:00-04:00`); a time with no zone,
610
+ or a bare date, is rejected.
611
+
577
612
  Upgrading to 2.0: `EmailSearchMeta.total` is now typed `int | None`. It is
578
613
  `None` only when the request sets `count=SearchEmailsCount.FALSE`; type-checked
579
614
  code that treats it as an `int` needs a `None` check. Search results also gain
580
615
  the required `thread_id` and `direction` fields.
581
616
 
617
+ ### Sent email webhook events
618
+
619
+ Endpoints can also receive events about mail you send: `sent_email.accepted`, `sent_email.delivered`, `sent_email.failed` and `sent_email.completed`. They are opt-in: an endpoint receives them only when its `rules.event_types` lists them (with the CLI, `primitive endpoints create --url <url> --event-types sent_email.*`). An endpoint that lists them and also handles inbound mail must keep `email.received` in the list.
620
+
621
+ Each body carries `event`, and is validated against the `sent_email.*` JSON schema when parsed. Each recipient (To, Cc and Bcc) of a send gets exactly one `sent_email.delivered` or `sent_email.failed` with `scope` `"recipient"`, for up to 100 recipients. Mail relay sends with more recipients report the rest in roll-ups (`scope` `"message"`, `reason` `"rollup"`), sends recorded before per-recipient results can report one legacy message-level result (`reason` `"legacy_message_result"`), and relay recipients delivered inside the sender's own mail system get no event and are listed in `summary.not_relayed_recipients`. So do not wait for a per-recipient event per address: use `sent_email.completed`, which carries the totals once every recipient is final. Deduplicate on the event `id` (equal to the `X-Webhook-Id` header), and check that `delivery.endpoint_id` is the endpoint that received the request.
622
+
623
+ ```python
624
+ from primitive import (
625
+ handle_webhook_event,
626
+ is_sent_email_completed_event,
627
+ is_sent_email_recipient_result_event,
628
+ )
629
+
630
+ event = handle_webhook_event(body=raw_body, headers=request.headers, secret=secret)
631
+
632
+ if is_sent_email_recipient_result_event(event) and event.event == "sent_email.failed":
633
+ # event.recipient.type is "to", "cc" or "bcc"
634
+ print(event.recipient.address, event.outcome.smtp_enhanced_status_code)
635
+ elif is_sent_email_completed_event(event):
636
+ print(event.summary.recipient_count, event.summary.delivered, event.summary.failed)
637
+ ```
638
+
639
+ Parsed events are Pydantic models (`SentEmailAcceptedEvent`, `SentEmailRecipientResultEvent`, `SentEmailRollupResultEvent`, `SentEmailLegacyMessageResultEvent`, `SentEmailCompletedEvent`). `validate_sent_email_event` / `safe_validate_sent_email_event` validate an already parsed body, and the schema is exported as `sent_email_event_json_schema`. An `email.bounced` event's `email.analysis.bounce` carries `sent_email_id` (the send the bounce belongs to, or None when it could not be linked) and `failed_recipients` (every failed address, up to 100).
640
+
582
641
  ### Payment and interaction webhook events
583
642
 
584
643
  Webhooks are not email-only. The same endpoint also receives `payment.*` settlement notifications and `interaction.x402.*` events from the x402-over-email flow. The event name is carried in the **`X-Webhook-Event` header** for every family. The body is sent verbatim with no envelope, so it is the header (not a body field) that names the event: an `email.*` body carries `event`, a `payment.*` body carries the name in `type`, and an `interaction.*` body is just `{"interaction": {...}}` with no event/type field at all.
@@ -609,6 +668,7 @@ elif is_interaction_x402_event(event):
609
668
  The full catalog of header values is exported as the `WEBHOOK_EVENT_TYPES` tuple:
610
669
 
611
670
  - `email.received`, `email.bounced`, `email.tls_report`, `email.dmarc_report`, `email.dmarc_failure`
671
+ - `sent_email.accepted`, `sent_email.delivered`, `sent_email.failed`, `sent_email.completed` (opt-in)
612
672
  - `payment.settled`, `payment.failed`
613
673
  - `interaction.x402.challenge`, `interaction.x402.payment`, `interaction.x402.settled`, `interaction.x402.rejected`, `interaction.x402.declined`, `interaction.x402.expired`, `interaction.x402.verify_timeout`
614
674
  - `interaction.ack.received`, `interaction.ack.requested`, `interaction.ack.acked`, `interaction.ack.canceled`, `interaction.ack.expired`
@@ -798,7 +798,19 @@
798
798
  },
799
799
  "failed_recipient": {
800
800
  "type": ["string", "null"],
801
- "description": "The recipient address that failed, if the report identifies one."
801
+ "description": "The first failed recipient, as the bounce wrote it, if the report identifies one. The status and diagnostic fields describe this recipient."
802
+ },
803
+ "failed_recipients": {
804
+ "type": "array",
805
+ "maxItems": 100,
806
+ "items": {
807
+ "type": "string"
808
+ },
809
+ "description": "Every address the bounce reports as failed, lowercased and deduplicated, up to 100. Includes both the final and the original recipient when an alias or forward rewrote the address. Empty when the bounce names no usable address. Absent on payloads built before this field existed."
810
+ },
811
+ "sent_email_id": {
812
+ "type": ["string", "null"],
813
+ "description": "The id of your send this bounce belongs to (the same id as `GET /v1/sent-emails/{id}`), or null when it could not be linked. Linking is best effort: a bounce links only when it quotes the original Message-ID of a send from your organization and one of its failed recipients was on that send. Absent on payloads built before this field existed."
802
814
  },
803
815
  "smtp_code": {
804
816
  "type": ["integer", "null"],
@@ -0,0 +1,431 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$ref": "#/definitions/SentEmailEvent",
4
+ "definitions": {
5
+ "SentEmailEvent": {
6
+ "title": "SentEmailEvent",
7
+ "description": "The body of a sent_email.* webhook delivery: events about mail you send through Primitive. A separate payload family from the inbound email.* events, with its own version. Keys that do not apply to an event are absent, not null. Fields marked open take values beyond the ones listed; treat unknown values as newer additions.",
8
+ "oneOf": [
9
+ { "$ref": "#/definitions/SentEmailAcceptedEvent" },
10
+ { "$ref": "#/definitions/SentEmailRecipientResultEvent" },
11
+ { "$ref": "#/definitions/SentEmailRollupResultEvent" },
12
+ { "$ref": "#/definitions/SentEmailLegacyMessageResultEvent" },
13
+ { "$ref": "#/definitions/SentEmailCompletedEvent" }
14
+ ]
15
+ },
16
+ "SentEmailEventDelivery": {
17
+ "type": "object",
18
+ "description": "This webhook attempt. Not the email's delivery.",
19
+ "required": ["endpoint_id", "attempt", "attempted_at"],
20
+ "properties": {
21
+ "endpoint_id": {
22
+ "type": "string",
23
+ "description": "The endpoint this attempt was sent to. Every endpoint is signed with the organization's secret, so check this is the endpoint that received the request."
24
+ },
25
+ "attempt": {
26
+ "type": "integer",
27
+ "minimum": 1,
28
+ "description": "1 for the first attempt, higher on retries."
29
+ },
30
+ "attempted_at": {
31
+ "type": "string",
32
+ "format": "date-time",
33
+ "description": "When this attempt was sent."
34
+ }
35
+ }
36
+ },
37
+ "SentEmailTag": {
38
+ "type": "object",
39
+ "required": ["name", "value"],
40
+ "properties": {
41
+ "name": { "type": "string" },
42
+ "value": { "type": "string" }
43
+ }
44
+ },
45
+ "SentEmailRelay": {
46
+ "type": "object",
47
+ "description": "The mail relay that took a relay send.",
48
+ "required": ["hostname", "via"],
49
+ "properties": {
50
+ "hostname": {
51
+ "type": "string",
52
+ "description": "The Primitive relay that took the message."
53
+ },
54
+ "via": { "type": "string", "const": "mail_relay" }
55
+ }
56
+ },
57
+ "SentEmailRecord": {
58
+ "type": "object",
59
+ "description": "The send's current state when this attempt was made, with the same fields as GET /v1/sent-emails/{id}. Not a snapshot of when the event was created, and not this event's result.",
60
+ "required": [
61
+ "id",
62
+ "status",
63
+ "status_changed_at",
64
+ "created_at",
65
+ "source",
66
+ "from_address",
67
+ "to_addresses",
68
+ "cc",
69
+ "bcc",
70
+ "recipient_count",
71
+ "subject",
72
+ "message_id",
73
+ "thread_id",
74
+ "tags",
75
+ "relay"
76
+ ],
77
+ "properties": {
78
+ "id": {
79
+ "type": "string",
80
+ "description": "The sent email id. For mail relay sends there is no API call, and the id first appears in these events."
81
+ },
82
+ "status": {
83
+ "type": "string",
84
+ "description": "The send's overall status (open): queued, scheduled, submitted_to_agent, deferred, delivered, bounced, wait_timeout, unknown, agent_failed, gate_denied, canceled. Never a recipient's result."
85
+ },
86
+ "status_changed_at": { "type": "string", "format": "date-time" },
87
+ "created_at": { "type": "string", "format": "date-time" },
88
+ "source": {
89
+ "type": "string",
90
+ "description": "How the mail entered Primitive (open): api or mail_relay."
91
+ },
92
+ "from_address": { "type": "string" },
93
+ "to_addresses": {
94
+ "type": ["array", "null"],
95
+ "items": { "type": "string" }
96
+ },
97
+ "cc": {
98
+ "type": ["array", "null"],
99
+ "items": { "type": "string" },
100
+ "description": "Null when the send had no Cc recipients."
101
+ },
102
+ "bcc": {
103
+ "type": ["array", "null"],
104
+ "items": { "type": "string" },
105
+ "description": "Null when the send had no Bcc recipients. On a mail relay send, every recipient no To or Cc header names."
106
+ },
107
+ "recipient_count": {
108
+ "type": ["integer", "null"],
109
+ "minimum": 0,
110
+ "description": "Every recipient of the send, To, Cc and Bcc together, each address counted once. On a relay send, recipients the relay never received (mail kept inside the sender's own mail system) get no result events."
111
+ },
112
+ "subject": { "type": ["string", "null"] },
113
+ "message_id": { "type": ["string", "null"] },
114
+ "thread_id": { "type": ["string", "null"] },
115
+ "tags": {
116
+ "type": ["array", "null"],
117
+ "description": "The tags given on the send request. Null or empty when there are none; relay sends carry none.",
118
+ "items": { "$ref": "#/definitions/SentEmailTag" }
119
+ },
120
+ "relay": {
121
+ "description": "The mail relay that took a relay send, or null for API sends.",
122
+ "oneOf": [{ "type": "null" }, { "$ref": "#/definitions/SentEmailRelay" }]
123
+ }
124
+ }
125
+ },
126
+ "SentEmailRecipientType": {
127
+ "type": "string",
128
+ "enum": ["to", "cc", "bcc"],
129
+ "description": "The list that names the recipient. On a mail relay send every hidden recipient is bcc."
130
+ },
131
+ "SentEmailFailureKind": {
132
+ "type": "string",
133
+ "enum": ["rejected", "expired"],
134
+ "description": "rejected: the receiving server refused the message permanently. expired: it kept asking to retry until the retry period ran out. Closed for this version."
135
+ },
136
+ "SentEmailRecipient": {
137
+ "type": "object",
138
+ "required": ["address", "type"],
139
+ "properties": {
140
+ "address": { "type": "string" },
141
+ "type": { "$ref": "#/definitions/SentEmailRecipientType" }
142
+ }
143
+ },
144
+ "SentEmailOutcome": {
145
+ "type": "object",
146
+ "description": "This event's result.",
147
+ "required": [
148
+ "result",
149
+ "failure_kind",
150
+ "smtp_response_code",
151
+ "smtp_enhanced_status_code",
152
+ "smtp_response_text",
153
+ "at"
154
+ ],
155
+ "properties": {
156
+ "result": { "type": "string", "enum": ["delivered", "failed"] },
157
+ "failure_kind": {
158
+ "description": "Null when delivered.",
159
+ "oneOf": [{ "type": "null" }, { "$ref": "#/definitions/SentEmailFailureKind" }]
160
+ },
161
+ "smtp_response_code": { "type": ["integer", "null"] },
162
+ "smtp_enhanced_status_code": { "type": ["string", "null"] },
163
+ "smtp_response_text": {
164
+ "type": ["string", "null"],
165
+ "description": "Text from a third-party server: untrusted, never render it as HTML."
166
+ },
167
+ "at": {
168
+ "type": ["string", "null"],
169
+ "format": "date-time",
170
+ "description": "When the result was recorded."
171
+ }
172
+ }
173
+ },
174
+ "SentEmailRollupOutcome": {
175
+ "type": "object",
176
+ "description": "A roll-up's result. Roll-ups carry no SMTP answer.",
177
+ "required": [
178
+ "result",
179
+ "failure_kind",
180
+ "smtp_response_code",
181
+ "smtp_enhanced_status_code",
182
+ "smtp_response_text",
183
+ "at"
184
+ ],
185
+ "properties": {
186
+ "result": { "type": "string", "enum": ["delivered", "failed"] },
187
+ "failure_kind": {
188
+ "description": "Null when delivered.",
189
+ "oneOf": [{ "type": "null" }, { "$ref": "#/definitions/SentEmailFailureKind" }]
190
+ },
191
+ "smtp_response_code": { "type": "null" },
192
+ "smtp_enhanced_status_code": { "type": "null" },
193
+ "smtp_response_text": { "type": "null" },
194
+ "at": {
195
+ "type": ["string", "null"],
196
+ "format": "date-time",
197
+ "description": "When the result was recorded."
198
+ }
199
+ }
200
+ },
201
+ "SentEmailRolledUpFailure": {
202
+ "type": "object",
203
+ "required": [
204
+ "address",
205
+ "type",
206
+ "smtp_response_code",
207
+ "smtp_enhanced_status_code",
208
+ "smtp_response_text",
209
+ "at"
210
+ ],
211
+ "properties": {
212
+ "address": { "type": "string" },
213
+ "type": { "$ref": "#/definitions/SentEmailRecipientType" },
214
+ "smtp_response_code": { "type": ["integer", "null"] },
215
+ "smtp_enhanced_status_code": { "type": ["string", "null"] },
216
+ "smtp_response_text": {
217
+ "type": ["string", "null"],
218
+ "description": "Text from a third-party server: untrusted, never render it as HTML."
219
+ },
220
+ "at": { "type": ["string", "null"], "format": "date-time" }
221
+ }
222
+ },
223
+ "SentEmailFailedByKind": {
224
+ "type": "object",
225
+ "required": ["rejected", "expired"],
226
+ "properties": {
227
+ "rejected": { "type": "integer", "minimum": 0 },
228
+ "expired": { "type": "integer", "minimum": 0 }
229
+ }
230
+ },
231
+ "SentEmailCompletedSummary": {
232
+ "type": "object",
233
+ "description": "Totals over every recipient of the send: delivered + failed + not_relayed == recipient_count (when not_relayed is not null).",
234
+ "required": [
235
+ "recipient_count",
236
+ "delivered",
237
+ "failed",
238
+ "failed_by_kind",
239
+ "not_relayed",
240
+ "not_relayed_recipients"
241
+ ],
242
+ "properties": {
243
+ "recipient_count": { "type": "integer", "minimum": 1 },
244
+ "delivered": { "type": "integer", "minimum": 0 },
245
+ "failed": { "type": "integer", "minimum": 0 },
246
+ "failed_by_kind": { "$ref": "#/definitions/SentEmailFailedByKind" },
247
+ "not_relayed": {
248
+ "type": ["integer", "null"],
249
+ "minimum": 0,
250
+ "description": "Mail relay sends: To or Cc recipients that never reached the relay because the mailbox provider delivered them internally. Primitive has no result for them. 0 for every other send. Null for a relay send recorded before Primitive kept the relay's envelope, when this cannot be known."
251
+ },
252
+ "not_relayed_recipients": {
253
+ "type": ["array", "null"],
254
+ "description": "The not_relayed recipients. [] when there are none; null when not_relayed is null.",
255
+ "items": { "$ref": "#/definitions/SentEmailRecipient" }
256
+ }
257
+ }
258
+ },
259
+ "SentEmailAcceptedEvent": {
260
+ "type": "object",
261
+ "description": "Exactly once for every send Primitive accepted, whatever state the send has reached when the event is created.",
262
+ "required": ["id", "event", "version", "created_at", "delivery", "sent_email"],
263
+ "properties": {
264
+ "id": {
265
+ "type": "string",
266
+ "description": "The event id. The same on every retry and at every endpoint, and equal to the X-Webhook-Id header. Deduplicate on it."
267
+ },
268
+ "event": { "type": "string", "const": "sent_email.accepted" },
269
+ "version": {
270
+ "type": "string",
271
+ "description": "The version of the sent_email.* payload family. Not an event date."
272
+ },
273
+ "created_at": {
274
+ "type": "string",
275
+ "format": "date-time",
276
+ "description": "When the event happened, as far as Primitive knows it: a result's time for result events, the last result's time for sent_email.completed."
277
+ },
278
+ "delivery": { "$ref": "#/definitions/SentEmailEventDelivery" },
279
+ "sent_email": { "$ref": "#/definitions/SentEmailRecord" }
280
+ },
281
+ "not": {
282
+ "anyOf": [
283
+ { "required": ["scope"] },
284
+ { "required": ["recipient"] },
285
+ { "required": ["recipient_count"] },
286
+ { "required": ["reason"] },
287
+ { "required": ["outcome"] },
288
+ { "required": ["recipients"] },
289
+ { "required": ["summary"] }
290
+ ]
291
+ }
292
+ },
293
+ "SentEmailRecipientResultEvent": {
294
+ "type": "object",
295
+ "description": "One recipient's final result: exactly one delivered or failed event per recipient, for the first 100 recipients.",
296
+ "required": ["id", "event", "version", "created_at", "delivery", "sent_email", "scope", "recipient", "outcome"],
297
+ "properties": {
298
+ "id": {
299
+ "type": "string",
300
+ "description": "The event id. The same on every retry and at every endpoint, and equal to the X-Webhook-Id header. Deduplicate on it."
301
+ },
302
+ "event": { "type": "string", "enum": ["sent_email.delivered", "sent_email.failed"] },
303
+ "version": {
304
+ "type": "string",
305
+ "description": "The version of the sent_email.* payload family. Not an event date."
306
+ },
307
+ "created_at": {
308
+ "type": "string",
309
+ "format": "date-time",
310
+ "description": "When the event happened, as far as Primitive knows it: a result's time for result events, the last result's time for sent_email.completed."
311
+ },
312
+ "delivery": { "$ref": "#/definitions/SentEmailEventDelivery" },
313
+ "sent_email": { "$ref": "#/definitions/SentEmailRecord" },
314
+ "scope": { "type": "string", "const": "recipient" },
315
+ "recipient": { "$ref": "#/definitions/SentEmailRecipient" },
316
+ "outcome": { "$ref": "#/definitions/SentEmailOutcome" }
317
+ },
318
+ "not": {
319
+ "anyOf": [
320
+ { "required": ["recipient_count"] },
321
+ { "required": ["reason"] },
322
+ { "required": ["recipients"] },
323
+ { "required": ["summary"] }
324
+ ]
325
+ }
326
+ },
327
+ "SentEmailRollupResultEvent": {
328
+ "type": "object",
329
+ "description": "Recipients past the first 100 (mail relay sends only). A failed roll-up lists the recipients it covers in recipients, each listed on exactly one failed roll-up; a delivered roll-up is a count, sent once every rolled-up recipient is final, and carries no recipients.",
330
+ "required": ["id", "event", "version", "created_at", "delivery", "sent_email", "scope", "recipient", "recipient_count", "reason", "outcome"],
331
+ "properties": {
332
+ "id": {
333
+ "type": "string",
334
+ "description": "The event id. The same on every retry and at every endpoint, and equal to the X-Webhook-Id header. Deduplicate on it."
335
+ },
336
+ "event": { "type": "string", "enum": ["sent_email.delivered", "sent_email.failed"] },
337
+ "version": {
338
+ "type": "string",
339
+ "description": "The version of the sent_email.* payload family. Not an event date."
340
+ },
341
+ "created_at": {
342
+ "type": "string",
343
+ "format": "date-time",
344
+ "description": "When the event happened, as far as Primitive knows it: a result's time for result events, the last result's time for sent_email.completed."
345
+ },
346
+ "delivery": { "$ref": "#/definitions/SentEmailEventDelivery" },
347
+ "sent_email": { "$ref": "#/definitions/SentEmailRecord" },
348
+ "scope": { "type": "string", "const": "message" },
349
+ "recipient": { "type": "null" },
350
+ "recipient_count": { "type": "integer", "minimum": 1 },
351
+ "reason": { "type": "string", "const": "rollup" },
352
+ "outcome": { "$ref": "#/definitions/SentEmailRollupOutcome" },
353
+ "recipients": {
354
+ "type": "array",
355
+ "minItems": 1,
356
+ "description": "Present on failed roll-ups only: the recipients this roll-up covers.",
357
+ "items": { "$ref": "#/definitions/SentEmailRolledUpFailure" }
358
+ }
359
+ },
360
+ "if": { "properties": { "event": { "const": "sent_email.failed" } } },
361
+ "then": { "required": ["recipients"] },
362
+ "else": { "not": { "required": ["recipients"] } },
363
+ "not": { "required": ["summary"] }
364
+ },
365
+ "SentEmailLegacyMessageResultEvent": {
366
+ "type": "object",
367
+ "description": "Only for sends recorded before Primitive kept each recipient's result: one result for the recipient_count recipients it covers.",
368
+ "required": ["id", "event", "version", "created_at", "delivery", "sent_email", "scope", "recipient", "recipient_count", "reason", "outcome"],
369
+ "properties": {
370
+ "id": {
371
+ "type": "string",
372
+ "description": "The event id. The same on every retry and at every endpoint, and equal to the X-Webhook-Id header. Deduplicate on it."
373
+ },
374
+ "event": { "type": "string", "enum": ["sent_email.delivered", "sent_email.failed"] },
375
+ "version": {
376
+ "type": "string",
377
+ "description": "The version of the sent_email.* payload family. Not an event date."
378
+ },
379
+ "created_at": {
380
+ "type": "string",
381
+ "format": "date-time",
382
+ "description": "When the event happened, as far as Primitive knows it: a result's time for result events, the last result's time for sent_email.completed."
383
+ },
384
+ "delivery": { "$ref": "#/definitions/SentEmailEventDelivery" },
385
+ "sent_email": { "$ref": "#/definitions/SentEmailRecord" },
386
+ "scope": { "type": "string", "const": "message" },
387
+ "recipient": { "type": "null" },
388
+ "recipient_count": { "type": "integer", "minimum": 1 },
389
+ "reason": { "type": "string", "const": "legacy_message_result" },
390
+ "outcome": { "$ref": "#/definitions/SentEmailOutcome" }
391
+ },
392
+ "not": {
393
+ "anyOf": [{ "required": ["recipients"] }, { "required": ["summary"] }]
394
+ }
395
+ },
396
+ "SentEmailCompletedEvent": {
397
+ "type": "object",
398
+ "description": "Once per send, after its last result event, when every recipient has a final result.",
399
+ "required": ["id", "event", "version", "created_at", "delivery", "sent_email", "summary"],
400
+ "properties": {
401
+ "id": {
402
+ "type": "string",
403
+ "description": "The event id. The same on every retry and at every endpoint, and equal to the X-Webhook-Id header. Deduplicate on it."
404
+ },
405
+ "event": { "type": "string", "const": "sent_email.completed" },
406
+ "version": {
407
+ "type": "string",
408
+ "description": "The version of the sent_email.* payload family. Not an event date."
409
+ },
410
+ "created_at": {
411
+ "type": "string",
412
+ "format": "date-time",
413
+ "description": "When the event happened, as far as Primitive knows it: a result's time for result events, the last result's time for sent_email.completed."
414
+ },
415
+ "delivery": { "$ref": "#/definitions/SentEmailEventDelivery" },
416
+ "sent_email": { "$ref": "#/definitions/SentEmailRecord" },
417
+ "summary": { "$ref": "#/definitions/SentEmailCompletedSummary" }
418
+ },
419
+ "not": {
420
+ "anyOf": [
421
+ { "required": ["scope"] },
422
+ { "required": ["recipient"] },
423
+ { "required": ["recipient_count"] },
424
+ { "required": ["reason"] },
425
+ { "required": ["outcome"] },
426
+ { "required": ["recipients"] }
427
+ ]
428
+ }
429
+ }
430
+ }
431
+ }