Packages
mailslurp
12.4.2
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/webhook_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.WebhookController do
@moduledoc """
API calls for all endpoints tagged `WebhookController`.
"""
alias MailSlurpAPI.Connection
import MailSlurpAPI.RequestBuilder
@doc """
Attach a WebHook URL to an inbox
Get notified whenever an inbox receives an email via a WebHook URL. An emailID will be posted to this URL every time an email is received for this inbox. The URL must be publicly reachable by the MailSlurp server. You can provide basicAuth values if you wish to secure this endpoint.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- webhook_options (CreateWebhookOptions): webhookOptions
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookDto{}} on success
{:error, info} on failure
"""
@spec create_webhook(Tesla.Env.client, String.t, MailSlurpAPI.Model.CreateWebhookOptions.t, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookDto.t} | {:error, Tesla.Env.t}
def create_webhook(connection, inbox_id, webhook_options, _opts \\ []) do
%{}
|> method(:post)
|> url("/inboxes/#{inbox_id}/webhooks")
|> add_param(:body, :body, webhook_options)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.WebhookDto{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Delete and disable a Webhook for an Inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- webhook_id (String.t): webhookId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec delete_webhook(Tesla.Env.client, String.t, String.t, keyword()) :: {:ok, nil} | {:error, Tesla.Env.t}
def delete_webhook(connection, inbox_id, webhook_id, _opts \\ []) do
%{}
|> method(:delete)
|> url("/inboxes/#{inbox_id}/webhooks/#{webhook_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 204, false},
{ 401, false},
{ 403, false}
])
end
@doc """
Get results for all webhooks
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in list pagination
- :search_filter (String.t): Optional search filter
- :size (integer()): Optional page size in list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageWebhookResult{}} on success
{:error, info} on failure
"""
@spec get_all_webhook_results(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageWebhookResult.t} | {:error, Tesla.Env.t}
def get_all_webhook_results(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"searchFilter" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/webhooks/results")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageWebhookResult{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
List Webhooks Paginated
List webhooks in paginated form. Allows for page index, page size, and sort direction.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in list pagination
- :search_filter (String.t): Optional search filter
- :size (integer()): Optional page size in list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageWebhookProjection{}} on success
{:error, info} on failure
"""
@spec get_all_webhooks(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.PageWebhookProjection.t} | {:error, Tesla.Env.t}
def get_all_webhooks(connection, opts \\ []) do
optional_params = %{
:"page" => :query,
:"searchFilter" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/webhooks/paginated")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageWebhookProjection{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get paginated webhooks for an Inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in list pagination
- :search_filter (String.t): Optional search filter
- :size (integer()): Optional page size in list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageWebhookProjection{}} on success
{:error, info} on failure
"""
@spec get_inbox_webhooks_paginated(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.PageWebhookProjection.t} | {:error, Tesla.Env.t}
def get_inbox_webhooks_paginated(connection, inbox_id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"searchFilter" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}/webhooks/paginated")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageWebhookProjection{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get test webhook payload example. Response content depends on eventName passed. Uses `EMAIL_RECEIVED` as default.
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :event_name (String.t): eventName
## Returns
{:ok, %MailSlurpAPI.Model.AbstractWebhookPayload{}} on success
{:error, info} on failure
"""
@spec get_test_webhook_payload(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.AbstractWebhookPayload.t} | {:error, Tesla.Env.t}
def get_test_webhook_payload(connection, opts \\ []) do
optional_params = %{
:"eventName" => :query
}
%{}
|> method(:get)
|> url("/webhooks/test")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.AbstractWebhookPayload{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get webhook test payload for new attachment event
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookNewAttachmentPayload{}} on success
{:error, info} on failure
"""
@spec get_test_webhook_payload_new_attachment(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookNewAttachmentPayload.t} | {:error, Tesla.Env.t}
def get_test_webhook_payload_new_attachment(connection, _opts \\ []) do
%{}
|> method(:get)
|> url("/webhooks/test/new-attachment-payload")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.WebhookNewAttachmentPayload{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get webhook test payload for new contact event
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookNewContactPayload{}} on success
{:error, info} on failure
"""
@spec get_test_webhook_payload_new_contact(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookNewContactPayload.t} | {:error, Tesla.Env.t}
def get_test_webhook_payload_new_contact(connection, _opts \\ []) do
%{}
|> method(:get)
|> url("/webhooks/test/new-contact-payload")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.WebhookNewContactPayload{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get webhook test payload for new email event
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookNewEmailPayload{}} on success
{:error, info} on failure
"""
@spec get_test_webhook_payload_new_email(Tesla.Env.client, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookNewEmailPayload.t} | {:error, Tesla.Env.t}
def get_test_webhook_payload_new_email(connection, _opts \\ []) do
%{}
|> method(:get)
|> url("/webhooks/test/new-email-payload")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.WebhookNewEmailPayload{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get a webhook for an Inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- webhook_id (String.t): webhookId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookDto{}} on success
{:error, info} on failure
"""
@spec get_webhook(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookDto.t} | {:error, Tesla.Env.t}
def get_webhook(connection, webhook_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/webhooks/#{webhook_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.WebhookDto{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get a webhook result for a webhook
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- webhook_result_id (String.t): Webhook Result ID
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookResultEntity{}} on success
{:error, info} on failure
"""
@spec get_webhook_result(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookResultEntity.t} | {:error, Tesla.Env.t}
def get_webhook_result(connection, webhook_result_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/webhooks/results/#{webhook_result_id}")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.WebhookResultEntity{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get a webhook results for a webhook
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- webhook_id (String.t): ID of webhook to get results for
- opts (KeywordList): [optional] Optional parameters
- :page (integer()): Optional page index in list pagination
- :search_filter (String.t): Optional search filter
- :size (integer()): Optional page size in list pagination
- :sort (String.t): Optional createdAt sort direction ASC or DESC
## Returns
{:ok, %MailSlurpAPI.Model.PageWebhookResult{}} on success
{:error, info} on failure
"""
@spec get_webhook_results(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.PageWebhookResult.t} | {:error, Tesla.Env.t}
def get_webhook_results(connection, webhook_id, opts \\ []) do
optional_params = %{
:"page" => :query,
:"searchFilter" => :query,
:"size" => :query,
:"sort" => :query
}
%{}
|> method(:get)
|> url("/webhooks/#{webhook_id}/results")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, %MailSlurpAPI.Model.PageWebhookResult{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Get all webhooks for an Inbox
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- inbox_id (String.t): inboxId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, [%WebhookDto{}, ...]} on success
{:error, info} on failure
"""
@spec get_webhooks(Tesla.Env.client, String.t, keyword()) :: {:ok, list(MailSlurpAPI.Model.WebhookDto.t)} | {:error, Tesla.Env.t}
def get_webhooks(connection, inbox_id, _opts \\ []) do
%{}
|> method(:get)
|> url("/inboxes/#{inbox_id}/webhooks")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 200, [%MailSlurpAPI.Model.WebhookDto{}]},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
@doc """
Send webhook test data
## Parameters
- connection (MailSlurpAPI.Connection): Connection to server
- webhook_id (String.t): webhookId
- opts (KeywordList): [optional] Optional parameters
## Returns
{:ok, %MailSlurpAPI.Model.WebhookTestResult{}} on success
{:error, info} on failure
"""
@spec send_test_data(Tesla.Env.client, String.t, keyword()) :: {:ok, MailSlurpAPI.Model.WebhookTestResult.t} | {:error, Tesla.Env.t}
def send_test_data(connection, webhook_id, _opts \\ []) do
%{}
|> method(:post)
|> url("/webhooks/#{webhook_id}/test")
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> evaluate_response([
{ 201, %MailSlurpAPI.Model.WebhookTestResult{}},
{ 401, false},
{ 403, false},
{ 404, false}
])
end
end