primitivedotdev 1.2.1__tar.gz → 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/PKG-INFO +1 -1
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/json-schema/email-received-event.schema.json +287 -2
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/pyproject.toml +1 -1
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/scripts/generate_models.py +7 -1
- primitivedotdev-1.4.0/src/primitive/api/api/agent/create_agent_account.py +226 -0
- primitivedotdev-1.4.0/src/primitive/api/api/agent/create_agent_claim_link.py +229 -0
- primitivedotdev-1.4.0/src/primitive/api/api/agent/start_agent_claim.py +247 -0
- primitivedotdev-1.4.0/src/primitive/api/api/agent/verify_agent_claim.py +242 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/list_emails.py +30 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/create_function.py +24 -16
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/__init__.py +34 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/account.py +43 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_account_result.py +145 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_account_result_plan.py +7 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_account_upgrade_hint.py +97 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_account_upgrade_hint_plan.py +7 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_claim_link_result.py +100 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_claim_result.py +116 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_claim_result_plan.py +7 -0
- primitivedotdev-1.4.0/src/primitive/api/models/agent_claim_start_result.py +92 -0
- primitivedotdev-1.4.0/src/primitive/api/models/create_agent_account_input.py +67 -0
- primitivedotdev-1.4.0/src/primitive/api/models/create_agent_account_response_200.py +100 -0
- primitivedotdev-1.4.0/src/primitive/api/models/create_agent_claim_link_input.py +47 -0
- primitivedotdev-1.4.0/src/primitive/api/models/create_agent_claim_link_response_200.py +100 -0
- primitivedotdev-1.4.0/src/primitive/api/models/plan_limits.py +141 -0
- primitivedotdev-1.4.0/src/primitive/api/models/start_agent_claim_input.py +58 -0
- primitivedotdev-1.4.0/src/primitive/api/models/start_agent_claim_response_200.py +100 -0
- primitivedotdev-1.4.0/src/primitive/api/models/verify_agent_claim_input.py +58 -0
- primitivedotdev-1.4.0/src/primitive/api/models/verify_agent_claim_response_200.py +100 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/models_generated.py +249 -3
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/schemas/email_received_event.schema.json +287 -2
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_validation.py +16 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/.gitignore +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/README.md +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/scripts/generate_api_client.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/scripts/generate_schema_module.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/_compat.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_account.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_storage_stats.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/get_webhook_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/rotate_webhook_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/account/update_account.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/resend_agent_signup_verification.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/start_agent_signup.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/agent/verify_agent_signup.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/cli_logout.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/poll_cli_login.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/resend_cli_signup_verification.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/start_cli_login.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/start_cli_signup.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/cli/verify_cli_signup.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/add_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/delete_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/download_domain_zone_file.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/list_domains.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/update_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/domains/verify_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/delete_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/discard_email_content.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/download_attachments.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/download_raw_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/get_conversation.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/get_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/replay_email_webhooks.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/emails/search_emails.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/create_endpoint.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/delete_endpoint.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/list_endpoints.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/test_endpoint.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/endpoints/update_endpoint.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/create_filter.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/delete_filter.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/list_filters.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/filters/update_filter.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/create_function_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/delete_function.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/delete_function_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function_routing.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_function_test_run_trace.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/get_org_routing_topology.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_function_logs.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_function_secrets.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/list_functions.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/set_function_route.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/set_function_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/test_function.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/unset_function_route.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/functions/update_function.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/inbox/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/inbox/get_inbox_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/search/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/search/semantic_search.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/get_send_permissions.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/get_sent_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/list_sent_emails.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/reply_to_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/sending/send_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/threads/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/threads/get_thread.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/__init__.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/list_deliveries.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/api/webhook_deliveries/replay_delivery.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/client.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/downloads.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/errors.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/account_updated.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/add_domain_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/add_domain_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_org_ref.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_resend_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_start_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result_auth_method.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/agent_signup_verify_result_token_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result_auth_method.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_poll_result_token_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_login_start_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_logout_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_resend_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_start_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result_auth_method.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/cli_signup_verify_result_token_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message_direction.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/conversation_message_role.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_input_rules.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_endpoint_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_input_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_filter_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_input_files.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/create_function_secret_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_domain_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_domain_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_email_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_email_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_endpoint_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_endpoint_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_filter_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_filter_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_function_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delete_function_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary_email_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/delivery_summary_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/discard_content_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/discard_email_content_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/dkim_signature.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_purpose.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_dns_record_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_verify_result_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/domain_verify_result_type_1.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_address.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_attachment.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_auth.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_detail.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_detail_reply.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facet_bucket.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facets.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_facets_has_attachment.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_highlights.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_meta.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_meta_sort.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_search_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_1.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_2_type_1.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/email_webhook_status_type_3_type_1.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/endpoint.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/endpoint_rules.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_code.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_details.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/error_response_error_details_mx_conflict.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/filter_.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/filter_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_deploy_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_detail.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_list_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row_level.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_log_row_metadata_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_0_kind.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_1.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_body_target_type_1_kind.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result_conflict.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_route_result_conflict_kind.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing_domain_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_routing_rules.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_secret_list_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_secret_write_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery_endpoint_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_delivery_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_inbound_email_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_outbound_request.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_reply.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_send_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_state.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/function_test_run_trace.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial_name.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_denial_reason.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_fix.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/gate_fix_action.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_account_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_conversation_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_email_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_routing_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_function_test_run_trace_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_inbox_status_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_org_routing_topology_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_send_permissions_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_sent_email_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_storage_stats_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_thread_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/get_webhook_secret_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_domain_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_endpoint_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_function_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_next_action.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_next_action_kind.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/inbox_status_recent_email_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_deliveries_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_deliveries_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_domains_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_emails_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_endpoints_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_envelope.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_filters_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_logs_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_logs_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_secrets_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_function_secrets_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_functions_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/list_sent_emails_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/pagination_meta.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data_error_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/parsed_email_data_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/poll_cli_login_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/poll_cli_login_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_delivery_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_email_webhooks_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/replay_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/reply_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/reply_to_email_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_agent_signup_verification_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_agent_signup_verification_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_cli_signup_verification_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/resend_cli_signup_verification_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/rotate_webhook_secret_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_domains_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_domains_item_routed_function_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_fallback_function_type_0.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/routing_topology_unrouted_functions_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_has_attachment.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_include_facets.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_snippet.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/search_emails_sort.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_coverage.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_field.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_corpus_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_include_item.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_input_mode.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_meta.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_meta_mode.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_result_source_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_score_breakdown.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/semantic_search_snippet.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_email_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_attachment.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_mail_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_address.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_address_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_any_recipient.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_any_recipient_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_managed_zone.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_managed_zone_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_your_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permission_your_domain_type.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/send_permissions_meta.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_detail.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_status.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/sent_email_summary.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_route_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/set_function_secret_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_input_metadata.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_agent_signup_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_input_metadata.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_login_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_input_metadata.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/start_cli_signup_response_201.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/storage_stats.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/success_envelope.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/test_endpoint_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/test_function_body.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/test_function_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/test_invocation_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/test_result.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/thread.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/thread_message.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/thread_message_direction.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/unset_function_route_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/unset_function_route_response_200_data.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/unverified_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_account_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_account_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_domain_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_domain_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_input_rules.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_endpoint_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_filter_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_filter_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_input_files.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/update_function_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verified_domain.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_signup_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_agent_signup_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_cli_signup_input.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_cli_signup_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/verify_domain_response_200.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/models/webhook_secret.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/api/types.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/client.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/errors.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/py.typed +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/received_email.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/schema.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/types.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/validation.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/src/primitive/webhook.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/auth/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/download-tokens/vectors.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/handle-webhook/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/handle-webhook/standard-webhooks-cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/header-address-parser/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/parse-webhook-event/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/raw/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/send-payloads/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/signing/standard-webhooks-vectors.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/signing/vectors.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/subject-builders/cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/webhook/valid-email-received.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/test-fixtures/webhook/validation-cases.json +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/conftest.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_auth.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_client.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_email_detail.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_encoding.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_generated_downloads.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_parsing.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_send_payloads.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_shared_fixtures.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_signing.py +0 -0
- {primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/tests/test_webhook.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: primitivedotdev
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: Official Primitive Python SDK for webhook handling and API access
|
|
5
5
|
Project-URL: Homepage, https://primitive.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/primitivedotdev/sdks
|
{primitivedotdev-1.2.1 → primitivedotdev-1.4.0}/json-schema/email-received-event.schema.json
RENAMED
|
@@ -12,8 +12,14 @@
|
|
|
12
12
|
},
|
|
13
13
|
"event": {
|
|
14
14
|
"type": "string",
|
|
15
|
-
"
|
|
16
|
-
|
|
15
|
+
"enum": [
|
|
16
|
+
"email.received",
|
|
17
|
+
"email.bounced",
|
|
18
|
+
"email.tls_report",
|
|
19
|
+
"email.dmarc_report",
|
|
20
|
+
"email.dmarc_failure"
|
|
21
|
+
],
|
|
22
|
+
"description": "Event type identifier.\n\n- `email.received` - A normal inbound email.\n- `email.bounced` - A delivery status notification (DSN) reporting that a message delivery failed. Carries `email.analysis.bounce`.\n- `email.tls_report` - An SMTP TLS report (RFC 8460). Carries `email.analysis.tls_report`.\n- `email.dmarc_report` - A DMARC aggregate report (RFC 7489). Carries `email.analysis.dmarc_report`.\n- `email.dmarc_failure` - A DMARC failure (forensic) report.\n\nMachine-generated mail (bounces and the report types above) is delivered under its own event type rather than `email.received`, so an endpoint subscribed only to `email.received` receives just normal inbound mail. The payload shape is otherwise identical across event types; the type-specific details live under `email.analysis`."
|
|
17
23
|
},
|
|
18
24
|
"version": {
|
|
19
25
|
"$ref": "#/definitions/WebhookVersion",
|
|
@@ -655,10 +661,289 @@
|
|
|
655
661
|
"forward": {
|
|
656
662
|
"$ref": "#/definitions/ForwardAnalysis",
|
|
657
663
|
"description": "Forward detection and analysis results.\n\nOptional. Present when the email was processed by a forward-detection pipeline (always present in Primitive's managed service). When absent, forward detection was not performed on this email."
|
|
664
|
+
},
|
|
665
|
+
"bounce": {
|
|
666
|
+
"$ref": "#/definitions/BounceAnalysis",
|
|
667
|
+
"description": "Bounce (delivery status notification) analysis.\n\nPresent on `email.bounced` events: the parsed DSN reporting that a message you sent could not be delivered. Absent on all other event types."
|
|
668
|
+
},
|
|
669
|
+
"tls_report": {
|
|
670
|
+
"$ref": "#/definitions/TlsReportAnalysis",
|
|
671
|
+
"description": "SMTP TLS report analysis (RFC 8460).\n\nPresent on `email.tls_report` events: a remote MTA's report of TLS negotiation results for mail sent to your domain. Absent on all other event types."
|
|
672
|
+
},
|
|
673
|
+
"dmarc_report": {
|
|
674
|
+
"$ref": "#/definitions/DmarcReportAnalysis",
|
|
675
|
+
"description": "DMARC aggregate report analysis (RFC 7489).\n\nPresent on `email.dmarc_report` events: a receiver's periodic aggregate report of DMARC authentication results for your domain. Absent on all other event types."
|
|
658
676
|
}
|
|
659
677
|
},
|
|
660
678
|
"description": "Email analysis and classification results.\n\nAll properties in this object are optional. Which fields are present depends on the analysis pipeline processing the email. Primitive's managed service populates all fields. Self-hosted or third-party deployments may include some, all, or none of these fields depending on their pipeline configuration.\n\nWhen a field is absent, it means that particular analysis was not performed, not that the analysis produced no results. For example, a missing `spamassassin` field means SpamAssassin was not run, not that the email scored 0.\n\nThese fields may be omitted from the payload entirely but must not be set to null."
|
|
661
679
|
},
|
|
680
|
+
"BounceAnalysis": {
|
|
681
|
+
"type": "object",
|
|
682
|
+
"properties": {
|
|
683
|
+
"is_bounce": {
|
|
684
|
+
"type": "boolean",
|
|
685
|
+
"const": true,
|
|
686
|
+
"description": "Always `true` on a parsed bounce."
|
|
687
|
+
},
|
|
688
|
+
"kind": {
|
|
689
|
+
"type": "string",
|
|
690
|
+
"const": "dsn",
|
|
691
|
+
"description": "The machine-mail kind. Always `dsn` for a bounce."
|
|
692
|
+
},
|
|
693
|
+
"type": {
|
|
694
|
+
"type": "string",
|
|
695
|
+
"enum": ["permanent", "transient", "undetermined"],
|
|
696
|
+
"description": "Whether the failure is permanent (hard bounce), transient (soft bounce, may be retried), or undetermined."
|
|
697
|
+
},
|
|
698
|
+
"category": {
|
|
699
|
+
"type": "string",
|
|
700
|
+
"enum": [
|
|
701
|
+
"mailbox_does_not_exist",
|
|
702
|
+
"domain_does_not_exist",
|
|
703
|
+
"domain_not_accepting_mail",
|
|
704
|
+
"mailbox_full",
|
|
705
|
+
"mailbox_inactive",
|
|
706
|
+
"message_too_large",
|
|
707
|
+
"content_rejected",
|
|
708
|
+
"policy_blocked",
|
|
709
|
+
"auth_failure",
|
|
710
|
+
"relay_denied",
|
|
711
|
+
"rate_limited",
|
|
712
|
+
"network_error",
|
|
713
|
+
"recipient_moved",
|
|
714
|
+
"expired",
|
|
715
|
+
"undetermined"
|
|
716
|
+
],
|
|
717
|
+
"description": "Best-effort reason category for the failure."
|
|
718
|
+
},
|
|
719
|
+
"classified_by": {
|
|
720
|
+
"type": "string",
|
|
721
|
+
"enum": ["status_code", "smtp_code", "pattern", "provider", "none"],
|
|
722
|
+
"description": "Which signal produced `category` (for transparency and debugging)."
|
|
723
|
+
},
|
|
724
|
+
"failed_recipient": {
|
|
725
|
+
"type": ["string", "null"],
|
|
726
|
+
"description": "The recipient address that failed, if the report identifies one."
|
|
727
|
+
},
|
|
728
|
+
"smtp_code": {
|
|
729
|
+
"type": ["integer", "null"],
|
|
730
|
+
"description": "SMTP reply code (e.g. `550`), if reported."
|
|
731
|
+
},
|
|
732
|
+
"status_code": {
|
|
733
|
+
"type": ["string", "null"],
|
|
734
|
+
"description": "Enhanced mail system status code (RFC 3463, e.g. `5.1.1`), if reported."
|
|
735
|
+
},
|
|
736
|
+
"diagnostic_code": {
|
|
737
|
+
"type": ["string", "null"],
|
|
738
|
+
"description": "Raw diagnostic text from the reporting MTA, if present."
|
|
739
|
+
},
|
|
740
|
+
"reported_by_mta": {
|
|
741
|
+
"type": ["string", "null"],
|
|
742
|
+
"description": "The MTA that generated the report, if identifiable."
|
|
743
|
+
},
|
|
744
|
+
"original_message_id": {
|
|
745
|
+
"type": ["string", "null"],
|
|
746
|
+
"description": "Message-ID of the original message that bounced, if recoverable. Match this against the `message_id` of a message you sent to correlate the bounce."
|
|
747
|
+
},
|
|
748
|
+
"reasons": {
|
|
749
|
+
"type": "array",
|
|
750
|
+
"items": { "type": "string" },
|
|
751
|
+
"description": "Human-readable reason strings extracted from the report."
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
"required": [
|
|
755
|
+
"is_bounce",
|
|
756
|
+
"kind",
|
|
757
|
+
"type",
|
|
758
|
+
"category",
|
|
759
|
+
"classified_by",
|
|
760
|
+
"failed_recipient",
|
|
761
|
+
"smtp_code",
|
|
762
|
+
"status_code",
|
|
763
|
+
"diagnostic_code",
|
|
764
|
+
"reported_by_mta",
|
|
765
|
+
"original_message_id",
|
|
766
|
+
"reasons"
|
|
767
|
+
],
|
|
768
|
+
"description": "Parsed delivery status notification (bounce). Present as `email.analysis.bounce` on `email.bounced` events."
|
|
769
|
+
},
|
|
770
|
+
"TlsReportFailure": {
|
|
771
|
+
"type": "object",
|
|
772
|
+
"properties": {
|
|
773
|
+
"result_type": {
|
|
774
|
+
"type": ["string", "null"],
|
|
775
|
+
"description": "Failure result type (e.g. `certificate-expired`, `starttls-not-supported`)."
|
|
776
|
+
},
|
|
777
|
+
"count": {
|
|
778
|
+
"type": "integer",
|
|
779
|
+
"description": "Number of sessions that hit this failure."
|
|
780
|
+
},
|
|
781
|
+
"sending_mta_ip": { "type": ["string", "null"] },
|
|
782
|
+
"receiving_mx_hostname": { "type": ["string", "null"] }
|
|
783
|
+
},
|
|
784
|
+
"required": ["result_type", "count", "sending_mta_ip", "receiving_mx_hostname"]
|
|
785
|
+
},
|
|
786
|
+
"TlsReportPolicy": {
|
|
787
|
+
"type": "object",
|
|
788
|
+
"properties": {
|
|
789
|
+
"policy_domain": { "type": ["string", "null"] },
|
|
790
|
+
"policy_type": {
|
|
791
|
+
"type": ["string", "null"],
|
|
792
|
+
"description": "Policy type the sessions were evaluated against (e.g. `sts`, `tlsa`, `no-policy-found`)."
|
|
793
|
+
},
|
|
794
|
+
"successful_sessions": { "type": "integer" },
|
|
795
|
+
"failed_sessions": { "type": "integer" },
|
|
796
|
+
"failures": {
|
|
797
|
+
"type": "array",
|
|
798
|
+
"items": { "$ref": "#/definitions/TlsReportFailure" }
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
"required": [
|
|
802
|
+
"policy_domain",
|
|
803
|
+
"policy_type",
|
|
804
|
+
"successful_sessions",
|
|
805
|
+
"failed_sessions",
|
|
806
|
+
"failures"
|
|
807
|
+
]
|
|
808
|
+
},
|
|
809
|
+
"TlsReportAnalysis": {
|
|
810
|
+
"type": "object",
|
|
811
|
+
"properties": {
|
|
812
|
+
"kind": { "type": "string", "const": "tls_report" },
|
|
813
|
+
"organization": {
|
|
814
|
+
"type": ["string", "null"],
|
|
815
|
+
"description": "Reporting organization name."
|
|
816
|
+
},
|
|
817
|
+
"report_id": { "type": ["string", "null"] },
|
|
818
|
+
"contact": {
|
|
819
|
+
"type": ["string", "null"],
|
|
820
|
+
"description": "Reporter contact, if provided."
|
|
821
|
+
},
|
|
822
|
+
"date_range": {
|
|
823
|
+
"type": "object",
|
|
824
|
+
"properties": {
|
|
825
|
+
"start": {
|
|
826
|
+
"type": ["string", "null"],
|
|
827
|
+
"description": "ISO 8601 start of the reporting window."
|
|
828
|
+
},
|
|
829
|
+
"end": {
|
|
830
|
+
"type": ["string", "null"],
|
|
831
|
+
"description": "ISO 8601 end of the reporting window."
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
"required": ["start", "end"]
|
|
835
|
+
},
|
|
836
|
+
"total_successful_sessions": { "type": "integer" },
|
|
837
|
+
"total_failed_sessions": { "type": "integer" },
|
|
838
|
+
"policies": {
|
|
839
|
+
"type": "array",
|
|
840
|
+
"items": { "$ref": "#/definitions/TlsReportPolicy" }
|
|
841
|
+
}
|
|
842
|
+
},
|
|
843
|
+
"required": [
|
|
844
|
+
"kind",
|
|
845
|
+
"organization",
|
|
846
|
+
"report_id",
|
|
847
|
+
"contact",
|
|
848
|
+
"date_range",
|
|
849
|
+
"total_successful_sessions",
|
|
850
|
+
"total_failed_sessions",
|
|
851
|
+
"policies"
|
|
852
|
+
],
|
|
853
|
+
"description": "Parsed SMTP TLS report (RFC 8460). Present as `email.analysis.tls_report` on `email.tls_report` events."
|
|
854
|
+
},
|
|
855
|
+
"DmarcRecord": {
|
|
856
|
+
"type": "object",
|
|
857
|
+
"properties": {
|
|
858
|
+
"source_ip": { "type": ["string", "null"] },
|
|
859
|
+
"count": { "type": "integer" },
|
|
860
|
+
"disposition": {
|
|
861
|
+
"type": ["string", "null"],
|
|
862
|
+
"description": "Disposition applied by the receiver: `none`, `quarantine`, or `reject`."
|
|
863
|
+
},
|
|
864
|
+
"dkim": {
|
|
865
|
+
"type": ["string", "null"],
|
|
866
|
+
"description": "DKIM alignment result: `pass` or `fail`."
|
|
867
|
+
},
|
|
868
|
+
"spf": {
|
|
869
|
+
"type": ["string", "null"],
|
|
870
|
+
"description": "SPF alignment result: `pass` or `fail`."
|
|
871
|
+
},
|
|
872
|
+
"header_from": { "type": ["string", "null"] }
|
|
873
|
+
},
|
|
874
|
+
"required": ["source_ip", "count", "disposition", "dkim", "spf", "header_from"]
|
|
875
|
+
},
|
|
876
|
+
"DmarcReportAnalysis": {
|
|
877
|
+
"type": "object",
|
|
878
|
+
"properties": {
|
|
879
|
+
"kind": { "type": "string", "const": "dmarc_report" },
|
|
880
|
+
"organization": { "type": ["string", "null"] },
|
|
881
|
+
"report_id": { "type": ["string", "null"] },
|
|
882
|
+
"date_range": {
|
|
883
|
+
"type": "object",
|
|
884
|
+
"properties": {
|
|
885
|
+
"start": {
|
|
886
|
+
"type": ["string", "null"],
|
|
887
|
+
"description": "ISO 8601 start of the reporting window."
|
|
888
|
+
},
|
|
889
|
+
"end": {
|
|
890
|
+
"type": ["string", "null"],
|
|
891
|
+
"description": "ISO 8601 end of the reporting window."
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
"required": ["start", "end"]
|
|
895
|
+
},
|
|
896
|
+
"policy_published": {
|
|
897
|
+
"type": "object",
|
|
898
|
+
"properties": {
|
|
899
|
+
"domain": { "type": ["string", "null"] },
|
|
900
|
+
"p": {
|
|
901
|
+
"type": ["string", "null"],
|
|
902
|
+
"description": "Published domain policy: `none`, `quarantine`, or `reject`."
|
|
903
|
+
},
|
|
904
|
+
"sp": {
|
|
905
|
+
"type": ["string", "null"],
|
|
906
|
+
"description": "Published subdomain policy."
|
|
907
|
+
},
|
|
908
|
+
"pct": {
|
|
909
|
+
"type": ["integer", "null"],
|
|
910
|
+
"description": "Percentage of messages the policy is applied to."
|
|
911
|
+
},
|
|
912
|
+
"adkim": {
|
|
913
|
+
"type": ["string", "null"],
|
|
914
|
+
"description": "DKIM alignment mode: `r` (relaxed) or `s` (strict)."
|
|
915
|
+
},
|
|
916
|
+
"aspf": {
|
|
917
|
+
"type": ["string", "null"],
|
|
918
|
+
"description": "SPF alignment mode: `r` (relaxed) or `s` (strict)."
|
|
919
|
+
}
|
|
920
|
+
},
|
|
921
|
+
"required": ["domain", "p", "sp", "pct", "adkim", "aspf"]
|
|
922
|
+
},
|
|
923
|
+
"total_count": {
|
|
924
|
+
"type": "integer",
|
|
925
|
+
"description": "Total messages covered by the report."
|
|
926
|
+
},
|
|
927
|
+
"dkim_pass_count": { "type": "integer" },
|
|
928
|
+
"spf_pass_count": { "type": "integer" },
|
|
929
|
+
"records": {
|
|
930
|
+
"type": "array",
|
|
931
|
+
"items": { "$ref": "#/definitions/DmarcRecord" }
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
"required": [
|
|
935
|
+
"kind",
|
|
936
|
+
"organization",
|
|
937
|
+
"report_id",
|
|
938
|
+
"date_range",
|
|
939
|
+
"policy_published",
|
|
940
|
+
"total_count",
|
|
941
|
+
"dkim_pass_count",
|
|
942
|
+
"spf_pass_count",
|
|
943
|
+
"records"
|
|
944
|
+
],
|
|
945
|
+
"description": "Parsed DMARC aggregate report (RFC 7489). Present as `email.analysis.dmarc_report` on `email.dmarc_report` events."
|
|
946
|
+
},
|
|
662
947
|
"ForwardAnalysis": {
|
|
663
948
|
"type": "object",
|
|
664
949
|
"properties": {
|
|
@@ -80,6 +80,10 @@ def _patch_generated_models() -> None:
|
|
|
80
80
|
|
|
81
81
|
for enum_name in (
|
|
82
82
|
"Code",
|
|
83
|
+
"Event",
|
|
84
|
+
"Type",
|
|
85
|
+
"Category",
|
|
86
|
+
"ClassifiedBy",
|
|
83
87
|
"ForwardVerdict",
|
|
84
88
|
"AuthConfidence",
|
|
85
89
|
"SpfResult",
|
|
@@ -160,7 +164,9 @@ def _patch_generated_models() -> None:
|
|
|
160
164
|
text,
|
|
161
165
|
" ] = None\n\n\nclass Email(BaseModel):\n",
|
|
162
166
|
" ] = None\n\n"
|
|
163
|
-
" @field_validator(\
|
|
167
|
+
" @field_validator(\n"
|
|
168
|
+
" \"spamassassin\", \"forward\", \"bounce\", \"tls_report\", \"dmarc_report\", mode=\"before\"\n"
|
|
169
|
+
" )\n"
|
|
164
170
|
" @classmethod\n"
|
|
165
171
|
" def reject_explicit_null_optional_objects(cls, value):\n"
|
|
166
172
|
" if value is None:\n"
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, cast
|
|
3
|
+
from urllib.parse import quote
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ...client import AuthenticatedClient, Client
|
|
8
|
+
from ...types import Response, UNSET
|
|
9
|
+
from ... import errors
|
|
10
|
+
|
|
11
|
+
from ...models.create_agent_account_input import CreateAgentAccountInput
|
|
12
|
+
from ...models.create_agent_account_response_200 import CreateAgentAccountResponse200
|
|
13
|
+
from ...models.error_response import ErrorResponse
|
|
14
|
+
from typing import cast
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _get_kwargs(
|
|
19
|
+
*,
|
|
20
|
+
body: CreateAgentAccountInput,
|
|
21
|
+
|
|
22
|
+
) -> dict[str, Any]:
|
|
23
|
+
headers: dict[str, Any] = {}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
_kwargs: dict[str, Any] = {
|
|
31
|
+
"method": "post",
|
|
32
|
+
"url": "/agent/accounts",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_kwargs["json"] = body.to_dict()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
headers["Content-Type"] = "application/json"
|
|
39
|
+
|
|
40
|
+
_kwargs["headers"] = headers
|
|
41
|
+
return _kwargs
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> CreateAgentAccountResponse200 | ErrorResponse | None:
|
|
46
|
+
if response.status_code == 200:
|
|
47
|
+
response_200 = CreateAgentAccountResponse200.from_dict(response.json())
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
return response_200
|
|
52
|
+
|
|
53
|
+
if response.status_code == 400:
|
|
54
|
+
response_400 = ErrorResponse.from_dict(response.json())
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
return response_400
|
|
59
|
+
|
|
60
|
+
if response.status_code == 429:
|
|
61
|
+
response_429 = ErrorResponse.from_dict(response.json())
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
return response_429
|
|
66
|
+
|
|
67
|
+
if client.raise_on_unexpected_status:
|
|
68
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
69
|
+
else:
|
|
70
|
+
return None
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[CreateAgentAccountResponse200 | ErrorResponse]:
|
|
74
|
+
return Response(
|
|
75
|
+
status_code=HTTPStatus(response.status_code),
|
|
76
|
+
content=response.content,
|
|
77
|
+
headers=response.headers,
|
|
78
|
+
parsed=_parse_response(client=client, response=response),
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def sync_detailed(
|
|
83
|
+
*,
|
|
84
|
+
client: AuthenticatedClient | Client,
|
|
85
|
+
body: CreateAgentAccountInput,
|
|
86
|
+
|
|
87
|
+
) -> Response[CreateAgentAccountResponse200 | ErrorResponse]:
|
|
88
|
+
""" Create an emailless agent account
|
|
89
|
+
|
|
90
|
+
Creates an emailless agent account without authentication and returns a
|
|
91
|
+
one-time API key (prefixed `prim_`) plus a provisioned managed inbox.
|
|
92
|
+
The account is on the `agent` plan: reply-only (it can send only to
|
|
93
|
+
addresses that have already sent it authenticated mail) with tight send
|
|
94
|
+
limits. Use the returned `api_key` as a Bearer token on later calls. The
|
|
95
|
+
account can be upgraded to a full developer account by confirming an
|
|
96
|
+
email through the claim flow. This endpoint does not require an API key.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
body (CreateAgentAccountInput):
|
|
100
|
+
|
|
101
|
+
Raises:
|
|
102
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
103
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
104
|
+
|
|
105
|
+
Returns:
|
|
106
|
+
Response[CreateAgentAccountResponse200 | ErrorResponse]
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
kwargs = _get_kwargs(
|
|
111
|
+
body=body,
|
|
112
|
+
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
response = client.get_httpx_client().request(
|
|
116
|
+
**kwargs,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
return _build_response(client=client, response=response)
|
|
120
|
+
|
|
121
|
+
def sync(
|
|
122
|
+
*,
|
|
123
|
+
client: AuthenticatedClient | Client,
|
|
124
|
+
body: CreateAgentAccountInput,
|
|
125
|
+
|
|
126
|
+
) -> CreateAgentAccountResponse200 | ErrorResponse | None:
|
|
127
|
+
""" Create an emailless agent account
|
|
128
|
+
|
|
129
|
+
Creates an emailless agent account without authentication and returns a
|
|
130
|
+
one-time API key (prefixed `prim_`) plus a provisioned managed inbox.
|
|
131
|
+
The account is on the `agent` plan: reply-only (it can send only to
|
|
132
|
+
addresses that have already sent it authenticated mail) with tight send
|
|
133
|
+
limits. Use the returned `api_key` as a Bearer token on later calls. The
|
|
134
|
+
account can be upgraded to a full developer account by confirming an
|
|
135
|
+
email through the claim flow. This endpoint does not require an API key.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
body (CreateAgentAccountInput):
|
|
139
|
+
|
|
140
|
+
Raises:
|
|
141
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
142
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
CreateAgentAccountResponse200 | ErrorResponse
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
return sync_detailed(
|
|
150
|
+
client=client,
|
|
151
|
+
body=body,
|
|
152
|
+
|
|
153
|
+
).parsed
|
|
154
|
+
|
|
155
|
+
async def asyncio_detailed(
|
|
156
|
+
*,
|
|
157
|
+
client: AuthenticatedClient | Client,
|
|
158
|
+
body: CreateAgentAccountInput,
|
|
159
|
+
|
|
160
|
+
) -> Response[CreateAgentAccountResponse200 | ErrorResponse]:
|
|
161
|
+
""" Create an emailless agent account
|
|
162
|
+
|
|
163
|
+
Creates an emailless agent account without authentication and returns a
|
|
164
|
+
one-time API key (prefixed `prim_`) plus a provisioned managed inbox.
|
|
165
|
+
The account is on the `agent` plan: reply-only (it can send only to
|
|
166
|
+
addresses that have already sent it authenticated mail) with tight send
|
|
167
|
+
limits. Use the returned `api_key` as a Bearer token on later calls. The
|
|
168
|
+
account can be upgraded to a full developer account by confirming an
|
|
169
|
+
email through the claim flow. This endpoint does not require an API key.
|
|
170
|
+
|
|
171
|
+
Args:
|
|
172
|
+
body (CreateAgentAccountInput):
|
|
173
|
+
|
|
174
|
+
Raises:
|
|
175
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
176
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
177
|
+
|
|
178
|
+
Returns:
|
|
179
|
+
Response[CreateAgentAccountResponse200 | ErrorResponse]
|
|
180
|
+
"""
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
kwargs = _get_kwargs(
|
|
184
|
+
body=body,
|
|
185
|
+
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
response = await client.get_async_httpx_client().request(
|
|
189
|
+
**kwargs
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
return _build_response(client=client, response=response)
|
|
193
|
+
|
|
194
|
+
async def asyncio(
|
|
195
|
+
*,
|
|
196
|
+
client: AuthenticatedClient | Client,
|
|
197
|
+
body: CreateAgentAccountInput,
|
|
198
|
+
|
|
199
|
+
) -> CreateAgentAccountResponse200 | ErrorResponse | None:
|
|
200
|
+
""" Create an emailless agent account
|
|
201
|
+
|
|
202
|
+
Creates an emailless agent account without authentication and returns a
|
|
203
|
+
one-time API key (prefixed `prim_`) plus a provisioned managed inbox.
|
|
204
|
+
The account is on the `agent` plan: reply-only (it can send only to
|
|
205
|
+
addresses that have already sent it authenticated mail) with tight send
|
|
206
|
+
limits. Use the returned `api_key` as a Bearer token on later calls. The
|
|
207
|
+
account can be upgraded to a full developer account by confirming an
|
|
208
|
+
email through the claim flow. This endpoint does not require an API key.
|
|
209
|
+
|
|
210
|
+
Args:
|
|
211
|
+
body (CreateAgentAccountInput):
|
|
212
|
+
|
|
213
|
+
Raises:
|
|
214
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
215
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
216
|
+
|
|
217
|
+
Returns:
|
|
218
|
+
CreateAgentAccountResponse200 | ErrorResponse
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
return (await asyncio_detailed(
|
|
223
|
+
client=client,
|
|
224
|
+
body=body,
|
|
225
|
+
|
|
226
|
+
)).parsed
|