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