pub struct Client { /* private fields */ }Expand description
An authenticated handle on the AgentMail API. Cheap to clone-ish (it owns
a pooled reqwest::Client); construct once and share by reference.
Implementations§
Source§impl Client
impl Client
Sourcepub async fn agent_sign_up(
&self,
signup: AgentSignup,
) -> Result<AgentSignupResult, Error>
pub async fn agent_sign_up( &self, signup: AgentSignup, ) -> Result<AgentSignupResult, Error>
POST /v0/agent/sign-up, start onboarding a new agent. Emails a one-time
code to human_email; confirm it with Client::agent_verify. Runs
before any credential exists, so the client’s bearer token (if any) is
irrelevant.
Sourcepub async fn agent_verify(
&self,
otp_code: &str,
) -> Result<AgentVerifyResult, Error>
pub async fn agent_verify( &self, otp_code: &str, ) -> Result<AgentVerifyResult, Error>
POST /v0/agent/verify, confirm the one-time code from
Client::agent_sign_up.
Source§impl Client
impl Client
Sourcepub async fn download_attachment(
&self,
attachment: &Attachment,
) -> Result<Vec<u8>, Error>
pub async fn download_attachment( &self, attachment: &Attachment, ) -> Result<Vec<u8>, Error>
Download an attachment’s bytes from its presigned download_url. The URL
is a short-lived S3 link fetched without the API bearer token, so obtain
the Attachment from one of the get_*_attachment calls first (a
plain response attachment carries no download_url and yields
Error::NoDownloadUrl).
Sourcepub async fn download_raw(&self, raw: &RawMessage) -> Result<Vec<u8>, Error>
pub async fn download_raw(&self, raw: &RawMessage) -> Result<Vec<u8>, Error>
Download the raw .eml bytes from a RawMessage’s presigned URL.
Source§impl Client
impl Client
Sourcepub async fn get_organization(&self) -> Result<Organization, Error>
pub async fn get_organization(&self) -> Result<Organization, Error>
GET /v0/organizations, the organization the current key belongs to, including its resource counts and plan limits.
Source§impl Client
impl Client
Source§impl Client
impl Client
Sourcepub fn org(&self) -> Scoped<'_, OrgScope>
pub fn org(&self) -> Scoped<'_, OrgScope>
The organization scope (top-level), spanning every inbox.
Sourcepub fn inbox<'a>(&'a self, inbox_id: &'a str) -> Scoped<'a, InboxScope<'a>>
pub fn inbox<'a>(&'a self, inbox_id: &'a str) -> Scoped<'a, InboxScope<'a>>
Scope operations to a single inbox. Inbox-only resources (messages, events, draft writes) live here.
The scope’s capabilities are enforced at compile time - an inbox has no domains, so this does not compile:
client.inbox("ib_1").list_domains(Default::default()).await?;Source§impl Client
impl Client
Sourcepub fn new(api_key: impl Into<String>, base_url: impl Into<String>) -> Self
pub fn new(api_key: impl Into<String>, base_url: impl Into<String>) -> Self
A client against base_url (see DEFAULT_BASE_URL), with a
DEFAULT_TIMEOUT on every request.
Sourcepub fn from_env() -> Result<Self, Error>
pub fn from_env() -> Result<Self, Error>
From AGENTMAIL_API_KEY (+ optional AGENTMAIL_BASE_URL).
Sourcepub fn with_retry_policy(self, policy: RetryPolicy) -> Self
Available on crate feature retries only.
pub fn with_retry_policy(self, policy: RetryPolicy) -> Self
retries only.Replace the RetryPolicy. Set max_retries to 0 to disable retries.
Requires the retries feature (on by default).