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 list_accounts(
&self,
filters: AccountsListFilters,
) -> Result<AccountList, Error>
pub async fn list_accounts( &self, filters: AccountsListFilters, ) -> Result<AccountList, Error>
GET /v0/accounts, one page of human accounts (app connections).
Sourcepub async fn list_all_accounts(&self) -> Result<Vec<Account>, Error>
pub async fn list_all_accounts(&self) -> Result<Vec<Account>, Error>
Every account, draining pagination.
Sourcepub async fn get_account(&self, account_id: &str) -> Result<Account, Error>
pub async fn get_account(&self, account_id: &str) -> Result<Account, Error>
GET /v0/accounts/{account_id}.
Sourcepub async fn update_account(
&self,
account_id: &str,
update: UpdateAccount,
) -> Result<Account, Error>
pub async fn update_account( &self, account_id: &str, update: UpdateAccount, ) -> Result<Account, Error>
PATCH /v0/accounts/{account_id}/update, enable or disable the account.
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.
Sourcepub async fn agent_attach_human(
&self,
attach: AgentAttachHuman,
) -> Result<AgentAttachHumanResult, Error>
pub async fn agent_attach_human( &self, attach: AgentAttachHuman, ) -> Result<AgentAttachHumanResult, Error>
POST /v0/agent/human, email a claim link that connects a human to this agent’s organization. They complete the link in their browser.
Source§impl Client
impl Client
Sourcepub async fn list_apps(
&self,
filters: AppsListFilters,
) -> Result<AppList, Error>
pub async fn list_apps( &self, filters: AppsListFilters, ) -> Result<AppList, Error>
GET /v0/apps, one page of the app directory.
Sourcepub async fn search_apps(
&self,
q: &str,
limit: Option<u32>,
) -> Result<AppSearchList, Error>
pub async fn search_apps( &self, q: &str, limit: Option<u32>, ) -> Result<AppSearchList, Error>
GET /v0/apps/search, full-text search of the app directory (no pagination cursor).
Sourcepub async fn list_app_accounts(
&self,
app_id: &str,
page: Page,
) -> Result<AppAccountList, Error>
pub async fn list_app_accounts( &self, app_id: &str, page: Page, ) -> Result<AppAccountList, Error>
GET /v0/apps/{app_id}/accounts, one page of the humans connected to this app.
Sourcepub async fn connect_app(
&self,
app_id: &str,
connect: ConnectApp,
) -> Result<ConnectAppResult, Error>
pub async fn connect_app( &self, app_id: &str, connect: ConnectApp, ) -> Result<ConnectAppResult, Error>
POST /v0/apps/{app_id}/connect, start a human’s connection to an app.
The human opens ConnectAppResult::magic_url to approve before it
expires.
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 websocket_url(&self) -> String
Available on crate feature websockets only.
pub fn websocket_url(&self) -> String
websockets only.The websocket URL this client will dial, after derivation and any
Client::with_websocket_url override.
Sourcepub fn with_websocket_url(self, url: impl Into<String>) -> Self
Available on crate feature websockets only.
pub fn with_websocket_url(self, url: impl Into<String>) -> Self
websockets only.Override the derived websocket host (e.g. for a proxy or a mock server on a different port).
Requires the websockets feature (off by default).
Sourcepub async fn connect_realtime(
&self,
subscribe: &Subscribe,
) -> Result<RealtimeStream, Error>
Available on crate feature websockets only.
pub async fn connect_realtime( &self, subscribe: &Subscribe, ) -> Result<RealtimeStream, Error>
websockets only.Open the realtime event stream and send subscribe.
The URL is Client::websocket_url + /v0, with the API key both in
the api_key query parameter and the Authorization header (the
official SDKs do the same). No automatic reconnection: on
RealtimeEvent::Closed, call this again.
Requires the websockets feature (off by default).
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).