Sending domains: add one, publish the returned DNS records, then verify/2.
Input maps are sent as given: create/2 accepts name, region,
custom_return_path, open_tracking, click_tracking and
tracking_subdomain; update/3 accepts open_tracking, click_tracking
and tracking_subdomain (nil clears it).
{:ok, domain} = MillionSend.Domains.create(%{name: "acme.dev"})
domain.records # [%MillionSend.Domains.Domain.Record{record: "DKIM", ...}, ...]
Summary
Functions
POST /domains
GET /domains/:id
GET /domains — accepts limit:, after:, before:.
DELETE /domains/:id
PATCH /domains/:id — tracking settings; tracking_subdomain: nil clears it.
POST /domains/:id/verify — re-check the DNS records.
Functions
@spec create(MillionSend.Client.t(), map()) :: {:ok, MillionSend.Domains.Domain.t()} | {:error, MillionSend.Error.t()}
POST /domains
@spec get(MillionSend.Client.t(), String.t()) :: {:ok, MillionSend.Domains.Domain.t()} | {:error, MillionSend.Error.t()}
GET /domains/:id
GET /domains — accepts limit:, after:, before:.
@spec list(MillionSend.Client.t() | keyword()) :: {:ok, MillionSend.List.t()} | {:error, MillionSend.Error.t()}
@spec list( MillionSend.Client.t(), keyword() ) :: {:ok, MillionSend.List.t()} | {:error, MillionSend.Error.t()}
@spec remove(MillionSend.Client.t(), String.t()) :: {:ok, MillionSend.Domains.Domain.t()} | {:error, MillionSend.Error.t()}
DELETE /domains/:id
@spec update(MillionSend.Client.t(), String.t(), map()) :: {:ok, MillionSend.Domains.Domain.t()} | {:error, MillionSend.Error.t()}
PATCH /domains/:id — tracking settings; tracking_subdomain: nil clears it.
@spec verify(MillionSend.Client.t(), String.t()) :: {:ok, MillionSend.Domains.Domain.t()} | {:error, MillionSend.Error.t()}
POST /domains/:id/verify — re-check the DNS records.