Packages
mailslurp
11.6.4
15.17.22
15.17.21
15.17.17
15.17.16
15.17.15
15.17.14
15.17.13
15.17.12
15.17.11
15.17.10
15.17.9
15.17.8
15.17.7
15.17.6
15.17.5
15.17.4
15.17.3
15.17.2
15.17.1
15.17.0
15.16.22
15.16.21
15.16.20
15.16.19
15.16.18
15.16.17
15.16.16
15.16.15
15.16.14
15.16.13
15.16.12
15.16.11
15.16.10
15.16.9
15.16.8
15.16.7
15.16.6
15.16.5
15.16.4
15.16.3
15.16.2
15.16.1
15.16.0
15.15.5
15.15.4
15.15.2
15.15.1
15.14.0
15.13.32
15.13.31
15.13.30
15.13.29
15.13.28
15.13.27
15.13.26
15.13.25
15.13.24
15.13.23
15.13.22
15.13.21
15.13.20
15.13.19
15.13.18
15.13.17
15.13.16
15.13.15
15.13.14
15.13.13
15.13.11
15.13.10
15.13.9
15.13.8
15.13.7
15.13.6
15.13.5
15.13.4
15.13.3
15.13.2
15.13.1
15.13.0
15.12.17
15.12.16
15.12.15
15.12.14
15.12.13
15.12.12
15.12.11
15.12.3
15.12.2
15.12.1
15.12.0
15.11.1
15.11.0
15.9.0
15.8.1
15.8.0
15.7.17
15.7.16
15.7.15
15.7.14
15.7.13
15.7.12
15.7.10
15.7.8
15.7.7
15.7.5
15.7.4
15.7.1
15.7.0
15.6.0
15.5.6
15.5.5
15.5.4
15.5.3
15.5.2
15.5.1
15.5.0
15.4.2
15.4.1
15.4.0
15.3.1
15.3.0
15.2.8
15.2.7
15.2.6
15.2.5
15.2.4
15.2.2
15.2.1
15.2.0
15.1.4
15.1.3
15.1.2
15.1.1
15.1.0
15.0.3
15.0.2
15.0.1
15.0.0
14.0.6
14.0.5
14.0.3
14.0.2
14.0.1
14.0.0
13.1.0
13.0.1
13.0.0
12.8.4
12.8.3
12.8.2
12.8.1
12.8.0
12.7.1
12.7.0
12.6.4
12.6.3
12.6.1
12.6.0
12.5.0
12.4.8
12.4.7
12.4.6
12.4.5
12.4.4
12.4.2
12.4.1
12.4.0
12.3.333
12.3.2
12.3.1
12.3.0
12.2.2
12.2.1
12.2.0
12.1.3333
12.1.32
12.1.31
12.1.30
12.1.29
12.1.28
12.1.27
12.1.26
12.1.25
12.1.24
12.1.23
12.1.22
12.1.1
12.1.0
12.0.0
11.16666.0
11.15.0
11.14.0
11.13.0
11.12.0
11.11.1
11.11.0
11.10.3
11.10.2
11.10.1
11.10.0
11.9.7
11.9.6
11.9.4
11.9.3
11.9.2
11.9.1
11.9.0
11.8.13
11.8.12
11.8.11
11.8.10
11.8.9
11.8.8
11.8.6
11.8.5
11.8.4
11.8.3
11.8.2
11.8.1
11.8.0
11.7.509
11.7.508
11.7.506
11.7.505
11.7.502
11.7.501
11.7.500
11.7.400
11.7.314
11.7.313
11.7.312
11.7.311
11.7.310
11.7.309
11.7.308
11.7.307
11.7.306
11.7.304
11.7.302
11.7.301
11.7.300
11.7.215
11.7.214
11.7.213
11.7.212
11.7.211
11.7.210
11.7.203
11.7.202
11.7.201
11.7.200
11.7.122
11.7.11
11.7.10
11.7.9
11.7.8
11.7.7
11.7.6
11.7.5
11.7.4
11.7.2
11.7.1
11.7.0
11.6.24
11.6.23
11.6.22
11.6.21
11.6.20
11.6.19
11.6.18
11.6.16
11.6.15
11.6.14
11.6.13
11.6.12
11.6.11
11.6.10
11.6.9
11.6.8
11.6.7
11.6.6
11.6.5
11.6.4
11.6.3
11.6.2
11.6.1
11.5.2333
Elixir Email API for MailSlurp
Current section
Files
Jump to
Current section
Files
lib/mail_slurp_api/api/inbox_controller.ex
# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.
defmodule MailSlurpAPI.Api.InboxController do
@moduledoc """
API calls for all endpoints tagged `InboxController`.
"""
alias MailSlurpAPI.Connection
import MailSlurpAPI.RequestBuilder
@doc """
Create an Inbox (email address)
Create a new inbox and with a randomized email address to send and receive from. Pass emailAddress parameter if you wish to use a specific email address. Creating an inbox is required before sending or receiving emails. If writing tests it is recommended that you create a new inbox during each test method so that it is unique and empty.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :allow_team_access (boolean()): Grant team access to this inbox and the emails that belong to it for team members of your organization.
- :description (String.t): Optional description of the inbox for labelling purposes. Is shown in the dashboard and can be used with
- :email_address (String.t): A custom email address to use with the inbox. Defaults to null. When null MailSlurp will assign a random email address to the inbox such as `123@mailslurp.com`. If you use the `useDomainPool` option when the email address is null it will generate an email address with a more varied domain ending such as `123@mailslurp.info` or `123@mailslurp.biz`. When a custom email address is provided the address is split into a domain and the domain is queried against your user. If you have created the domain in the MailSlurp dashboard and verified it you can use any email address that ends with the domain. Send an email to this address and the inbox will receive and store it for you. To retrieve the email use the Inbox and Email Controller endpoints with the inbox ID.
- :expires_at (DateTime.t): Optional inbox expiration date. If null then this inbox is permanent and the emails in it won't be deleted. If an expiration date is provided or is required by your plan the inbox will be closed when the expiration time is reached. Expired inboxes still contain their emails but can no longer send or receive emails. An ExpiredInboxRecord is created when an inbox and the email address and inbox ID are recorded. The expiresAt property is a timestamp string in ISO DateTime Format yyyy-MM-dd'T'HH:mm:ss.SSSXXX.
- :expires_in (integer()): Number of milliseconds that inbox should exist for
- :favourite (boolean()): Is the inbox favorited. Favouriting inboxes is typically done in the dashboard for quick access or filtering
- :name (String.t): Optional name of the inbox. Displayed in the dashboard for easier search
- :tags ([String.t]): Tags that inbox has been tagged with. Tags can be added to inboxes to group different inboxes within an account. You can also search for inboxes by tag in the dashboard UI.
- :use_domain_pool (boolean()): Use the MailSlurp domain name pool with this inbox when creating the email address. Defaults to null. If enabled the inbox will be an email address with a domain randomly chosen from a list of the MailSlurp domains. This is useful when the default `@mailslurp.com` email addresses used with inboxes are blocked or considered spam by a provider or receiving service. When domain pool is enabled an email address will be generated ending in `@mailslurp.{world,info,xyz,...}` . This means a TLD is randomly selecting from a list of `.biz`, `.info`, `.xyz` etc to add variance to the generated email addresses. When null or false MailSlurp uses the default behavior of `@mailslurp.com` or custom email address provided by the emailAddress field.
## Returns
{:ok, %MailSlurpAPI.Model.Inbox{}} on success
{:error, info} on failure
"""
@spec create_inbox(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.Inbox.t} | {:error, Tesla.Env.t}
def create_inbox(connection, opts \\ []) do
optional_params = %{
:"allowTeamAccess" => :query,
:"description" => :query,
:"emailAddress" => :query,
:"expiresAt" => :query,
:"expiresIn" => :query,
:"favourite" => :query,
:"name" => :query,
:"tags" => :query,
:"useDomainPool" => :query
}
%{}
|> method(:post)
|> url("/inboxes")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.Inbox{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Create an inbox with additional options
Additional endpoint that allows inbox creation with request body options. Can be more flexible that other methods for some clients.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- create_inbox_dto (CreateInboxDto): createInboxDto
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.Inbox{}} on success
{:error, info} on failure
"""
@spec create_inbox_with_options(Tesla.Env.client, MailSlurpAPI.Model.CreateInboxDto.t, keyword()) :: {:ok, MailSlurpAPI.Model.Inbox.t} | {:error, Tesla.Env.t}
def create_inbox_with_options(connection, create_inbox_dto, _opts \\ []) do
%{}
|> method(:post)
|> url("/inboxes/withOptions")
|> add_param(:body, :body, create_inbox_dto)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.Inbox{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Delete all inboxes
Permanently delete all inboxes and associated email addresses. This will also delete all emails within the inboxes. Be careful as inboxes cannot be recovered once deleted. Note: deleting inboxes will not impact your usage limits. Monthly inbox creation limits are based on how many inboxes were created in the last 30 days, not how many inboxes you currently have.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_all_inboxes(Tesla.Env.client, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_all_inboxes(connection, _opts \\ []) do
%{}
|> method(:delete)
|> url("/inboxes")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false},
{ 401, false},
{ 403, false}
])
end
@doc """
Delete inbox
Permanently delete an inbox and associated email address as well as all emails within the given inbox. This action cannot be undone. Note: deleting an inbox will not affect your account usage. Monthly inbox usage is based on how many inboxes you create within 30 days, not how many exist at time of request.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_inbox(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_inbox(connection, inbox_id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/inboxes/#{inbox_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false},
{ 401, false},
{ 403, false}
])
end
@doc """
List All Inboxes Paginated
List inboxes in paginated form. The results are available on the `content` property of the returned object. This method allows for page index (zero based), page size (how many results to return), and a sort direction (based on createdAt time). You Can also filter by whether an inbox is favorited or use email address pattern. This method is the recommended way to query inboxes. The alternative `getInboxes` method returns a full list of inboxes but is limited to 100 results. Results do not include team access inboxes by default. Use organization method to list team inboxes or set `teamAccess` to true.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :favourite (boolean()): Optionally filter results for favourites only
- :page (integer()): Optional page index in inbox list pagination
- :search (String.t): Optionally filter by search words partial matching ID, tags, name, and email address
- :size (integer()): Optional page size in inbox list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
- :tag (String.t): Optionally filter by tags. Will return inboxes that include given tags
- :team_access (boolean()): Optionally filter by team access. Defaults to false so organization inboxes are not included
## Returns
{:ok, %MailSlurpAPI.Model.PageInboxProjection{}} on success
{:error, info} on failure
"""
@spec get_all_inboxes(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageInboxProjection.t} | {:error, Tesla.Env.t}
def get_all_inboxes(connection, opts \\ []) do
optional_params = %{
:"favourite" => :query,
:"page" => :query,
:"search" => :query,
:"size" => :query,
:"sort" => :query,
:"tag" => :query,
:"teamAccess" => :query
}
%{}
|> method(:get)
|> url("/inboxes/paginated")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageInboxProjection{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get emails in an Inbox. This method is not idempotent as it allows retries and waits if you want certain conditions to be met before returning. For simple listing and sorting of known emails use the email controller instead.
List emails that an inbox has received. Only emails that are sent to the inbox's email address will appear in the inbox. It may take several seconds for any email you send to an inbox's email address to appear in the inbox. To make this endpoint wait for a minimum number of emails use the `minCount` parameter. The server will retry the inbox database until the `minCount` is satisfied or the `retryTimeout` is reached
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): Id of inbox that emails belongs to
- opts (KeywordList): [optional] Optional parameters
- :limit (integer()): Limit the result set, ordered by received date time sort direction. Maximum 100. For more listing options see the email controller
- :min_count (integer()): Minimum acceptable email count. Will cause request to hang (and retry) until minCount is satisfied or retryTimeout is reached.
- :retry_timeout (integer()): Maximum milliseconds to spend retrying inbox database until minCount emails are returned
- :since (DateTime.t): Exclude emails received before this ISO 8601 date time
- :size (integer()): Alias for limit. Assessed first before assessing any passed limit.
- :sort (String.t): Sort the results by received date and direction ASC or DESC
## Returns
{:ok, [%EmailPreview{}, ...]} on success
{:error, info} on failure
"""
@spec get_emails(Tesla.Env.client, String.t, keyword()) :: {:ok, list(MailSlurpAPI.Model.EmailPreview.t)} | {:error, Tesla.Env.t}
def get_emails(connection, inbox_id, opts \\ []) do
optional_params = %{
:"limit" => :query,
:"minCount" => :query,
:"retryTimeout" => :query,
:"since" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}/emails")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, [%MailSlurpAPI.Model.EmailPreview{}]},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get Inbox
Returns an inbox's properties, including its email address and ID.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.Inbox{}} on success
{:error, info} on failure
"""
@spec get_inbox(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.Inbox.t} | {:error, Tesla.Env.t}
def get_inbox(connection, inbox_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.Inbox{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get inbox emails paginated
Get a paginated list of emails in an inbox. Does not hold connections open.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): Id of inbox that emails belongs to
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in inbox emails list pagination
- :size (integer()): Optional page size in inbox emails list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageEmailPreview{}} on success
{:error, info} on failure
"""
@spec get_inbox_emails_paginated(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.PageEmailPreview.t} | {:error, Tesla.Env.t}
def get_inbox_emails_paginated(connection, inbox_id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}/emails/paginated")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageEmailPreview{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get Inbox Sent Emails
Returns an inbox's sent email receipts. Call individual sent email endpoints for more details. Note for privacy reasons the full body of sent emails is never stored. An MD5 hash hex is available for comparison instead.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in inbox sent email list pagination
- :size (integer()): Optional page size in inbox sent email list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageSentEmailProjection{}} on success
{:error, info} on failure
"""
@spec get_inbox_sent_emails(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.PageSentEmailProjection.t} | {:error, Tesla.Env.t}
def get_inbox_sent_emails(connection, inbox_id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}/sent")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageSentEmailProjection{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get inbox tags
Get all inbox tags
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, [%String{}, ...]} on success
{:error, info} on failure
"""
@spec get_inbox_tags(Tesla.Env.client, keyword()) :: {:ok, list(String.t)} | {:error, Tesla.Env.t}
def get_inbox_tags(connection, _opts \\ []) do
%{}
|> method(:get)
|> url("/inboxes/tags")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, []},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
List Inboxes / Email Addresses
List the inboxes you have created. Note use of the more advanced `getAllEmails` is recommended. You can provide a limit and sort parameter.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :size (integer()): Optional result size limit. Note an automatic limit of 100 results is applied. See the paginated `getAllEmails` for larger queries.
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, [%Inbox{}, ...]} on success
{:error, info} on failure
"""
@spec get_inboxes(Tesla.Env.client, keyword()) :: {:ok, list(MailSlurpAPI.Model.Inbox.t)} | {:error, Tesla.Env.t}
def get_inboxes(connection, opts \\ []) do
optional_params = %{
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, [%MailSlurpAPI.Model.Inbox{}]},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
List Organization Inboxes Paginated
List organization inboxes in paginated form. These are inboxes created with `allowTeamAccess` flag enabled. Organization inboxes are `readOnly` for non-admin users. The results are available on the `content` property of the returned object. This method allows for page index (zero based), page size (how many results to return), and a sort direction (based on createdAt time).
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in inbox list pagination
- :size (integer()): Optional page size in inbox list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageOrganizationInboxProjection{}} on success
{:error, info} on failure
"""
@spec get_organization_inboxes(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageOrganizationInboxProjection.t} | {:error, Tesla.Env.t}
def get_organization_inboxes(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes/organization")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageOrganizationInboxProjection{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Send Email
Send an email from an inbox's email address. The request body should contain the `SendEmailOptions` that include recipients, attachments, body etc. See `SendEmailOptions` for all available properties. Note the `inboxId` refers to the inbox's id not the inbox's email address. See https://www.mailslurp.com/guides/ for more information on how to send emails. This method does not return a sent email entity due to legacy reasons. To send and get a sent email as returned response use the sister method `sendEmailAndConfirm`.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): ID of the inbox you want to send the email from
- opts (KeywordList): [optional] Optional parameters
- :send_email_options (SendEmailOptions): Options for the email
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec send_email(Tesla.Env.client, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def send_email(connection, inbox_id, opts \\ []) do
optional_params = %{
:"sendEmailOptions" => :body
}
%{}
|> method(:post)
|> url("/inboxes/#{inbox_id}")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, false},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Send email and return sent confirmation
Sister method for standard `sendEmail` method with the benefit of returning a `SentEmail` entity confirming the successful sending of the email with link the the sent object created for it.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): ID of the inbox you want to send the email from
- opts (KeywordList): [optional] Optional parameters
- :send_email_options (SendEmailOptions): Options for the email
## Returns
{:ok, %MailSlurpAPI.Model.SentEmailDto{}} on success
{:error, info} on failure
"""
@spec send_email_and_confirm(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.SentEmailDto.t} | {:error, Tesla.Env.t}
def send_email_and_confirm(connection, inbox_id, opts \\ []) do
optional_params = %{
:"sendEmailOptions" => :body
}
%{}
|> method(:post)
|> url("/inboxes/#{inbox_id}/confirm")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.SentEmailDto{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Set inbox favourited state
Set and return new favourite state for an inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- set_inbox_favourited_options (SetInboxFavouritedOptions): setInboxFavouritedOptions
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.Inbox{}} on success
{:error, info} on failure
"""
@spec set_inbox_favourited(Tesla.Env.client, String.t, MailSlurpAPI.Model.SetInboxFavouritedOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.Inbox.t} | {:error, Tesla.Env.t}
def set_inbox_favourited(connection, inbox_id, set_inbox_favourited_options, _opts \\ []) do
%{}
|> method(:put)
|> url("/inboxes/#{inbox_id}/favourite")
|> add_param(:body, :body, set_inbox_favourited_options)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.Inbox{}},
{ 201, false},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Update Inbox
Update editable fields on an inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- update_inbox_options (UpdateInboxOptions): updateInboxOptions
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.Inbox{}} on success
{:error, info} on failure
"""
@spec update_inbox(Tesla.Env.client, String.t, MailSlurpAPI.Model.UpdateInboxOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.Inbox.t} | {:error, Tesla.Env.t}
def update_inbox(connection, inbox_id, update_inbox_options, _opts \\ []) do
%{}
|> method(:patch)
|> url("/inboxes/#{inbox_id}")
|> add_param(:body, :body, update_inbox_options)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.Inbox{}},
{ 204, false},
{ 401, false},
{ 403, false}
])
end
end